From 878db8b82958345dc057451b10b57dba5e8ae031 Mon Sep 17 00:00:00 2001 From: Marten Mooij Date: Tue, 29 Aug 2023 11:17:22 +0200 Subject: [PATCH 01/12] Start implementing writer --- .gitignore | 3 +- pkg/attachment.go | 204 +++++++++++++++++-- pkg/doc_test.go | 13 +- pkg/file.go | 33 ++++ pkg/heap_on_node.go | 16 ++ pkg/local_descriptors.go | 8 +- pkg/message.go | 99 +++++----- pkg/message_store.go | 31 ++- pkg/property_context.go | 18 ++ pkg/property_reader.go | 13 ++ pkg/writer/attachment_writer.go | 44 +++++ pkg/writer/btree_on_heap_writer.go | 39 ++++ pkg/writer/btree_writer.go | 112 +++++++++++ pkg/writer/folder_writer.go | 80 ++++++++ pkg/writer/heap_on_node_writer.go | 73 +++++++ pkg/writer/local_descriptors_writer.go | 16 ++ pkg/writer/message_store_writer.go | 27 +++ pkg/writer/message_writer.go | 43 ++++ pkg/writer/property_context_writer.go | 53 +++++ pkg/writer/table_context_writer.go | 67 +++++++ pkg/writer/utils.go | 6 + pkg/writer/writer.go | 264 +++++++++++++++++++++++++ pkg/writer/writer_test.go | 68 +++++++ 23 files changed, 1252 insertions(+), 78 deletions(-) create mode 100644 pkg/writer/attachment_writer.go create mode 100644 pkg/writer/btree_on_heap_writer.go create mode 100644 pkg/writer/btree_writer.go create mode 100644 pkg/writer/folder_writer.go create mode 100644 pkg/writer/heap_on_node_writer.go create mode 100644 pkg/writer/local_descriptors_writer.go create mode 100644 pkg/writer/message_store_writer.go create mode 100644 pkg/writer/message_writer.go create mode 100644 pkg/writer/property_context_writer.go create mode 100644 pkg/writer/table_context_writer.go create mode 100644 pkg/writer/utils.go create mode 100644 pkg/writer/writer.go create mode 100644 pkg/writer/writer_test.go diff --git a/.gitignore b/.gitignore index f184844..e7a7356 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ .vscode/ protoc protoc-gen-go -protoc-go-inject-tag \ No newline at end of file +protoc-go-inject-tag +data/*.pst \ No newline at end of file diff --git a/pkg/attachment.go b/pkg/attachment.go index 15fc6e9..5342a64 100644 --- a/pkg/attachment.go +++ b/pkg/attachment.go @@ -17,10 +17,11 @@ package pst import ( + "encoding/binary" + "fmt" "github.com/mooijtech/go-pst/v6/pkg/properties" - "io" - "github.com/rotisserie/eris" + "io" ) // Attachment represents a message attachment. @@ -28,7 +29,9 @@ type Attachment struct { Identifier Identifier PropertyContext *PropertyContext LocalDescriptors []LocalDescriptor - properties.Attachment + *properties.Attachment + + File *File } // HasAttachments returns true if this message has attachments. @@ -167,6 +170,8 @@ func (message *Message) GetAttachment(attachmentIndex int) (*Attachment, error) Identifier: attachmentLocalDescriptor.Identifier, PropertyContext: attachmentPropertyContext, LocalDescriptors: attachmentLocalDescriptors, + Attachment: &properties.Attachment{}, + File: message.File, } if err := attachmentPropertyContext.Populate(attachment, attachmentLocalDescriptors); err != nil { @@ -209,6 +214,8 @@ func (file *File) GetAttachment(messageIdentifier Identifier) (*Attachment, erro Identifier: messageIdentifier, PropertyContext: propertyContext, LocalDescriptors: localDescriptors, + Attachment: &properties.Attachment{}, + File: file, } if err := propertyContext.Populate(attachment, localDescriptors); err != nil { @@ -310,23 +317,196 @@ func (message *Message) GetAttachmentIterator() (AttachmentIterator, error) { }, nil } +// Constants defining the attachment attach methods. +const ( + AttachmentMethodNone = iota + AttachmentMethodByValue + AttachmentMethodByReference + AttachmentMethodByReferenceResolve + AttachmentMethodByReferenceOnly + AttachmentMethodEmbedded + AttachmentMethodOLE +) + +// GetEmbeddedMessage returns an attachment using method embedded. +// This the OLE file format defined: [OLE1.0 and OLE2.0 Formats](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-oleds/fdc5e702-d09e-4344-a77f-eb079d41f23f) +// Gets called automatically in WriteTo if the AttachMethod is AttachmentMethodEmbedded. +func (attachment *Attachment) GetEmbeddedMessage() (*Message, error) { + switch attachment.GetAttachMethod() { + case AttachmentMethodEmbedded: + attachmentReader, err := attachment.PropertyContext.GetPropertyReader(14081, attachment.LocalDescriptors) + + if err != nil { + return nil, eris.Wrap(err, "failed to get property reader") + } + + switch attachmentReader.Property.Type { + case PropertyTypeBinary: + return nil, eris.New("unsupported PropertyTypeBinary") + case PropertyTypeObject: + + // TODO - Check same value for 8 bytes + // TODO - Check we actually use uint32, is it safe to cast to uint64 output same value? + hnidBytes := make([]byte, 4) + + if _, err := attachmentReader.ReadAt(hnidBytes, 0); err != nil { + return nil, eris.Wrap(err, "failed to read HNID") + } + + hnid := Identifier(binary.LittleEndian.Uint32(hnidBytes)) + + localDescriptor, err := FindLocalDescriptor(hnid, attachment.LocalDescriptors) + + if err != nil { + return nil, eris.Wrap(err, "failed to find local descriptor") + } + + localDescriptors, err := attachment.File.GetLocalDescriptorsFromIdentifier(localDescriptor.LocalDescriptorsIdentifier) + + if err != nil { + return nil, eris.Wrap(err, "failed to get local descriptors") + } + + heapOnNode, err := attachment.File.GetHeapOnNodeFromLocalDescriptor(localDescriptor) + + if err != nil { + return nil, eris.Wrap(err, "failed to get Heap-on-Node reader") + } + + propertyContext, err := attachment.File.GetPropertyContext(heapOnNode) + + if err != nil { + return nil, eris.Wrap(err, "failed to get property context") + } + + message := &Message{ + File: attachment.File, + Identifier: hnid, + PropertyContext: propertyContext, + LocalDescriptors: localDescriptors, + Properties: &properties.Message{}, + } + + if err := propertyContext.Populate(message.Properties, localDescriptors); err != nil { + return nil, eris.Wrap(err, "failed to populate properties") + } + + return message, nil + default: + return nil, eris.New("unsupported property type") + } + default: + return nil, eris.New(fmt.Sprintf("unsupported attachment attach method: %d", attachment.GetAttachMethod())) + } +} + // WriteTo writes the attachment to the specified io.Writer. func (attachment *Attachment) WriteTo(writer io.Writer) (int64, error) { - attachmentReader, err := attachment.PropertyContext.GetPropertyReader(14081, attachment.LocalDescriptors) - if eris.Is(err, ErrPropertyNoData) { - return 0, nil - } else if err != nil { - return 0, eris.Wrap(err, "failed to get attachment property reader") + //localDescriptor, err := FindLocalDescriptor(14081, attachment.LocalDescriptors) + // + //if err != nil { + // return 0, eris.Wrap(err, "failed to find local descriptor") + //} + + propertyReader, err := attachment.PropertyContext.GetPropertyReader(14081, attachment.LocalDescriptors) + + if err != nil { + panic(err) + } + + all, err := io.ReadAll(&propertyReader) + + if err != nil { + panic(err) + } + + panic(len(all)) + + localDescriptor, err := FindLocalDescriptor(propertyReader.Property.HNID, attachment.LocalDescriptors) + + if err != nil { + panic(err) } - sectionReader := io.NewSectionReader(&attachmentReader, 0, attachmentReader.Size()) + panic(localDescriptor) - written, err := io.CopyN(writer, sectionReader, sectionReader.Size()) + localDescriptors, err := attachment.File.GetLocalDescriptorsFromIdentifier(localDescriptor.LocalDescriptorsIdentifier) if err != nil { - return written, eris.Wrap(err, "failed to write attachment") + panic(err) } - return written, nil + panic(fmt.Sprintf("%d - %d", propertyReader.Property.HNID, len(localDescriptors))) + + //var sectionReader *io.SectionReader + // + //if attachment.GetAttachMethod() == AttachmentMethodEmbedded { + // + // fmt.Printf("1\n") + // + // embeddedMessage, err := attachment.GetEmbeddedMessage() + // + // if err != nil { + // return 0, eris.Wrap(err, "failed to get embedded attachment Heap-on-Node") + // } + // + // // TODO - Check for ZLib + // + // //// Don't use recursion here. + // heapOnNodeReader := embeddedMessage.PropertyContext.HeapOnNode.Reader + // + // sectionReader = io.NewSectionReader(heapOnNodeReader, 0, heapOnNodeReader.Size()) + // + // // TODO - Check properties + // + // //propertyReader, err := embeddedAttachment.PropertyContext.GetPropertyReader(4105, embeddedAttachment.LocalDescriptors) + // // + // //if err != nil { + // // return 0, eris.Wrap(err, "failed to check RTF compressed") + // //} + // // + // //panic(propertyReader) + // + // //whatever, err := io.ReadAll(sectionReader) + // // + // //if err != nil { + // // panic(err) + // //} + // + // return io.Copy(writer, sectionReader) + // + // // Check RTF compressed + // //propertyReader, err := embeddedAttachment.PropertyContext.GetPropertyReader(4105, embeddedAttachment.LocalDescriptors) + // // + // //if err != nil { + // // return 0, eris.Wrap(err, "failed to check RTF compressed") + // //} + // // + // //isCompressed, err := propertyReader.GetBoolean() + // // + // //if err != nil { + // // panic(err) + // //} + // // + // //panic(isCompressed) + //} else { + // fmt.Printf("2\n") + // + // attachmentReader, err := attachment.PropertyContext.GetPropertyReader(14081, attachment.LocalDescriptors) + // + // if err != nil { + // return 0, eris.Wrap(err, "failed to get property reader") + // } + // + // sectionReader = io.NewSectionReader(&attachmentReader, 0, attachmentReader.Size()) + //} + // + //written, err := io.CopyN(writer, sectionReader, sectionReader.Size()) + // + //if err != nil { + // return written, eris.Wrap(err, "failed to write attachment") + //} + // + //return written, nil } diff --git a/pkg/doc_test.go b/pkg/doc_test.go index 81b4027..31f9d01 100644 --- a/pkg/doc_test.go +++ b/pkg/doc_test.go @@ -21,24 +21,17 @@ import ( "github.com/mooijtech/go-pst/v6/pkg" "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" - "golang.org/x/text/encoding" "os" "testing" "time" - - charsets "github.com/emersion/go-message/charset" ) -func TestExample(t *testing.T) { - pst.ExtendCharsets(func(name string, enc encoding.Encoding) { - charsets.RegisterEncoding(name, enc) - }) - +func TestRead(t *testing.T) { startTime := time.Now() fmt.Println("Initializing...") - reader, err := os.Open("../data/enron.pst") + reader, err := os.Open("../data/mcflip.pst") if err != nil { panic(fmt.Sprintf("Failed to open PST file: %+v\n", err)) @@ -119,7 +112,7 @@ func TestExample(t *testing.T) { if attachment.GetAttachLongFilename() != "" { attachmentOutputPath = fmt.Sprintf("attachments/%d-%s", attachment.Identifier, attachment.GetAttachLongFilename()) } else { - attachmentOutputPath = fmt.Sprintf("attachments/UNKNOWN_%d", attachment.Identifier) + attachmentOutputPath = "attachments/UNKNOWN_testing" } attachmentOutput, err := os.Create(attachmentOutputPath) diff --git a/pkg/file.go b/pkg/file.go index e47a3cd..fdb801d 100644 --- a/pkg/file.go +++ b/pkg/file.go @@ -21,6 +21,7 @@ import ( "encoding/binary" _ "github.com/emersion/go-message/charset" "github.com/rotisserie/eris" + "hash/crc32" "io" ) @@ -226,6 +227,38 @@ const ( //EncryptionTypeCyclic EncryptionType = 2 // Not implemented currently. ) +// GetHeaderCRCs returns the CRCs (cyclic redundancy check) of the header. +func (file *File) GetHeaderCRCs() ([]uint32, error) { + crcPartial := make([]byte, 4) + + if _, err := file.Reader.ReadAt(crcPartial, 4); err != nil { + return nil, eris.Wrap(err, "failed to read CRC") + } + + crcFull := make([]byte, 4) + + var crcFullOffset int64 + + switch file.FormatType { + case FormatTypeUnicode: + + case FormatTypeANSI: + default: + return nil, eris.New("unsupported format type") + } + + if _, err := file.Reader.ReadAt(crcFull, crcFullOffset); err != nil { + return nil, eris.Wrap(err, "failed to read CRC full") + } + + // TODO - We don't currently verify these values. + + return []uint32{ + crc32.ChecksumIEEE(crcPartial), + crc32.ChecksumIEEE(crcFull), + }, nil +} + // GetEncryptionType returns the encryption type. // References "The 64-bit header data", "The 32-bit header data", "Encryption Types". func (file *File) GetEncryptionType() (EncryptionType, error) { diff --git a/pkg/heap_on_node.go b/pkg/heap_on_node.go index e84adca..e40258b 100644 --- a/pkg/heap_on_node.go +++ b/pkg/heap_on_node.go @@ -28,6 +28,22 @@ type HeapOnNode struct { Reader *HeapOnNodeReader } +// SignatureType represents a signature type (for headers). +type SignatureType uint8 + +// Constants defining the signature types. +// TODO - Use in read checks, change type to byte for checks? +const ( + SignatureTypeTableContext SignatureType = 124 + SignatureTypeBTreeOnHeap SignatureType = 181 + SignatureTypePropertyContext SignatureType = 188 +) + +// NewHeapOnNode creates a new HeapOnNode. +func NewHeapOnNode(reader *HeapOnNodeReader) *HeapOnNode { + return &HeapOnNode{Reader: reader} +} + // IsValidSignature returns true if the signature of the block matches 0xEC (236). // References "Heap-on-Node header". func (heapOnNode *HeapOnNode) IsValidSignature() (bool, error) { diff --git a/pkg/local_descriptors.go b/pkg/local_descriptors.go index d289e06..b3becfa 100644 --- a/pkg/local_descriptors.go +++ b/pkg/local_descriptors.go @@ -36,15 +36,15 @@ func NewLocalDescriptor(data []byte, formatType FormatType) LocalDescriptor { case FormatTypeANSI: return LocalDescriptor{ Identifier: Identifier(binary.LittleEndian.Uint32(data[:4])), - DataIdentifier: Identifier(binary.LittleEndian.Uint32(data[4 : 4+4])), - LocalDescriptorsIdentifier: Identifier(binary.LittleEndian.Uint32(data[8 : 8+4])), + DataIdentifier: Identifier(binary.LittleEndian.Uint32(data[4:4+4]) & 0xfffffffe), + LocalDescriptorsIdentifier: Identifier(binary.LittleEndian.Uint32(data[8:8+4]) & 0xfffffffe), } default: // TODO - Reference [MS-PDF] that this is actually 32-bit. return LocalDescriptor{ Identifier: Identifier(binary.LittleEndian.Uint32(data[:8])), - DataIdentifier: Identifier(binary.LittleEndian.Uint32(data[8 : 8+8])), - LocalDescriptorsIdentifier: Identifier(binary.LittleEndian.Uint32(data[16 : 16+8])), + DataIdentifier: Identifier(binary.LittleEndian.Uint32(data[8:8+8]) & 0xfffffffe), + LocalDescriptorsIdentifier: Identifier(binary.LittleEndian.Uint32(data[16:16+8]) & 0xfffffffe), } } } diff --git a/pkg/message.go b/pkg/message.go index 9099e9f..7fc3128 100644 --- a/pkg/message.go +++ b/pkg/message.go @@ -35,6 +35,57 @@ type Message struct { Properties msgp.Decodable // Type properties.Message, properties.Appointment, properties.Contact } +// NewMessage constructs a new Message. +func NewMessage(file *File, identifier Identifier, localDescriptors []LocalDescriptor, propertyContext *PropertyContext) (*Message, error) { + var messageProperties msgp.Decodable + + messageClassPropertyReader, err := propertyContext.GetPropertyReader(26, localDescriptors) + + if err != nil { + fmt.Printf("Failed to get message class property reader, falling back to properties.Message: %+v\n", eris.New(err.Error())) + messageProperties = &properties.Message{} + } else { + messageClass, err := messageClassPropertyReader.GetString() + + if err != nil { + fmt.Printf("Failed to get message class, falling back to properties.Message: %+v\n", eris.New(err.Error())) + messageProperties = &properties.Message{} + } else { + // https://learn.microsoft.com/en-us/office/vba/outlook/concepts/forms/item-types-and-message-classes + if messageClass == "IPM.Note" || messageClass == "IPM.Note.SMIME.MultipartSigned" { + messageProperties = &properties.Message{} + } else if messageClass == "IPM.Appointment" || messageClass == "IPM.Schedule.Meeting" || messageClass == "IPM.Schedule.Meeting.Request" || messageClass == "IPM.OLE.CLASS.{00061055-0000-0000-C000-000000000046}" { + messageProperties = &properties.Appointment{} + } else if messageClass == "IPM.Contact" || messageClass == "IPM.AbchPerson" { + messageProperties = &properties.Contact{} + } else if messageClass == "IPM.Task" { + messageProperties = &properties.Task{} + } else if messageClass == "IPM.Activity" { + messageProperties = &properties.Journal{} + } else if messageClass == "IPM.Post.Rss" { + messageProperties = &properties.RSS{} + } else if messageClass == "IPM.DistList" { + messageProperties = &properties.AddressBook{} + } else { + fmt.Printf("Unmapped message class \"%s\", falling back to properties.Message...\n", messageClass) + messageProperties = &properties.Message{} + } + } + } + + if err := propertyContext.Populate(messageProperties, localDescriptors); err != nil { + return nil, eris.Wrap(err, "failed to populate message properties") + } + + return &Message{ + File: file, + Identifier: identifier, + PropertyContext: propertyContext, + LocalDescriptors: localDescriptors, + Properties: messageProperties, + }, nil +} + // GetMessageTableContext returns the message table context of this folder which contains references to all messages. // Note this only returns the identifier of each message. func (folder *Folder) GetMessageTableContext() (TableContext, error) { @@ -221,53 +272,7 @@ func (file *File) GetMessage(identifier Identifier) (*Message, error) { return nil, eris.Wrap(err, "failed to get property context") } - var messageProperties msgp.Decodable - - messageClassPropertyReader, err := propertyContext.GetPropertyReader(26, localDescriptors) - - if err != nil { - fmt.Printf("Failed to get message class property reader, falling back to properties.Message: %+v\n", eris.New(err.Error())) - messageProperties = &properties.Message{} - } else { - messageClass, err := messageClassPropertyReader.GetString() - - if err != nil { - fmt.Printf("Failed to get message class, falling back to properties.Message: %+v\n", eris.New(err.Error())) - messageProperties = &properties.Message{} - } else { - // https://learn.microsoft.com/en-us/office/vba/outlook/concepts/forms/item-types-and-message-classes - if messageClass == "IPM.Note" || messageClass == "IPM.Note.SMIME.MultipartSigned" { - messageProperties = &properties.Message{} - } else if messageClass == "IPM.Appointment" || messageClass == "IPM.Schedule.Meeting" || messageClass == "IPM.Schedule.Meeting.Request" || messageClass == "IPM.OLE.CLASS.{00061055-0000-0000-C000-000000000046}" { - messageProperties = &properties.Appointment{} - } else if messageClass == "IPM.Contact" || messageClass == "IPM.AbchPerson" { - messageProperties = &properties.Contact{} - } else if messageClass == "IPM.Task" { - messageProperties = &properties.Task{} - } else if messageClass == "IPM.Activity" { - messageProperties = &properties.Journal{} - } else if messageClass == "IPM.Post.Rss" { - messageProperties = &properties.RSS{} - } else if messageClass == "IPM.DistList" { - messageProperties = &properties.AddressBook{} - } else { - fmt.Printf("Unmapped message class \"%s\", falling back to properties.Message...\n", messageClass) - messageProperties = &properties.Message{} - } - } - } - - if err := propertyContext.Populate(messageProperties, localDescriptors); err != nil { - return nil, eris.Wrap(err, "failed to populate message properties") - } - - return &Message{ - File: file, - Identifier: identifier, - PropertyContext: propertyContext, - LocalDescriptors: localDescriptors, - Properties: messageProperties, - }, nil + return NewMessage(file, identifier, localDescriptors, propertyContext) } // GetBodyRTF return the RTF body, may be diff --git a/pkg/message_store.go b/pkg/message_store.go index 4febf69..2606dcb 100644 --- a/pkg/message_store.go +++ b/pkg/message_store.go @@ -16,10 +16,27 @@ package pst -import "github.com/rotisserie/eris" +import ( + "github.com/pkg/errors" + "github.com/rotisserie/eris" +) -// GetMessageStore returns the message store of the PST file. -func (file *File) GetMessageStore() (*PropertyContext, error) { +// MessageStore represents the MessageStore of a PST file. +// Each PST file has at most one MessageStore. +type MessageStore struct { + // PropertyContext represents the PropertyContext of the MessageStore. + PropertyContext *PropertyContext +} + +// NewMessageStore creates a new MessageStore. +func NewMessageStore(propertyContext *PropertyContext) *MessageStore { + return &MessageStore{ + PropertyContext: propertyContext, + } +} + +// GetMessageStore returns the MessageStore of the PST file. +func (file *File) GetMessageStore() (*MessageStore, error) { dataBTreeNode, err := file.GetDataBTreeNode(IdentifierMessageStore) if err != nil { @@ -32,5 +49,11 @@ func (file *File) GetMessageStore() (*PropertyContext, error) { return nil, eris.Wrap(err, "failed to get Heap-on-Node") } - return file.GetPropertyContext(heapOnNode) + propertyContext, err := file.GetPropertyContext(heapOnNode) + + if err != nil { + return nil, errors.WithStack(err) + } + + return NewMessageStore(propertyContext), nil } diff --git a/pkg/property_context.go b/pkg/property_context.go index 7976906..2b90cca 100644 --- a/pkg/property_context.go +++ b/pkg/property_context.go @@ -21,6 +21,7 @@ import ( _ "embed" "encoding/binary" "encoding/csv" + "fmt" "github.com/rotisserie/eris" "github.com/tinylib/msgp/msgp" "io" @@ -34,6 +35,23 @@ type PropertyContext struct { File *File } +// String prints all properties. +func (propertyContext *PropertyContext) String() string { + var bobTheBuilder strings.Builder + + for _, property := range propertyContext.Properties { + propertyName := GetPropertyFromID(property.ID) + + bobTheBuilder.WriteString(fmt.Sprintf("%s: %s\n", propertyName, "")) + } + + return bobTheBuilder.String() +} + +func GetPropertyFromID(identifier uint16) []string { + return PropertyMap[fmt.Sprintf("%d", identifier)] +} + // GetPropertyByID returns the property by ID. func (propertyContext *PropertyContext) GetPropertyByID(propertyID uint16) (Property, error) { for _, property := range propertyContext.Properties { diff --git a/pkg/property_reader.go b/pkg/property_reader.go index eddc0ec..846d87f 100644 --- a/pkg/property_reader.go +++ b/pkg/property_reader.go @@ -20,6 +20,7 @@ import ( "encoding/binary" "fmt" "github.com/tinylib/msgp/msgp" + "io" "math" "time" @@ -160,6 +161,10 @@ func (propertyReader *PropertyReader) WriteMessagePackValue(writer *msgp.Writer) } return nil + case PropertyTypeObject: + // + //panic("Got object!") + return ErrPropertyNoData default: // TODO - Write Nil? return ErrPropertyNoData @@ -312,6 +317,14 @@ func (propertyReader *PropertyReader) ReadAt(outputBuffer []byte, offset int64) return propertyReader.HeapOnNodeReader.ReadAt(outputBuffer, offset) } +func (propertyReader *PropertyReader) Read(outputBuffer []byte) (int, error) { + // TODO - Just use ReadAt for now + + sectionReader := io.NewSectionReader(propertyReader.HeapOnNodeReader, 0, propertyReader.Size()) + + return sectionReader.Read(outputBuffer) +} + // Size returns the size of the Heap-on-Node. func (propertyReader *PropertyReader) Size() int64 { return propertyReader.HeapOnNodeReader.Size() diff --git a/pkg/writer/attachment_writer.go b/pkg/writer/attachment_writer.go new file mode 100644 index 0000000..a6a96d8 --- /dev/null +++ b/pkg/writer/attachment_writer.go @@ -0,0 +1,44 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package writer + +import ( + "github.com/mooijtech/go-pst/v6/pkg/properties" + "github.com/rotisserie/eris" +) + +// AttachmentWriter represents a writer for attachments. +type AttachmentWriter struct { + // PropertyContextWriter represents the PropertyContextWriter. + PropertyContextWriter *PropertyContextWriter +} + +// NewAttachmentWriter creates a new AttachmentWriter. +func NewAttachmentWriter(properties *properties.Attachment) *AttachmentWriter { + return &AttachmentWriter{ + PropertyContextWriter: NewPropertyContextWriter(properties), + } +} + +// Write writes the attachment pst.TableContext. +func (attachmentWriter *AttachmentWriter) Write() error { + if err := attachmentWriter.PropertyContextWriter.Write(); err != nil { + return eris.Wrap(err, "failed to write Table Context") + } + + return nil +} diff --git a/pkg/writer/btree_on_heap_writer.go b/pkg/writer/btree_on_heap_writer.go new file mode 100644 index 0000000..65de641 --- /dev/null +++ b/pkg/writer/btree_on_heap_writer.go @@ -0,0 +1,39 @@ +package writer + +import ( + pst "github.com/mooijtech/go-pst/v6/pkg" + "github.com/rotisserie/eris" +) + +// BTreeOnHeapWriter writes a BTree-On-Heap +type BTreeOnHeapWriter struct { + // HeapOnNodeWriter represents the HeapOnNodeWriter. + HeapOnNodeWriter *HeapOnNodeWriter +} + +// NewBTreeOnHeapWriter creates a new BTreeOnHeapWriter. +func NewBTreeOnHeapWriter(heapOnNodeWriter *HeapOnNodeWriter) *BTreeOnHeapWriter { + return &BTreeOnHeapWriter{HeapOnNodeWriter: heapOnNodeWriter} +} + +// Write writes the BTree-on-Heap. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#inserting-into-the-bth +func (btreeOnHeapWriter *BTreeOnHeapWriter) Write() error { + if err := btreeOnHeapWriter.HeapOnNodeWriter.Write(); err != nil { + return eris.Wrap(err, "failed to write Heap-on-Node") + } + if err := btreeOnHeapWriter.WriteHeader(); err != nil { + return eris.Wrap(err, "failed to write BTree-On-Heap header") + } + + return nil +} + +// WriteHeader writes the BTree-on-Heap header. +func (btreeOnHeapWriter *BTreeOnHeapWriter) WriteHeader() error { + header := make([]byte, 0) // TODO - Correct size + + WriteBuffer([]byte{byte(pst.SignatureTypeBTreeOnHeap)}, header) // MUST be bTypeBTH. + + return nil +} diff --git a/pkg/writer/btree_writer.go b/pkg/writer/btree_writer.go new file mode 100644 index 0000000..d41fa07 --- /dev/null +++ b/pkg/writer/btree_writer.go @@ -0,0 +1,112 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package writer + +import ( + pst "github.com/mooijtech/go-pst/v6/pkg" + "github.com/rotisserie/eris" +) + +// BTreeWriter represents a writer for B-Trees. +type BTreeWriter struct { + // FormatType represents the FormatType to use during writing. + FormatType pst.FormatType +} + +// NewBTreeWriter creates a new BTreeWriter. +func NewBTreeWriter(formatType pst.FormatType) *BTreeWriter { + return &BTreeWriter{FormatType: formatType} +} + +// Write writes the B-Tree. +// References TODO +func (btreeWriter *BTreeWriter) Write() error { + return nil +} + +// WriteBTree writes the node- and block b-tree. +// References TODO +func (btreeWriter *BTreeWriter) WriteBTree(btreeType pst.BTreeType, level int) error { + btree := make([]byte, 512) // Same size for Unicode and ANSI. + + if err := btreeWriter.WriteBTreeNode(); err != nil { + return eris.Wrap(err, "failed to write b-tree node") + } + + // The number of BTree entries stored in the page data. + if level > 0 { + // Branch + WriteBuffer([]byte{}, btree) + } else { + // Leaf + WriteBuffer([]byte{}, btree) + } + + // The maximum number of entries that can fit inside the page data. + WriteBuffer([]byte{255}, btree) + + // The size of each BTree entry, in bytes. + if btreeType == pst.BTreeTypeNode && level == 0 { + switch btreeWriter.FormatType { + case pst.FormatTypeUnicode: + WriteBuffer([]byte{32}, btree) + case pst.FormatTypeANSI: + WriteBuffer([]byte{16}, btree) + default: + return pst.ErrFormatTypeUnsupported + } + } else { + switch btreeWriter.FormatType { + case pst.FormatTypeUnicode: + WriteBuffer([]byte{24}, btree) + case pst.FormatTypeANSI: + WriteBuffer([]byte{12}, btree) + default: + return pst.ErrFormatTypeUnsupported + } + } + + // The depth level of this page. Leaf pages have a level of zero, whereas intermediate pages have a level greater than 0. + + if btreeWriter.FormatType == pst.FormatTypeUnicode { + // Padding; MUST be set to zero. + WriteBuffer(make([]byte, 4), btree) + } + + // A PAGETRAILER structure (section 2.2.2.7.1). + + return nil +} + +func (btreeWriter *BTreeWriter) WriteBTreeNode() error { + var btreeNodeSize int + + switch btreeWriter.FormatType { + case pst.FormatTypeUnicode: + btreeNodeSize = 488 + case pst.FormatTypeANSI: + btreeNodeSize = 496 + default: + return pst.ErrFormatTypeUnsupported + } + + btreeNode := make([]byte, btreeNodeSize) + + // + + return nil +} diff --git a/pkg/writer/folder_writer.go b/pkg/writer/folder_writer.go new file mode 100644 index 0000000..b13c13e --- /dev/null +++ b/pkg/writer/folder_writer.go @@ -0,0 +1,80 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package writer + +import "github.com/rotisserie/eris" + +// FolderWriter represents a writer for folders. +type FolderWriter struct { + // Properties represents the FolderProperties. + Properties FolderProperties + // Messages represents the messages in this folder. + Messages []*MessageWriter + // TableContextWriter writes the pst.TableContext of the pst.Folder. + TableContextWriter *TableContextWriter +} + +// FolderProperties represents the properties of a pst.Folder. +// TODO - Move to properties.Folder. +type FolderProperties struct { + Name string +} + +// NewFolderProperties creates a new FolderProperties. +func NewFolderProperties(name string) FolderProperties { + return FolderProperties{ + Name: name, + } +} + +// NewFolderWriter creates a new FolderWriter. +func NewFolderWriter(folderProperties FolderProperties, messages []*MessageWriter, tableContextWriter *TableContextWriter) *FolderWriter { + return &FolderWriter{ + Properties: folderProperties, + Messages: messages, + TableContextWriter: tableContextWriter, + } +} + +// Write writes the folder containing messages. +func (folderWriter *FolderWriter) Write() error { + if err := folderWriter.TableContextWriter.Write(); err != nil { + return eris.Wrap(err, "failed to write Table Context") + } + + if err := folderWriter.WriteMessages(); err != nil { + return eris.Wrap(err, "failed to write messages") + } + + return nil +} + +// WriteFolders writes the pst.TableContext of the folders. +func (folderWriter *FolderWriter) WriteFolders() error { + return nil +} + +// WriteMessages writes the messages of the folder. +func (folderWriter *FolderWriter) WriteMessages() error { + for _, messageWriter := range folderWriter.Messages { + if err := messageWriter.Write(); err != nil { + return eris.Wrap(err, "failed to write message") + } + } + + return nil +} diff --git a/pkg/writer/heap_on_node_writer.go b/pkg/writer/heap_on_node_writer.go new file mode 100644 index 0000000..16901a7 --- /dev/null +++ b/pkg/writer/heap_on_node_writer.go @@ -0,0 +1,73 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package writer + +import ( + pst "github.com/mooijtech/go-pst/v6/pkg" + "github.com/rotisserie/eris" +) + +// HeapOnNodeWriter represents a writer for pst.HeapOnNode. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#hn-heap-on-node +type HeapOnNodeWriter struct { + // SignatureType represents the higher level data structure of this Heap-on-Node. + SignatureType pst.SignatureType +} + +// NewHeapOnNodeWriter creates a new HeapOnNodeWriter. +func NewHeapOnNodeWriter(signatureType pst.SignatureType) *HeapOnNodeWriter { + return &HeapOnNodeWriter{ + SignatureType: signatureType, + } +} + +// Write writes the Heap-on-Node. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#creating-an-hn +func (heapOnNodeWriter *HeapOnNodeWriter) Write() error { + if err := heapOnNodeWriter.WriteHeader(); err != nil { + return eris.Wrap(err, "failed to write Heap-on-Node header") + } + + return nil +} + +// WriteHeader writes the Heap-on-Node header. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#hnhdr +func (heapOnNodeWriter *HeapOnNodeWriter) WriteHeader() error { + // NOTE: This is the Heap-on-Node NOT BTree-On-Heap + header := make([]byte, 12) + + // The byte offset to the HN page Map record (section 2.3.1.5), with respect to the beginning of the HNHDR structure. + WriteBuffer(make([]byte, 2), header) // TODO + + // Block signature; MUST be set to 0xEC to indicate an HN. + WriteBuffer([]byte{236}, header) + + // Client signature. This value describes the higher-level structure that is implemented on top of the HN. + WriteBuffer([]byte{byte(heapOnNodeWriter.SignatureType)}, header) + + // HID that points to the User Root record. + // The User Root record contains data that is specific to the higher level. + WriteBuffer(make([]byte, 4), header) // TODO + + // Per-block Fill Level Map. + // This array consists of eight 4-bit values that indicate the fill level for each of the first 8 data blocks (including this header block). + // If the HN has fewer than 8 data blocks, then the values corresponding to the non-existent data blocks MUST be set to zero. + WriteBuffer(make([]byte, 4), header) // TODO + + return nil +} diff --git a/pkg/writer/local_descriptors_writer.go b/pkg/writer/local_descriptors_writer.go new file mode 100644 index 0000000..3871e63 --- /dev/null +++ b/pkg/writer/local_descriptors_writer.go @@ -0,0 +1,16 @@ +package writer + +// LocalDescriptorsWriter represents a writer for Local Descriptors. +// (B-Tree Nodes pointing to other B-Tree Nodes) +type LocalDescriptorsWriter struct { +} + +// NewLocalDescriptorsWriter creates a new LocalDescriptorsWriter. +func NewLocalDescriptorsWriter() *LocalDescriptorsWriter { + return &LocalDescriptorsWriter{} +} + +// Write writes the Local Descriptors. +func (localDescriptorsWriter *LocalDescriptorsWriter) Write() error { + return nil +} diff --git a/pkg/writer/message_store_writer.go b/pkg/writer/message_store_writer.go new file mode 100644 index 0000000..b0f9504 --- /dev/null +++ b/pkg/writer/message_store_writer.go @@ -0,0 +1,27 @@ +package writer + +import "github.com/rotisserie/eris" + +// MessageStoreWriter represents a writer for Message Stores. +type MessageStoreWriter struct { + // PropertyContextWriter represents the pst.PropertyContext writer. + PropertyContextWriter *PropertyContextWriter +} + +// TODO - properties.MessageStore + +// NewMessageStoreWriter creates a new MessageStoreWriter. +func NewMessageStoreWriter(propertyContextWriter *PropertyContextWriter) *MessageStoreWriter { + return &MessageStoreWriter{ + PropertyContextWriter: propertyContextWriter, + } +} + +// Write writes the Message Store. +func (messageStoreWriter *MessageStoreWriter) Write() error { + if err := messageStoreWriter.PropertyContextWriter.Write(); err != nil { + return eris.Wrap(err, "failed to write Message Store") + } + + return nil +} diff --git a/pkg/writer/message_writer.go b/pkg/writer/message_writer.go new file mode 100644 index 0000000..909dd8e --- /dev/null +++ b/pkg/writer/message_writer.go @@ -0,0 +1,43 @@ +package writer + +import ( + "github.com/mooijtech/go-pst/v6/pkg/properties" + "github.com/rotisserie/eris" +) + +// MessageWriter represents a message that can be written to a PST file. +type MessageWriter struct { + // Properties represents the properties of a pst.Message. + Properties *properties.Message + // Attachments represents the attachments of a pst.Message. + Attachments []*AttachmentWriter + + // PropertyContextWriter writes the pst.PropertyContext of a pst.Message. + PropertyContextWriter *PropertyContextWriter +} + +// NewMessageWriter creates a new MessageWriter. +func NewMessageWriter(properties *properties.Message, attachments []*AttachmentWriter) *MessageWriter { + return &MessageWriter{ + Properties: properties, + Attachments: attachments, + PropertyContextWriter: NewPropertyContextWriter(properties), + } +} + +// Write writes the message property context. +func (messageWriter *MessageWriter) Write() error { + // Write Property Context. + if err := messageWriter.PropertyContextWriter.Write(); err != nil { + return eris.Wrap(err, "failed to write Property Context") + } + + // Write attachments. + for _, attachmentWriter := range messageWriter.Attachments { + if err := attachmentWriter.Write(); err != nil { + return eris.Wrap(err, "failed to write attachment") + } + } + + return nil +} diff --git a/pkg/writer/property_context_writer.go b/pkg/writer/property_context_writer.go new file mode 100644 index 0000000..e0e2740 --- /dev/null +++ b/pkg/writer/property_context_writer.go @@ -0,0 +1,53 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package writer + +import ( + pst "github.com/mooijtech/go-pst/v6/pkg" + "github.com/rotisserie/eris" + "google.golang.org/protobuf/proto" +) + +// PropertyContextWriter represents a writer for a pst.PropertyContext. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#property-context-pc +type PropertyContextWriter struct { + // Properties represents the properties in the pst.PropertyContext. + // See properties.Message, properties.Attachment etc. + Properties proto.Message + // BTreeOnHeapWriter represents the BTreeOnHeapWriter. + BTreeOnHeapWriter *BTreeOnHeapWriter +} + +// NewPropertyContextWriter creates a new PropertyContextWriter. +func NewPropertyContextWriter(properties proto.Message) *PropertyContextWriter { + heapOnNodeWriter := NewHeapOnNodeWriter(pst.SignatureTypePropertyContext) + btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) + + return &PropertyContextWriter{ + Properties: properties, + BTreeOnHeapWriter: btreeOnHeapWriter, + } +} + +// Write writes the pst.PropertyContext. +func (propertyContextWriter *PropertyContextWriter) Write() error { + if err := propertyContextWriter.BTreeOnHeapWriter.Write(); err != nil { + return eris.Wrap(err, "failed to write Heap-on-Node") + } + + return nil +} diff --git a/pkg/writer/table_context_writer.go b/pkg/writer/table_context_writer.go new file mode 100644 index 0000000..54bb7a2 --- /dev/null +++ b/pkg/writer/table_context_writer.go @@ -0,0 +1,67 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package writer + +import ( + pst "github.com/mooijtech/go-pst/v6/pkg" + "github.com/rotisserie/eris" +) + +// TableContextWriter represents a writer for a pst.TableContext. +type TableContextWriter struct { + // BTreeOnHeapWriter represents the BTreeOnHeapWriter. + BTreeOnHeapWriter *BTreeOnHeapWriter + // Properties represents the pst.TableContext properties. + Properties [][]pst.Property // TODO - Init ?? +} + +// NewTableContextWriter creates a new TableContextWriter. +func NewTableContextWriter() *TableContextWriter { + heapOnNodeWriter := NewHeapOnNodeWriter(pst.SignatureTypeTableContext) + btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) + + return &TableContextWriter{ + BTreeOnHeapWriter: btreeOnHeapWriter, + } +} + +// Write writes the pst.TableContext. +func (tableContextWriter *TableContextWriter) Write() error { + if err := tableContextWriter.BTreeOnHeapWriter.Write(); err != nil { + return eris.Wrap(err, "failed to write BTree-on-Heap") + } + + if err := tableContextWriter.WriteHeader(); err != nil { + return eris.Wrap(err, "failed to write Table Context header") + } + + return nil +} + +// WriteHeader writes the pst.TableContext header. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#tcinfo +func (tableContextWriter *TableContextWriter) WriteHeader() error { + // ?+?+?+entries + header := make([]byte, 0) // TODO - fix size + + WriteBuffer([]byte{byte(pst.SignatureTypeTableContext)}, header) // MUST be set to bTypeTC + WriteBuffer([]byte{byte(len(tableContextWriter.Properties))}, header) // Column count + + // Array of Column Descriptors. + + return nil +} diff --git a/pkg/writer/utils.go b/pkg/writer/utils.go new file mode 100644 index 0000000..2a759e5 --- /dev/null +++ b/pkg/writer/utils.go @@ -0,0 +1,6 @@ +package writer + +// WriteBuffer is a helper for copying (appending) bytes without specifying the offset. +func WriteBuffer(inputBuffer []byte, outputBuffer []byte) { + copy(outputBuffer[len(outputBuffer):len(outputBuffer)+len(inputBuffer)], inputBuffer) +} diff --git a/pkg/writer/writer.go b/pkg/writer/writer.go new file mode 100644 index 0000000..d2664a0 --- /dev/null +++ b/pkg/writer/writer.go @@ -0,0 +1,264 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package writer implements writing PST files. +package writer + +import ( + "encoding/binary" + "github.com/mooijtech/go-pst/v6/pkg" + "github.com/rotisserie/eris" + "hash/crc32" + "io" +) + +// Writer writes PST files. +type Writer struct { + // Writer represents where the PST file will be written to. + Writer io.WriterAt + // WriteOptions defines options used while writing. + WriteOptions WriteOptions + // Folders to write. + Folders []*FolderWriter +} + +// NewWriter returns a writer for PST files. +func NewWriter(writer io.WriterAt, writeOptions WriteOptions) *Writer { + return &Writer{Writer: writer, WriteOptions: writeOptions} +} + +// AddFolder adds a pst.Folder to write. +func (writer *Writer) AddFolder(folder *FolderWriter) { + writer.Folders = append(writer.Folders, folder) +} + +// WriteOptions defines the options used during writing. +type WriteOptions struct { + // FormatType represents ANSI or Unicode. + FormatType pst.FormatType + // EncryptionType represents the encryption type. + EncryptionType pst.EncryptionType +} + +// NewWriteOptions creates a new WriteOptions used during writing PST files. +func NewWriteOptions(formatType pst.FormatType, encryptionType pst.EncryptionType) WriteOptions { + return WriteOptions{ + FormatType: formatType, + EncryptionType: encryptionType, + } +} + +// Write writes the PST file. +func (writer *Writer) Write() error { + if _, err := writer.WriteHeader(); err != nil { + return eris.Wrap(err, "failed to write header") + } + + return nil +} + +// WriteHeader writes the PST header. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#header-1 +func (writer *Writer) WriteHeader() (int, error) { + var headerSize int + + switch writer.WriteOptions.FormatType { + case pst.FormatTypeUnicode: + // 4+4+2+2+2+1+1+4+4+8+8+4+128+8+ROOT+4+128+128+1+1+2+8+4+3+1+32 + // Header + header root + headerSize = 492 + 72 + case pst.FormatTypeANSI: + // 4+4+2+2+2+1+1+4+4+4+4+4+128+ROOT+128+128+1+1+2+8+4+3+1+32 + // Header + header root + headerSize = 472 + 40 + default: + return 0, pst.ErrFormatTypeUnsupported + } + + header := make([]byte, headerSize) + + WriteBuffer([]byte("!BDN"), header) // Magic bytes + //WriteBuffer() // Partial CRC is updated at the end when we have all values. + WriteBuffer([]byte{0x53, 0x4D}, header) // Magic client + + // File format version + switch writer.WriteOptions.FormatType { + case pst.FormatTypeUnicode: + // MUST be greater than 23 if the file is a Unicode PST file. + WriteBuffer([]byte{30}, header) + case pst.FormatTypeANSI: + // This value MUST be 14 or 15 if the file is an ANSI PST file. + WriteBuffer([]byte{15}, header) + default: + return 0, pst.ErrFormatTypeUnsupported + } + + WriteBuffer([]byte{19}, header) // Client file format version. + WriteBuffer([]byte{1}, header) // Platform Create + WriteBuffer([]byte{1}, header) // Platform Access + WriteBuffer(make([]byte, 4), header) // Reserved1 + WriteBuffer(make([]byte, 4), header) // Reserved2 + + if writer.WriteOptions.FormatType == pst.FormatTypeUnicode { + // Padding (bidUnused) for Unicode. + WriteBuffer(make([]byte, 8), header) + } + if writer.WriteOptions.FormatType == pst.FormatTypeANSI { + // Next BID (bidNextB) for ANSI only. + // go-pst does not read this. + WriteBuffer(make([]byte, 4), header) + } + + // Next page BID (bidNextP) + // go-pst does not read this. + if writer.WriteOptions.FormatType == pst.FormatTypeUnicode { + WriteBuffer(make([]byte, 8), header) + } + if writer.WriteOptions.FormatType == pst.FormatTypeANSI { + WriteBuffer(make([]byte, 4), header) + } + + // This is a monotonically-increasing value that is modified every time the PST file's HEADER structure is modified. + // The function of this value is to provide a unique value, and to ensure that the HEADER CRCs are different after each header modification. + WriteBuffer([]byte{1, 3, 3, 7}, header) + + // rgnid + // go-pst does not read this. + WriteBuffer(make([]byte, 128), header) + + if writer.WriteOptions.FormatType == pst.FormatTypeUnicode { + // Unused space; MUST be set to zero. Unicode PST file format only. + // (qwUnused) + WriteBuffer(make([]byte, 8), header) + } + + // Header root + if err := writer.WriteHeaderRoot(header); err != nil { + return 0, eris.Wrap(err, "failed to write header root") + } + + // Unused alignment bytes; MUST be set to zero. + // Unicode PST file format only. + if writer.WriteOptions.FormatType == pst.FormatTypeUnicode { + WriteBuffer(make([]byte, 4), header) + } + + WriteBuffer(make([]byte, 128), header) // Deprecated FMap (rgbFM). + WriteBuffer(make([]byte, 128), header) // Deprecated FMap (rgbFP). + + for i := 0; i < 128+128; i++ { + // Fill FMap. + copy(header[len(header):len(header)+i], []byte{255}) + } + + WriteBuffer([]byte{128}, header) // bSentinel + WriteBuffer([]byte{byte(writer.WriteOptions.EncryptionType)}, header) // Encryption. Indicates how the data within the PST file is encoded. (bCryptMethod) + WriteBuffer(make([]byte, 2), header) // rgbReserved + + if writer.WriteOptions.FormatType == pst.FormatTypeUnicode { + // Next BID. go-pst does not read this value (bidNextB) + WriteBuffer(make([]byte, 8), header) + + // The 32-bit CRC value of the 516 bytes of data starting from wMagicClient to bidNextB, inclusive. + // Unicode PST file format only. (dwCRCFull) + WriteBuffer([]byte{byte(crc32.ChecksumIEEE(header[4 : 4+516]))}, header) + } + + if writer.WriteOptions.FormatType == pst.FormatTypeANSI { + WriteBuffer(make([]byte, 8), header) // ullReserved + WriteBuffer(make([]byte, 4), header) // dwReserved + } + + WriteBuffer(make([]byte, 3), header) // rgbReserved2 + WriteBuffer(make([]byte, 1), header) // bReserved + WriteBuffer(make([]byte, 32), header) // rgbReserved3 + + // Update first partial CRC + copy(header[4:4+4], []byte{byte(crc32.ChecksumIEEE(header[10 : 10+471]))}) + + if len(header) != headerSize { + return 0, eris.New("header size mismatch") + } + + return writer.Writer.WriteAt(header, 0) +} + +// WriteHeaderRoot writes the header root. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#root +func (writer *Writer) WriteHeaderRoot(outputBuffer []byte) error { + var headerSize int + + switch writer.WriteOptions.FormatType { + case pst.FormatTypeUnicode: + // 4+8+8+8+8+16+16+1+1+2 + headerSize = 72 + case pst.FormatTypeANSI: + // 4+4+4+4+4+8+8+1+1+2 + headerSize = 40 + default: + return pst.ErrFormatTypeUnsupported + } + + header := make([]byte, headerSize) + + WriteBuffer(make([]byte, 4), header) // dwReserved + + switch writer.WriteOptions.FormatType { + case pst.FormatTypeUnicode: + // The size of the PST file, in bytes. (ibFileEof) TODO + WriteBuffer(make([]byte, 8), header) + // An IB structure (section 2.2.2.3) that contains the absolute file offset to the last AMap page of the PST file. + WriteBuffer(make([]byte, 8), header) + // The total free space in all AMaps, combined. + WriteBuffer(make([]byte, 8), header) + // The total free space in all PMaps, combined. Because the PMap is deprecated, this value SHOULD be zero. + WriteBuffer(make([]byte, 8), header) + // A BREF structure (section 2.2.2.4) that references the root page of the Node BTree (NBT). + WriteBuffer(append(binary.LittleEndian.AppendUint64([]byte{}, uint64(writer.RootNodeBTree)), make([]byte, 8)...), header) + // A BREF structure that references the root page of the Block BTree (BBT). + WriteBuffer(append(binary.LittleEndian.AppendUint64([]byte{}, uint64(writer.RootBlockBTree)), make([]byte, 8)...), header) + // Indicates whether the AMaps in this PST file are valid (0 = INVALID_AMAP). + WriteBuffer([]byte{0}, header) + case pst.FormatTypeANSI: + // The size of the PST file, in bytes. (ibFileEof) + WriteBuffer(make([]byte, 4), header) + // An IB structure (section 2.2.2.3) that contains the absolute file offset to the last AMap page of the PST file. + WriteBuffer(make([]byte, 4), header) + // The total free space in all AMaps, combined. + WriteBuffer(make([]byte, 4), header) + // The total free space in all PMaps, combined. Because the PMap is deprecated, this value SHOULD be zero. + WriteBuffer(make([]byte, 4), header) + // A BREF structure (section 2.2.2.4) that references the root page of the Node BTree (NBT). + binary.LittleEndian.PutUint64(header[len(header):len(header)+8], uint64(writer.RootNodeBTree)) + // A BREF structure that references the root page of the Block BTree (BBT). + binary.LittleEndian.PutUint64(header[len(header):len(header)+8], uint64(writer.RootBlockBTree)) + // Indicates whether the AMaps in this PST file are valid (0 = INVALID_AMAP). + WriteBuffer([]byte{0}, header) + default: + return pst.ErrFormatTypeUnsupported + } + + WriteBuffer(make([]byte, 1), header) // bReserved + WriteBuffer(make([]byte, 2), header) // wReserved + + if len(header) != headerSize { + return eris.New("header root size mismatch") + } + + copy(outputBuffer, header) + + return nil +} diff --git a/pkg/writer/writer_test.go b/pkg/writer/writer_test.go new file mode 100644 index 0000000..b2a4793 --- /dev/null +++ b/pkg/writer/writer_test.go @@ -0,0 +1,68 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package writer + +import ( + "github.com/mooijtech/go-pst/v6/pkg" + "github.com/mooijtech/go-pst/v6/pkg/properties" + "google.golang.org/protobuf/proto" + "os" + "testing" +) + +// TestWritePSTFile writes a new PST file. +func TestWritePSTFile(t *testing.T) { + outputFile, err := os.Create("1337.pst") + + if err != nil { + t.Fatalf("Failed to create output file: %+v", err) + } + + writer := NewWriter(outputFile, NewWriteOptions(pst.FormatTypeUnicode, pst.EncryptionTypePermute)) + + // Create messages to write. + messageProperties := &properties.Message{ + Subject: proto.String("Hello world!"), + From: proto.String("info@mooijtech.com"), + Body: proto.String("go-pst now supports writing PST files."), + } + attachmentProperties := &properties.Attachment{ + AttachFilename: proto.String("nudes.png"), + AttachLongFilename: proto.String("nudes.png"), + } + messageAttachments := []*AttachmentWriter{NewAttachmentWriter(attachmentProperties)} + + message := NewMessageWriter(messageProperties, messageAttachments) + + writer.AddMessage(message) + + if err := writer.Write(); err != nil { + t.Fatalf("Failed to write PST file: %+v", err) + } +} + +// TestWritePSTFileFromExisting writes a PST file from an existing PST file. +func TestWritePSTFileFromExisting(t *testing.T) { + +} + +// TestReadWrittenPSTFile tests if go-pst can read the written PST file without errors. +func TestReadWrittenPSTFile(t *testing.T) { + TestWritePSTFile(t) + + // TODO - Read +} From 95864c4ef16cb5de470c7778e247f27e4bd4b7c2 Mon Sep 17 00:00:00 2001 From: Marten Mooij Date: Wed, 30 Aug 2023 21:11:37 +0200 Subject: [PATCH 02/12] Use io.WriterTo and bytes.Buffer --- pkg/writer/attachment_writer.go | 13 +- pkg/writer/btree_on_heap_writer.go | 65 ++++++-- pkg/writer/btree_writer.go | 75 +++++----- pkg/writer/folder_writer.go | 48 +++--- pkg/writer/heap_on_node_writer.go | 72 ++++++--- pkg/writer/local_descriptors_writer.go | 16 ++ pkg/writer/message_store_writer.go | 30 +++- pkg/writer/message_writer.go | 39 ++++- pkg/writer/property_context_writer.go | 13 +- pkg/writer/table_context_writer.go | 32 ++-- pkg/writer/utils.go | 34 ++++- pkg/writer/writer.go | 200 +++++++++++++------------ pkg/writer/writer_test.go | 10 +- 13 files changed, 426 insertions(+), 221 deletions(-) diff --git a/pkg/writer/attachment_writer.go b/pkg/writer/attachment_writer.go index a6a96d8..6a736bd 100644 --- a/pkg/writer/attachment_writer.go +++ b/pkg/writer/attachment_writer.go @@ -19,6 +19,7 @@ package writer import ( "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" + "io" ) // AttachmentWriter represents a writer for attachments. @@ -34,11 +35,13 @@ func NewAttachmentWriter(properties *properties.Attachment) *AttachmentWriter { } } -// Write writes the attachment pst.TableContext. -func (attachmentWriter *AttachmentWriter) Write() error { - if err := attachmentWriter.PropertyContextWriter.Write(); err != nil { - return eris.Wrap(err, "failed to write Table Context") +// WriteTo writes the attachment pst.TableContext. +func (attachmentWriter *AttachmentWriter) WriteTo(writer io.Writer) (int64, error) { + propertyContextWrittenSize, err := attachmentWriter.PropertyContextWriter.WriteTo(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write Table Context") } - return nil + return propertyContextWrittenSize, nil } diff --git a/pkg/writer/btree_on_heap_writer.go b/pkg/writer/btree_on_heap_writer.go index 65de641..3df74d5 100644 --- a/pkg/writer/btree_on_heap_writer.go +++ b/pkg/writer/btree_on_heap_writer.go @@ -1,8 +1,26 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package writer import ( + "bytes" pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" + "io" ) // BTreeOnHeapWriter writes a BTree-On-Heap @@ -16,24 +34,47 @@ func NewBTreeOnHeapWriter(heapOnNodeWriter *HeapOnNodeWriter) *BTreeOnHeapWriter return &BTreeOnHeapWriter{HeapOnNodeWriter: heapOnNodeWriter} } -// Write writes the BTree-on-Heap. -// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#inserting-into-the-bth -func (btreeOnHeapWriter *BTreeOnHeapWriter) Write() error { - if err := btreeOnHeapWriter.HeapOnNodeWriter.Write(); err != nil { - return eris.Wrap(err, "failed to write Heap-on-Node") +// WriteTo writes the BTree-on-Heap. +// References: +// - https://github.com/mooijtech/go-pst/blob/main/docs/README.md#creating-a-bth +// - https://github.com/mooijtech/go-pst/blob/main/docs/README.md#inserting-into-the-bth +func (btreeOnHeapWriter *BTreeOnHeapWriter) WriteTo(writer io.Writer) (int64, error) { + heapOnNodeWrittenSize, err := btreeOnHeapWriter.HeapOnNodeWriter.WriteTo(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write Heap-on-Node") } - if err := btreeOnHeapWriter.WriteHeader(); err != nil { - return eris.Wrap(err, "failed to write BTree-On-Heap header") + + headerWrittenSize, err := btreeOnHeapWriter.WriteHeader(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write BTree-On-Heap header") } - return nil + return heapOnNodeWrittenSize + headerWrittenSize, nil } // WriteHeader writes the BTree-on-Heap header. -func (btreeOnHeapWriter *BTreeOnHeapWriter) WriteHeader() error { - header := make([]byte, 0) // TODO - Correct size +// References: +// - https://github.com/mooijtech/go-pst/blob/main/docs/README.md#bthheader +func (btreeOnHeapWriter *BTreeOnHeapWriter) WriteHeader(writer io.Writer) (int64, error) { + // 1+1+1+1+4 + header := bytes.NewBuffer(make([]byte, 8)) - WriteBuffer([]byte{byte(pst.SignatureTypeBTreeOnHeap)}, header) // MUST be bTypeBTH. + // MUST be bTypeBTH. + header.WriteByte(byte(pst.SignatureTypeBTreeOnHeap)) + // Size of the BTree Key value, in bytes. + // This value MUST be set to 2, 4, 8, or 16. + header.Write([]byte{8}) + // Size of the data value, in bytes. + // This MUST be greater than zero and less than or equal to 32. + header.Write(make([]byte, 32)) + // Index depth. + // This number indicates how many levels of intermediate indices exist in the BTH. + header.Write([]byte{0}) + // This is the HID (heap ID) that points to the entries of this BTree-on-Heap header. + // The data consists of an array of BTH records. + header.Write(make([]byte, 4)) - return nil + return header.WriteTo(writer) } diff --git a/pkg/writer/btree_writer.go b/pkg/writer/btree_writer.go index d41fa07..4443865 100644 --- a/pkg/writer/btree_writer.go +++ b/pkg/writer/btree_writer.go @@ -17,8 +17,10 @@ package writer import ( + "bytes" pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" + "io" ) // BTreeWriter represents a writer for B-Trees. @@ -32,67 +34,70 @@ func NewBTreeWriter(formatType pst.FormatType) *BTreeWriter { return &BTreeWriter{FormatType: formatType} } -// Write writes the B-Tree. -// References TODO -func (btreeWriter *BTreeWriter) Write() error { - return nil -} - -// WriteBTree writes the node- and block b-tree. -// References TODO -func (btreeWriter *BTreeWriter) WriteBTree(btreeType pst.BTreeType, level int) error { - btree := make([]byte, 512) // Same size for Unicode and ANSI. +// WriteTo writes the B-Tree. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#btpage +func (btreeWriter *BTreeWriter) WriteTo(writer io.Writer, btreeType pst.BTreeType, btreeEntries [][]byte, level int) (int64, error) { + btree := bytes.NewBuffer(make([]byte, 512)) // Same for Unicode and ANSI. - if err := btreeWriter.WriteBTreeNode(); err != nil { - return eris.Wrap(err, "failed to write b-tree node") + // Entries + // TODO make a structure for this. + // TODO Check maximum b-tree entry size and return error on overflow + for _, btreeEntry := range btreeEntries { + btree.Write(btreeEntry) } // The number of BTree entries stored in the page data. - if level > 0 { - // Branch - WriteBuffer([]byte{}, btree) - } else { - // Leaf - WriteBuffer([]byte{}, btree) - } + btree.WriteByte(byte(len(btreeEntries))) // The maximum number of entries that can fit inside the page data. - WriteBuffer([]byte{255}, btree) + btree.Write(make([]byte, 1)) // TODO // The size of each BTree entry, in bytes. if btreeType == pst.BTreeTypeNode && level == 0 { switch btreeWriter.FormatType { case pst.FormatTypeUnicode: - WriteBuffer([]byte{32}, btree) + btree.Write([]byte{32}) case pst.FormatTypeANSI: - WriteBuffer([]byte{16}, btree) + btree.Write([]byte{16}) default: - return pst.ErrFormatTypeUnsupported + panic(pst.ErrFormatTypeUnsupported) } } else { switch btreeWriter.FormatType { case pst.FormatTypeUnicode: - WriteBuffer([]byte{24}, btree) + btree.Write([]byte{24}) case pst.FormatTypeANSI: - WriteBuffer([]byte{12}, btree) + btree.Write([]byte{12}) default: - return pst.ErrFormatTypeUnsupported + panic(pst.ErrFormatTypeUnsupported) } } - // The depth level of this page. Leaf pages have a level of zero, whereas intermediate pages have a level greater than 0. + // The depth level of this page. + btree.WriteByte(byte(level)) if btreeWriter.FormatType == pst.FormatTypeUnicode { // Padding; MUST be set to zero. - WriteBuffer(make([]byte, 4), btree) + // Unicode only. + btree.Write(make([]byte, 4)) } - // A PAGETRAILER structure (section 2.2.2.7.1). + // Page trailer. + if _, err := btreeWriter.WritePageTrailer(btree); err != nil { + return 0, eris.Wrap(err, "failed to write page trailer") + } + + return btree.WriteTo(writer) +} - return nil +// WritePageTrailer writes the page tailer of the b-tree. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#pagetrailer +func (btreeWriter *BTreeWriter) WritePageTrailer(writer io.Writer) (int64, error) { + return 0, nil } -func (btreeWriter *BTreeWriter) WriteBTreeNode() error { +// WriteBTreeNode writes the b-tree node entry. +func (btreeWriter *BTreeWriter) WriteBTreeNode(writer io.Writer) (int64, error) { var btreeNodeSize int switch btreeWriter.FormatType { @@ -101,12 +106,12 @@ func (btreeWriter *BTreeWriter) WriteBTreeNode() error { case pst.FormatTypeANSI: btreeNodeSize = 496 default: - return pst.ErrFormatTypeUnsupported + panic(pst.ErrFormatTypeUnsupported) } - btreeNode := make([]byte, btreeNodeSize) + btreeNode := bytes.NewBuffer(make([]byte, btreeNodeSize)) - // + // TODO - - return nil + return btreeNode.WriteTo(writer) } diff --git a/pkg/writer/folder_writer.go b/pkg/writer/folder_writer.go index b13c13e..cfac1ed 100644 --- a/pkg/writer/folder_writer.go +++ b/pkg/writer/folder_writer.go @@ -16,7 +16,10 @@ package writer -import "github.com/rotisserie/eris" +import ( + "github.com/rotisserie/eris" + "io" +) // FolderWriter represents a writer for folders. type FolderWriter struct { @@ -42,39 +45,46 @@ func NewFolderProperties(name string) FolderProperties { } // NewFolderWriter creates a new FolderWriter. -func NewFolderWriter(folderProperties FolderProperties, messages []*MessageWriter, tableContextWriter *TableContextWriter) *FolderWriter { +func NewFolderWriter(folderProperties FolderProperties, messages []*MessageWriter) *FolderWriter { return &FolderWriter{ Properties: folderProperties, Messages: messages, - TableContextWriter: tableContextWriter, + TableContextWriter: NewTableContextWriter(), } } -// Write writes the folder containing messages. -func (folderWriter *FolderWriter) Write() error { - if err := folderWriter.TableContextWriter.Write(); err != nil { - return eris.Wrap(err, "failed to write Table Context") - } +// WriteTo writes the folder containing messages. +// Returns the amount of bytes written to the output buffer. +// References TODO +func (folderWriter *FolderWriter) WriteTo(writer io.Writer) (int64, error) { + tableContextWrittenSize, err := folderWriter.TableContextWriter.WriteTo(writer) - if err := folderWriter.WriteMessages(); err != nil { - return eris.Wrap(err, "failed to write messages") + if err != nil { + return 0, eris.Wrap(err, "failed to write Table Context") } - return nil -} + messagesWrittenSize, err := folderWriter.WriteMessages(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write messages") + } -// WriteFolders writes the pst.TableContext of the folders. -func (folderWriter *FolderWriter) WriteFolders() error { - return nil + return tableContextWrittenSize + messagesWrittenSize, nil } // WriteMessages writes the messages of the folder. -func (folderWriter *FolderWriter) WriteMessages() error { +func (folderWriter *FolderWriter) WriteMessages(writer io.Writer) (int64, error) { + var totalSize int64 + for _, messageWriter := range folderWriter.Messages { - if err := messageWriter.Write(); err != nil { - return eris.Wrap(err, "failed to write message") + written, err := messageWriter.WriteTo(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write message") } + + totalSize += written } - return nil + return totalSize, nil } diff --git a/pkg/writer/heap_on_node_writer.go b/pkg/writer/heap_on_node_writer.go index 16901a7..be815ae 100644 --- a/pkg/writer/heap_on_node_writer.go +++ b/pkg/writer/heap_on_node_writer.go @@ -17,12 +17,13 @@ package writer import ( + "bytes" pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" + "io" ) // HeapOnNodeWriter represents a writer for pst.HeapOnNode. -// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#hn-heap-on-node type HeapOnNodeWriter struct { // SignatureType represents the higher level data structure of this Heap-on-Node. SignatureType pst.SignatureType @@ -35,39 +36,72 @@ func NewHeapOnNodeWriter(signatureType pst.SignatureType) *HeapOnNodeWriter { } } -// Write writes the Heap-on-Node. -// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#creating-an-hn -func (heapOnNodeWriter *HeapOnNodeWriter) Write() error { - if err := heapOnNodeWriter.WriteHeader(); err != nil { - return eris.Wrap(err, "failed to write Heap-on-Node header") +// WriteTo writes the Heap-on-Node. +// References +// - https://github.com/mooijtech/go-pst/blob/main/docs/README.md#creating-an-hn +// - https://github.com/mooijtech/go-pst/blob/main/docs/README.md#creating-a-new-node +func (heapOnNodeWriter *HeapOnNodeWriter) WriteTo(writer io.Writer) (int64, error) { + headerWrittenSize, err := heapOnNodeWriter.WriteHeader(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write header") } - return nil + pageMapWrittenSize, err := heapOnNodeWriter.WritePageMap(writer, []byte{}) + + if err != nil { + return 0, eris.Wrap(err, "failed to write page map") + } + + return headerWrittenSize + pageMapWrittenSize, nil } // WriteHeader writes the Heap-on-Node header. +// Returns the amount of bytes copied to the output buffer. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#hnhdr -func (heapOnNodeWriter *HeapOnNodeWriter) WriteHeader() error { - // NOTE: This is the Heap-on-Node NOT BTree-On-Heap - header := make([]byte, 12) +func (heapOnNodeWriter *HeapOnNodeWriter) WriteHeader(writer io.Writer) (int64, error) { + // 2+1+1+4+4 + header := bytes.NewBuffer(make([]byte, 12)) - // The byte offset to the HN page Map record (section 2.3.1.5), with respect to the beginning of the HNHDR structure. - WriteBuffer(make([]byte, 2), header) // TODO + // The byte offset to the page map record (see WritePageMap). + // Offset starts in respect to the beginning of this header. + header.Write([]byte{12}) - // Block signature; MUST be set to 0xEC to indicate an HN. - WriteBuffer([]byte{236}, header) + // Block signature. + // MUST be set to 236 to indicate a Heap-on-Node. + header.Write([]byte{236}) - // Client signature. This value describes the higher-level structure that is implemented on top of the HN. - WriteBuffer([]byte{byte(heapOnNodeWriter.SignatureType)}, header) + // Client signature. + // This value describes the higher-level structure that is implemented on top of the Heap-on-Node. + header.WriteByte(byte(heapOnNodeWriter.SignatureType)) // HID that points to the User Root record. // The User Root record contains data that is specific to the higher level. - WriteBuffer(make([]byte, 4), header) // TODO + header.Write([]byte{32}) // 0x20 TODO check this // Per-block Fill Level Map. // This array consists of eight 4-bit values that indicate the fill level for each of the first 8 data blocks (including this header block). // If the HN has fewer than 8 data blocks, then the values corresponding to the non-existent data blocks MUST be set to zero. - WriteBuffer(make([]byte, 4), header) // TODO + header.Write(make([]byte, 4)) // TODO + + return header.WriteTo(writer) +} + +// WritePageMap writes the Heap-on-Node page map. +// Returns the amount of bytes copied to the output buffer. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#hnpagemap +func (heapOnNodeWriter *HeapOnNodeWriter) WritePageMap(writer io.Writer, allocations []byte) (int64, error) { + // 2+2+allocations + pageMap := bytes.NewBuffer(make([]byte, 4+len(allocations))) + + // Allocation count. + pageMap.Write(GetUint16(2)) + + // Free count. + pageMap.Write(make([]byte, 2)) + + // Allocations. + pageMap.Write(allocations) - return nil + return pageMap.WriteTo(writer) } diff --git a/pkg/writer/local_descriptors_writer.go b/pkg/writer/local_descriptors_writer.go index 3871e63..c23d586 100644 --- a/pkg/writer/local_descriptors_writer.go +++ b/pkg/writer/local_descriptors_writer.go @@ -1,3 +1,19 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package writer // LocalDescriptorsWriter represents a writer for Local Descriptors. diff --git a/pkg/writer/message_store_writer.go b/pkg/writer/message_store_writer.go index b0f9504..ab2034e 100644 --- a/pkg/writer/message_store_writer.go +++ b/pkg/writer/message_store_writer.go @@ -1,6 +1,24 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package writer -import "github.com/rotisserie/eris" +import ( + "io" +) // MessageStoreWriter represents a writer for Message Stores. type MessageStoreWriter struct { @@ -17,11 +35,7 @@ func NewMessageStoreWriter(propertyContextWriter *PropertyContextWriter) *Messag } } -// Write writes the Message Store. -func (messageStoreWriter *MessageStoreWriter) Write() error { - if err := messageStoreWriter.PropertyContextWriter.Write(); err != nil { - return eris.Wrap(err, "failed to write Message Store") - } - - return nil +// WriteTo writes the Message Store. +func (messageStoreWriter *MessageStoreWriter) WriteTo(writer io.Writer) (int64, error) { + return messageStoreWriter.PropertyContextWriter.WriteTo(writer) } diff --git a/pkg/writer/message_writer.go b/pkg/writer/message_writer.go index 909dd8e..38b0c30 100644 --- a/pkg/writer/message_writer.go +++ b/pkg/writer/message_writer.go @@ -1,8 +1,25 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package writer import ( "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" + "io" ) // MessageWriter represents a message that can be written to a PST file. @@ -25,19 +42,27 @@ func NewMessageWriter(properties *properties.Message, attachments []*AttachmentW } } -// Write writes the message property context. -func (messageWriter *MessageWriter) Write() error { +// WriteTo writes the message property context. +func (messageWriter *MessageWriter) WriteTo(writer io.Writer) (int64, error) { // Write Property Context. - if err := messageWriter.PropertyContextWriter.Write(); err != nil { - return eris.Wrap(err, "failed to write Property Context") + propertyContextWrittenSize, err := messageWriter.PropertyContextWriter.WriteTo(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write Property Context") } // Write attachments. + var attachmentsWrittenSize int64 + for _, attachmentWriter := range messageWriter.Attachments { - if err := attachmentWriter.Write(); err != nil { - return eris.Wrap(err, "failed to write attachment") + written, err := attachmentWriter.WriteTo(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write attachment") } + + attachmentsWrittenSize += written } - return nil + return propertyContextWrittenSize + attachmentsWrittenSize, nil } diff --git a/pkg/writer/property_context_writer.go b/pkg/writer/property_context_writer.go index e0e2740..fd64039 100644 --- a/pkg/writer/property_context_writer.go +++ b/pkg/writer/property_context_writer.go @@ -20,6 +20,7 @@ import ( pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" "google.golang.org/protobuf/proto" + "io" ) // PropertyContextWriter represents a writer for a pst.PropertyContext. @@ -43,11 +44,13 @@ func NewPropertyContextWriter(properties proto.Message) *PropertyContextWriter { } } -// Write writes the pst.PropertyContext. -func (propertyContextWriter *PropertyContextWriter) Write() error { - if err := propertyContextWriter.BTreeOnHeapWriter.Write(); err != nil { - return eris.Wrap(err, "failed to write Heap-on-Node") +// WriteTo writes the pst.PropertyContext. +func (propertyContextWriter *PropertyContextWriter) WriteTo(writer io.Writer) (int64, error) { + btreeOnHeapWrittenSize, err := propertyContextWriter.BTreeOnHeapWriter.WriteTo(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write Heap-on-Node") } - return nil + return btreeOnHeapWrittenSize, nil } diff --git a/pkg/writer/table_context_writer.go b/pkg/writer/table_context_writer.go index 54bb7a2..9f29fe9 100644 --- a/pkg/writer/table_context_writer.go +++ b/pkg/writer/table_context_writer.go @@ -17,8 +17,10 @@ package writer import ( + "bytes" pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" + "io" ) // TableContextWriter represents a writer for a pst.TableContext. @@ -39,29 +41,35 @@ func NewTableContextWriter() *TableContextWriter { } } -// Write writes the pst.TableContext. -func (tableContextWriter *TableContextWriter) Write() error { - if err := tableContextWriter.BTreeOnHeapWriter.Write(); err != nil { - return eris.Wrap(err, "failed to write BTree-on-Heap") +// WriteTo writes the pst.TableContext. +func (tableContextWriter *TableContextWriter) WriteTo(writer io.Writer) (int64, error) { + btreeOnHeapWrittenSize, err := tableContextWriter.BTreeOnHeapWriter.WriteTo(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write BTree-on-Heap") } - if err := tableContextWriter.WriteHeader(); err != nil { - return eris.Wrap(err, "failed to write Table Context header") + headerWrittenSize, err := tableContextWriter.WriteHeader(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write Table Context header") } - return nil + return btreeOnHeapWrittenSize + headerWrittenSize, nil } // WriteHeader writes the pst.TableContext header. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#tcinfo -func (tableContextWriter *TableContextWriter) WriteHeader() error { +func (tableContextWriter *TableContextWriter) WriteHeader(writer io.Writer) (int64, error) { // ?+?+?+entries - header := make([]byte, 0) // TODO - fix size + header := bytes.NewBuffer(make([]byte, 0)) // TODO - fix size - WriteBuffer([]byte{byte(pst.SignatureTypeTableContext)}, header) // MUST be set to bTypeTC - WriteBuffer([]byte{byte(len(tableContextWriter.Properties))}, header) // Column count + // MUST be set to bTypeTC + header.Write([]byte{byte(pst.SignatureTypeTableContext)}) + // Column count + header.Write([]byte{byte(len(tableContextWriter.Properties))}) // Array of Column Descriptors. - return nil + return header.WriteTo(writer) } diff --git a/pkg/writer/utils.go b/pkg/writer/utils.go index 2a759e5..29d1f4c 100644 --- a/pkg/writer/utils.go +++ b/pkg/writer/utils.go @@ -1,6 +1,34 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package writer -// WriteBuffer is a helper for copying (appending) bytes without specifying the offset. -func WriteBuffer(inputBuffer []byte, outputBuffer []byte) { - copy(outputBuffer[len(outputBuffer):len(outputBuffer)+len(inputBuffer)], inputBuffer) +import "encoding/binary" + +// GetUint64 returns the Little Endian byte representation of the uint64. +func GetUint64(integer uint64) []byte { + return binary.LittleEndian.AppendUint64([]byte{}, integer) +} + +// GetUint32 returns the Little Endian byte representation of the uint32. +func GetUint32(integer uint32) []byte { + return binary.LittleEndian.AppendUint32([]byte{}, integer) +} + +// GetUint16 returns the Little Endian byte representation of the uint16. +func GetUint16(integer uint16) []byte { + return binary.LittleEndian.AppendUint16([]byte{}, integer) } diff --git a/pkg/writer/writer.go b/pkg/writer/writer.go index d2664a0..19ea9ac 100644 --- a/pkg/writer/writer.go +++ b/pkg/writer/writer.go @@ -18,7 +18,7 @@ package writer import ( - "encoding/binary" + "bytes" "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" "hash/crc32" @@ -27,8 +27,6 @@ import ( // Writer writes PST files. type Writer struct { - // Writer represents where the PST file will be written to. - Writer io.WriterAt // WriteOptions defines options used while writing. WriteOptions WriteOptions // Folders to write. @@ -36,13 +34,13 @@ type Writer struct { } // NewWriter returns a writer for PST files. -func NewWriter(writer io.WriterAt, writeOptions WriteOptions) *Writer { - return &Writer{Writer: writer, WriteOptions: writeOptions} +func NewWriter(writeOptions WriteOptions) *Writer { + return &Writer{WriteOptions: writeOptions} } -// AddFolder adds a pst.Folder to write. -func (writer *Writer) AddFolder(folder *FolderWriter) { - writer.Folders = append(writer.Folders, folder) +// AddFolder adds a pst.Folder to write (used by WriteTo). +func (pstWriter *Writer) AddFolder(folder *FolderWriter) { + pstWriter.Folders = append(pstWriter.Folders, folder) } // WriteOptions defines the options used during writing. @@ -61,21 +59,39 @@ func NewWriteOptions(formatType pst.FormatType, encryptionType pst.EncryptionTyp } } -// Write writes the PST file. -func (writer *Writer) Write() error { - if _, err := writer.WriteHeader(); err != nil { - return eris.Wrap(err, "failed to write header") +// WriteTo writes the PST file. +func (pstWriter *Writer) WriteTo(writer io.Writer) (int64, error) { + var totalSize int64 + + // Write folders. + for _, folderWriter := range pstWriter.Folders { + written, err := folderWriter.WriteTo(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write folder") + } + + totalSize += written } - return nil + // Write PST header. + // TODO - Root B-Trees + headerWrittenSize, err := pstWriter.WriteHeader(writer, totalSize, 0, 0) + + if err != nil { + return 0, eris.Wrap(err, "failed to write header") + } + + return totalSize + headerWrittenSize, nil } // WriteHeader writes the PST header. +// totalSize is the total size of the PST file excluding the header. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#header-1 -func (writer *Writer) WriteHeader() (int, error) { +func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNodeBTree pst.Identifier, rootBlockBTree pst.Identifier) (int64, error) { var headerSize int - switch writer.WriteOptions.FormatType { + switch pstWriter.WriteOptions.FormatType { case pst.FormatTypeUnicode: // 4+4+2+2+2+1+1+4+4+8+8+4+128+8+ROOT+4+128+128+1+1+2+8+4+3+1+32 // Header + header root @@ -85,123 +101,123 @@ func (writer *Writer) WriteHeader() (int, error) { // Header + header root headerSize = 472 + 40 default: - return 0, pst.ErrFormatTypeUnsupported + panic(pst.ErrFormatTypeUnsupported) } - header := make([]byte, headerSize) + header := bytes.NewBuffer(make([]byte, headerSize)) - WriteBuffer([]byte("!BDN"), header) // Magic bytes - //WriteBuffer() // Partial CRC is updated at the end when we have all values. - WriteBuffer([]byte{0x53, 0x4D}, header) // Magic client + header.Write([]byte("!BDN")) // Magic bytes + //header.Write() // Partial CRC is updated at the end when we have all values. + header.Write([]byte{0x53, 0x4D}) // Magic client // File format version - switch writer.WriteOptions.FormatType { + switch pstWriter.WriteOptions.FormatType { case pst.FormatTypeUnicode: // MUST be greater than 23 if the file is a Unicode PST file. - WriteBuffer([]byte{30}, header) + header.Write([]byte{30}) case pst.FormatTypeANSI: // This value MUST be 14 or 15 if the file is an ANSI PST file. - WriteBuffer([]byte{15}, header) + header.Write([]byte{15}) default: - return 0, pst.ErrFormatTypeUnsupported + panic(pst.ErrFormatTypeUnsupported) } - WriteBuffer([]byte{19}, header) // Client file format version. - WriteBuffer([]byte{1}, header) // Platform Create - WriteBuffer([]byte{1}, header) // Platform Access - WriteBuffer(make([]byte, 4), header) // Reserved1 - WriteBuffer(make([]byte, 4), header) // Reserved2 + header.Write([]byte{19}) // Client file format version. + header.Write([]byte{1}) // Platform Create + header.Write([]byte{1}) // Platform Access + header.Write(make([]byte, 4)) // Reserved1 + header.Write(make([]byte, 4)) // Reserved2 - if writer.WriteOptions.FormatType == pst.FormatTypeUnicode { + if pstWriter.WriteOptions.FormatType == pst.FormatTypeUnicode { // Padding (bidUnused) for Unicode. - WriteBuffer(make([]byte, 8), header) + header.Write(make([]byte, 8)) } - if writer.WriteOptions.FormatType == pst.FormatTypeANSI { + if pstWriter.WriteOptions.FormatType == pst.FormatTypeANSI { // Next BID (bidNextB) for ANSI only. // go-pst does not read this. - WriteBuffer(make([]byte, 4), header) + header.Write(make([]byte, 4)) } // Next page BID (bidNextP) // go-pst does not read this. - if writer.WriteOptions.FormatType == pst.FormatTypeUnicode { - WriteBuffer(make([]byte, 8), header) + if pstWriter.WriteOptions.FormatType == pst.FormatTypeUnicode { + header.Write(make([]byte, 8)) } - if writer.WriteOptions.FormatType == pst.FormatTypeANSI { - WriteBuffer(make([]byte, 4), header) + if pstWriter.WriteOptions.FormatType == pst.FormatTypeANSI { + header.Write(make([]byte, 4)) } // This is a monotonically-increasing value that is modified every time the PST file's HEADER structure is modified. // The function of this value is to provide a unique value, and to ensure that the HEADER CRCs are different after each header modification. - WriteBuffer([]byte{1, 3, 3, 7}, header) + header.Write([]byte{1, 3, 3, 7}) // rgnid // go-pst does not read this. - WriteBuffer(make([]byte, 128), header) + header.Write(make([]byte, 128)) - if writer.WriteOptions.FormatType == pst.FormatTypeUnicode { + if pstWriter.WriteOptions.FormatType == pst.FormatTypeUnicode { // Unused space; MUST be set to zero. Unicode PST file format only. // (qwUnused) - WriteBuffer(make([]byte, 8), header) + header.Write(make([]byte, 8)) } // Header root - if err := writer.WriteHeaderRoot(header); err != nil { + if _, err := pstWriter.WriteHeaderRoot(header, totalSize, rootNodeBTree, rootBlockBTree); err != nil { return 0, eris.Wrap(err, "failed to write header root") } // Unused alignment bytes; MUST be set to zero. // Unicode PST file format only. - if writer.WriteOptions.FormatType == pst.FormatTypeUnicode { - WriteBuffer(make([]byte, 4), header) + if pstWriter.WriteOptions.FormatType == pst.FormatTypeUnicode { + header.Write(make([]byte, 4)) } - WriteBuffer(make([]byte, 128), header) // Deprecated FMap (rgbFM). - WriteBuffer(make([]byte, 128), header) // Deprecated FMap (rgbFP). - for i := 0; i < 128+128; i++ { - // Fill FMap. - copy(header[len(header):len(header)+i], []byte{255}) + // Fill both FMap (deprecated). + header.Write([]byte{255}) } - WriteBuffer([]byte{128}, header) // bSentinel - WriteBuffer([]byte{byte(writer.WriteOptions.EncryptionType)}, header) // Encryption. Indicates how the data within the PST file is encoded. (bCryptMethod) - WriteBuffer(make([]byte, 2), header) // rgbReserved + // bSentinel + header.Write([]byte{128}) + // Encryption. Indicates how the data within the PST file is encoded. (bCryptMethod) + header.Write([]byte{byte(pstWriter.WriteOptions.EncryptionType)}) + // rgbReserved + header.Write(make([]byte, 2)) - if writer.WriteOptions.FormatType == pst.FormatTypeUnicode { + if pstWriter.WriteOptions.FormatType == pst.FormatTypeUnicode { // Next BID. go-pst does not read this value (bidNextB) - WriteBuffer(make([]byte, 8), header) + header.Write(make([]byte, 8)) // The 32-bit CRC value of the 516 bytes of data starting from wMagicClient to bidNextB, inclusive. // Unicode PST file format only. (dwCRCFull) - WriteBuffer([]byte{byte(crc32.ChecksumIEEE(header[4 : 4+516]))}, header) + header.Write([]byte{byte(crc32.ChecksumIEEE(header.Bytes()[4 : 4+516]))}) } - if writer.WriteOptions.FormatType == pst.FormatTypeANSI { - WriteBuffer(make([]byte, 8), header) // ullReserved - WriteBuffer(make([]byte, 4), header) // dwReserved + if pstWriter.WriteOptions.FormatType == pst.FormatTypeANSI { + header.Write(make([]byte, 8)) // ullReserved + header.Write(make([]byte, 4)) // dwReserved } - WriteBuffer(make([]byte, 3), header) // rgbReserved2 - WriteBuffer(make([]byte, 1), header) // bReserved - WriteBuffer(make([]byte, 32), header) // rgbReserved3 + header.Write(make([]byte, 3)) // rgbReserved2 + header.Write(make([]byte, 1)) // bReserved + header.Write(make([]byte, 32)) // rgbReserved3 // Update first partial CRC - copy(header[4:4+4], []byte{byte(crc32.ChecksumIEEE(header[10 : 10+471]))}) + copy(header.Bytes()[4:4+4], []byte{byte(crc32.ChecksumIEEE(header.Bytes()[10 : 10+471]))}) - if len(header) != headerSize { + if header.Len() != headerSize { return 0, eris.New("header size mismatch") } - return writer.Writer.WriteAt(header, 0) + return header.WriteTo(writer) } // WriteHeaderRoot writes the header root. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#root -func (writer *Writer) WriteHeaderRoot(outputBuffer []byte) error { +func (pstWriter *Writer) WriteHeaderRoot(writer io.Writer, totalSize int64, rootNodeBTree pst.Identifier, rootBlockBTree pst.Identifier) (int64, error) { var headerSize int - switch writer.WriteOptions.FormatType { + switch pstWriter.WriteOptions.FormatType { case pst.FormatTypeUnicode: // 4+8+8+8+8+16+16+1+1+2 headerSize = 72 @@ -209,56 +225,54 @@ func (writer *Writer) WriteHeaderRoot(outputBuffer []byte) error { // 4+4+4+4+4+8+8+1+1+2 headerSize = 40 default: - return pst.ErrFormatTypeUnsupported + panic(pst.ErrFormatTypeUnsupported) } - header := make([]byte, headerSize) + header := bytes.NewBuffer(make([]byte, headerSize)) - WriteBuffer(make([]byte, 4), header) // dwReserved + header.Write(make([]byte, 4)) // dwReserved - switch writer.WriteOptions.FormatType { + switch pstWriter.WriteOptions.FormatType { case pst.FormatTypeUnicode: - // The size of the PST file, in bytes. (ibFileEof) TODO - WriteBuffer(make([]byte, 8), header) + // The size of the PST file, in bytes. (ibFileEof) + header.Write(GetUint64(uint64(totalSize))) // An IB structure (section 2.2.2.3) that contains the absolute file offset to the last AMap page of the PST file. - WriteBuffer(make([]byte, 8), header) + header.Write(make([]byte, 8)) // The total free space in all AMaps, combined. - WriteBuffer(make([]byte, 8), header) + header.Write(make([]byte, 8)) // The total free space in all PMaps, combined. Because the PMap is deprecated, this value SHOULD be zero. - WriteBuffer(make([]byte, 8), header) + header.Write(make([]byte, 8)) // A BREF structure (section 2.2.2.4) that references the root page of the Node BTree (NBT). - WriteBuffer(append(binary.LittleEndian.AppendUint64([]byte{}, uint64(writer.RootNodeBTree)), make([]byte, 8)...), header) + header.Write(append(GetUint64(uint64(rootNodeBTree)), make([]byte, 8)...)) // A BREF structure that references the root page of the Block BTree (BBT). - WriteBuffer(append(binary.LittleEndian.AppendUint64([]byte{}, uint64(writer.RootBlockBTree)), make([]byte, 8)...), header) + header.Write(append(GetUint64(uint64(rootBlockBTree)), make([]byte, 8)...)) // Indicates whether the AMaps in this PST file are valid (0 = INVALID_AMAP). - WriteBuffer([]byte{0}, header) + header.Write([]byte{0}) case pst.FormatTypeANSI: // The size of the PST file, in bytes. (ibFileEof) - WriteBuffer(make([]byte, 4), header) + header.Write(GetUint32(uint32(totalSize))) // An IB structure (section 2.2.2.3) that contains the absolute file offset to the last AMap page of the PST file. - WriteBuffer(make([]byte, 4), header) + header.Write(make([]byte, 4)) // The total free space in all AMaps, combined. - WriteBuffer(make([]byte, 4), header) + header.Write(make([]byte, 4)) // The total free space in all PMaps, combined. Because the PMap is deprecated, this value SHOULD be zero. - WriteBuffer(make([]byte, 4), header) + header.Write(make([]byte, 4)) // A BREF structure (section 2.2.2.4) that references the root page of the Node BTree (NBT). - binary.LittleEndian.PutUint64(header[len(header):len(header)+8], uint64(writer.RootNodeBTree)) + header.Write(GetUint64(uint64(rootNodeBTree))) // A BREF structure that references the root page of the Block BTree (BBT). - binary.LittleEndian.PutUint64(header[len(header):len(header)+8], uint64(writer.RootBlockBTree)) + header.Write(GetUint64(uint64(rootBlockBTree))) // Indicates whether the AMaps in this PST file are valid (0 = INVALID_AMAP). - WriteBuffer([]byte{0}, header) + header.Write([]byte{0}) default: - return pst.ErrFormatTypeUnsupported + panic(pst.ErrFormatTypeUnsupported) } - WriteBuffer(make([]byte, 1), header) // bReserved - WriteBuffer(make([]byte, 2), header) // wReserved + header.Write(make([]byte, 1)) // bReserved + header.Write(make([]byte, 2)) // wReserved - if len(header) != headerSize { - return eris.New("header root size mismatch") + if header.Len() != headerSize { + panic("header root size mismatch") } - copy(outputBuffer, header) - - return nil + return header.WriteTo(writer) } diff --git a/pkg/writer/writer_test.go b/pkg/writer/writer_test.go index b2a4793..9532729 100644 --- a/pkg/writer/writer_test.go +++ b/pkg/writer/writer_test.go @@ -32,7 +32,8 @@ func TestWritePSTFile(t *testing.T) { t.Fatalf("Failed to create output file: %+v", err) } - writer := NewWriter(outputFile, NewWriteOptions(pst.FormatTypeUnicode, pst.EncryptionTypePermute)) + writeOptions := NewWriteOptions(pst.FormatTypeUnicode, pst.EncryptionTypePermute) + writer := NewWriter(writeOptions) // Create messages to write. messageProperties := &properties.Message{ @@ -48,9 +49,12 @@ func TestWritePSTFile(t *testing.T) { message := NewMessageWriter(messageProperties, messageAttachments) - writer.AddMessage(message) + folderProperties := NewFolderProperties("root") + rootFolder := NewFolderWriter(folderProperties, []*MessageWriter{message}) - if err := writer.Write(); err != nil { + writer.AddFolder(rootFolder) + + if _, err := writer.WriteTo(outputFile); err != nil { t.Fatalf("Failed to write PST file: %+v", err) } } From bbb39c2798cd655c26a1a4c69e1e513cf86531ca Mon Sep 17 00:00:00 2001 From: Marten Mooij Date: Thu, 31 Aug 2023 13:49:50 +0200 Subject: [PATCH 03/12] Add property type to struct field tags --- cmd/properties/folder.proto | 24 + cmd/properties/generate.go | 25 +- cmd/properties/protobufs/address_book.proto | 90 +- cmd/properties/protobufs/appointment.proto | 236 +-- cmd/properties/protobufs/attachment.proto | 38 +- cmd/properties/protobufs/contact.proto | 214 +-- cmd/properties/protobufs/folder.proto | 24 + cmd/properties/protobufs/journal.proto | 20 +- cmd/properties/protobufs/message.proto | 252 +-- cmd/properties/protobufs/note.proto | 10 +- cmd/properties/protobufs/rss.proto | 14 +- cmd/properties/protobufs/sharing.proto | 110 +- cmd/properties/protobufs/spam.proto | 10 +- cmd/properties/protobufs/task.proto | 78 +- cmd/properties/protobufs/voicemail.proto | 12 +- pkg/properties/address_book.pb.go | 94 +- pkg/properties/address_book.pb_gen.go | 630 +++---- pkg/properties/appointment.pb.go | 240 +-- pkg/properties/appointment.pb_gen.go | 1652 ++++++++--------- pkg/properties/attachment.pb.go | 42 +- pkg/properties/attachment.pb_gen.go | 266 +-- pkg/properties/contact.pb.go | 218 +-- pkg/properties/contact.pb_gen.go | 1498 ++++++++-------- pkg/properties/extracted_entity.pb.go | 4 +- pkg/properties/folder.pb.go | 160 ++ pkg/properties/folder.pb_gen.go | 110 ++ pkg/properties/journal.pb.go | 24 +- pkg/properties/journal.pb_gen.go | 140 +- pkg/properties/message.pb.go | 256 +-- pkg/properties/message.pb_gen.go | 1764 +++++++++---------- pkg/properties/note.pb.go | 14 +- pkg/properties/note.pb_gen.go | 70 +- pkg/properties/rss.pb.go | 18 +- pkg/properties/rss.pb_gen.go | 98 +- pkg/properties/sharing.pb.go | 114 +- pkg/properties/sharing.pb_gen.go | 770 ++++---- pkg/properties/sms.pb.go | 4 +- pkg/properties/spam.pb.go | 14 +- pkg/properties/spam.pb_gen.go | 70 +- pkg/properties/task.pb.go | 82 +- pkg/properties/task.pb_gen.go | 546 +++--- pkg/properties/voicemail.pb.go | 16 +- pkg/properties/voicemail.pb_gen.go | 84 +- pkg/property_reader.go | 2 +- pkg/table_context.go | 3 +- pkg/writer/attachment_writer.go | 2 +- pkg/writer/btree_writer.go | 24 +- pkg/writer/folder_writer.go | 20 +- pkg/writer/local_descriptors_writer.go | 8 +- pkg/writer/message_store_writer.go | 2 - pkg/writer/message_writer.go | 1 - pkg/writer/table_context_writer.go | 132 +- pkg/writer/writer_test.go | 18 +- 53 files changed, 5385 insertions(+), 4982 deletions(-) create mode 100644 cmd/properties/folder.proto create mode 100644 cmd/properties/protobufs/folder.proto create mode 100644 pkg/properties/folder.pb.go create mode 100644 pkg/properties/folder.pb_gen.go diff --git a/cmd/properties/folder.proto b/cmd/properties/folder.proto new file mode 100644 index 0000000..5e3185e --- /dev/null +++ b/cmd/properties/folder.proto @@ -0,0 +1,24 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:generate msgp -tests=false + +syntax = "proto3"; +option go_package = "github.com/mooijtech/go-pst;properties"; + +message Folder { + string name = 1; +} \ No newline at end of file diff --git a/cmd/properties/generate.go b/cmd/properties/generate.go index a8d549c..2db82fe 100644 --- a/cmd/properties/generate.go +++ b/cmd/properties/generate.go @@ -1,19 +1,18 @@ // go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). // -// Copyright (C) 2022 Marten Mooij +// Copyright 2023 Marten Mooij // -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at // -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. +// http://www.apache.org/licenses/LICENSE-2.0 // -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package main @@ -118,7 +117,7 @@ func download() (destinationFilename string, err error) { Timeout: 60 * time.Second, } - response, err := httpClientWithTimeout.Get("https://interoperability.blob.core.windows.net/files/MS-OXPROPS/%5bMS-OXPROPS%5d-210817.docx") + response, err := httpClientWithTimeout.Get("https://msopenspecs.azureedge.net/files/MS-OXPROPS/%5bMS-OXPROPS%5d-210817.docx") if err != nil { return "", errors.WithStack(err) @@ -561,7 +560,7 @@ func createProtoFileField(property xmlProperty, protocolBufferFieldType string, if property.PropertyID != 0 { // TODO - There may be multiple property types. - goTags.WriteString(fmt.Sprintf("// @gotags: msg:\"%d%d,omitempty\"", property.PropertyID, property.PropertyTypes[0])) + goTags.WriteString(fmt.Sprintf("// @gotags: msg:\"%d,omitempty\" type:\"%d,omitempty\"", property.PropertyID, property.PropertyTypes[0])) } // PropertySets are mapped via the PropertyMap in property_context.go // Write. diff --git a/cmd/properties/protobufs/address_book.proto b/cmd/properties/protobufs/address_book.proto index b37eef4..4ad7ebd 100644 --- a/cmd/properties/protobufs/address_book.proto +++ b/cmd/properties/protobufs/address_book.proto @@ -21,93 +21,93 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message AddressBook { // Contains the alias of an Address Book object, which is an alternative name by which the object can be identified. - optional string account = 1; // @gotags: msg:"1484831,omitempty" + optional string account = 1; // @gotags: msg:"14848,omitempty" type:"31,omitempty" // Contains the ID of a container on an NSPI server. - optional int32 address_book_container_id = 3; // @gotags: msg:"655333,omitempty" + optional int32 address_book_container_id = 3; // @gotags: msg:"65533,omitempty" type:"3,omitempty" // Specifies the maximum size, in bytes, of a message that a recipient can receive. - optional int32 address_book_delivery_content_length = 4; // @gotags: msg:"328743,omitempty" + optional int32 address_book_delivery_content_length = 4; // @gotags: msg:"32874,omitempty" type:"3,omitempty" // Contains the printable string version of the display name. - optional string address_book_display_name_printable = 5; // @gotags: msg:"1484731,omitempty" + optional string address_book_display_name_printable = 5; // @gotags: msg:"14847,omitempty" type:"31,omitempty" // Contains a value that indicates how to display an Address Book object in a table or as a recipient on a message. - optional int32 address_book_display_type_extended = 6; // @gotags: msg:"359873,omitempty" + optional int32 address_book_display_type_extended = 6; // @gotags: msg:"35987,omitempty" type:"3,omitempty" // Contains the number of external recipients in the distribution list. - optional int32 address_book_distribution_list_external_member_count = 7; // @gotags: msg:"360673,omitempty" + optional int32 address_book_distribution_list_external_member_count = 7; // @gotags: msg:"36067,omitempty" type:"3,omitempty" // Contains the total number of recipients in the distribution list. - optional int32 address_book_distribution_list_member_count = 8; // @gotags: msg:"360663,omitempty" + optional int32 address_book_distribution_list_member_count = 8; // @gotags: msg:"36066,omitempty" type:"3,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute1 = 12; // @gotags: msg:"3281331,omitempty" + optional string address_book_extension_attribute1 = 12; // @gotags: msg:"32813,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute10 = 13; // @gotags: msg:"3282231,omitempty" + optional string address_book_extension_attribute10 = 13; // @gotags: msg:"32822,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute11 = 14; // @gotags: msg:"3592731,omitempty" + optional string address_book_extension_attribute11 = 14; // @gotags: msg:"35927,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute12 = 15; // @gotags: msg:"3592831,omitempty" + optional string address_book_extension_attribute12 = 15; // @gotags: msg:"35928,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute13 = 16; // @gotags: msg:"3592931,omitempty" + optional string address_book_extension_attribute13 = 16; // @gotags: msg:"35929,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute14 = 17; // @gotags: msg:"3593631,omitempty" + optional string address_book_extension_attribute14 = 17; // @gotags: msg:"35936,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute15 = 18; // @gotags: msg:"3593731,omitempty" + optional string address_book_extension_attribute15 = 18; // @gotags: msg:"35937,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute2 = 19; // @gotags: msg:"3281431,omitempty" + optional string address_book_extension_attribute2 = 19; // @gotags: msg:"32814,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute3 = 20; // @gotags: msg:"3281531,omitempty" + optional string address_book_extension_attribute3 = 20; // @gotags: msg:"32815,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute4 = 21; // @gotags: msg:"3281631,omitempty" + optional string address_book_extension_attribute4 = 21; // @gotags: msg:"32816,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute5 = 22; // @gotags: msg:"3281731,omitempty" + optional string address_book_extension_attribute5 = 22; // @gotags: msg:"32817,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute6 = 23; // @gotags: msg:"3281831,omitempty" + optional string address_book_extension_attribute6 = 23; // @gotags: msg:"32818,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute7 = 24; // @gotags: msg:"3281931,omitempty" + optional string address_book_extension_attribute7 = 24; // @gotags: msg:"32819,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute8 = 25; // @gotags: msg:"3282031,omitempty" + optional string address_book_extension_attribute8 = 25; // @gotags: msg:"32820,omitempty" type:"31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute9 = 26; // @gotags: msg:"3282131,omitempty" + optional string address_book_extension_attribute9 = 26; // @gotags: msg:"32821,omitempty" type:"31,omitempty" // This property is deprecated and is to be ignored. - optional string address_book_folder_pathname = 27; // @gotags: msg:"3277231,omitempty" + optional string address_book_folder_pathname = 27; // @gotags: msg:"32772,omitempty" type:"31,omitempty" // Indicates whether the distribution list represents a departmental group. - optional bool address_book_hierarchical_is_hierarchical_group = 30; // @gotags: msg:"3606111,omitempty" + optional bool address_book_hierarchical_is_hierarchical_group = 30; // @gotags: msg:"36061,omitempty" type:"11,omitempty" // Contains the distinguished name (DN) of either the root Department object or the root departmental group in the department hierarchy for the organization. - optional string address_book_hierarchical_root_department = 32; // @gotags: msg:"3599230,omitempty" + optional string address_book_hierarchical_root_department = 32; // @gotags: msg:"35992,omitempty" type:"30,omitempty" // Contains the DN expressed in the X500 DN format. This property is returned from a name service provider interface (NSPI) server as a PtypEmbeddedTable. Otherwise, the data type is PtypString8. - optional string address_book_home_message_database = 34; // @gotags: msg:"3277430,omitempty" + optional string address_book_home_message_database = 34; // @gotags: msg:"32774,omitempty" type:"30,omitempty" // Contains a Boolean value of TRUE if it is possible to create Address Book objects in that container, and FALSE otherwise. - optional bool address_book_is_master = 35; // @gotags: msg:"6553111,omitempty" + optional bool address_book_is_master = 35; // @gotags: msg:"65531,omitempty" type:"11,omitempty" // Lists all of the distribution lists for which the object is a member. This property is returned from an NSPI server as a PtypEmbeddedTable. Otherwise, the data type is PtypString8. - optional string address_book_is_member_of_distribution_list = 36; // @gotags: msg:"3277630,omitempty" + optional string address_book_is_member_of_distribution_list = 36; // @gotags: msg:"32776,omitempty" type:"30,omitempty" // Contains the DN of the mail user's manager. - optional string address_book_manager_distinguished_name = 39; // @gotags: msg:"3277331,omitempty" + optional string address_book_manager_distinguished_name = 39; // @gotags: msg:"32773,omitempty" type:"31,omitempty" // Indicates whether moderation is enabled for the mail user or distribution list. - optional bool address_book_moderation_enabled = 41; // @gotags: msg:"3602111,omitempty" + optional bool address_book_moderation_enabled = 41; // @gotags: msg:"36021,omitempty" type:"11,omitempty" // Contains the DN of the Address Book object. - optional string address_book_object_distinguished_name = 43; // @gotags: msg:"3282831,omitempty" + optional string address_book_object_distinguished_name = 43; // @gotags: msg:"32828,omitempty" type:"31,omitempty" // Contains the DN of the Organization object of the mail user's organization. - optional string address_book_organizational_unit_root_distinguished_name = 45; // @gotags: msg:"3600831,omitempty" + optional string address_book_organizational_unit_root_distinguished_name = 45; // @gotags: msg:"36008,omitempty" type:"31,omitempty" // Contains the phonetic representation of the PidTagCompanyName property (section 2.639). - optional string address_book_phonetic_company_name = 49; // @gotags: msg:"3598531,omitempty" + optional string address_book_phonetic_company_name = 49; // @gotags: msg:"35985,omitempty" type:"31,omitempty" // Contains the phonetic representation of the PidTagDepartmentName property (section 2.672). - optional string address_book_phonetic_department_name = 50; // @gotags: msg:"3598431,omitempty" + optional string address_book_phonetic_department_name = 50; // @gotags: msg:"35984,omitempty" type:"31,omitempty" // Contains the phonetic representation of the PidTagDisplayName property (section 2.676). - optional string address_book_phonetic_display_name = 51; // @gotags: msg:"3598631,omitempty" + optional string address_book_phonetic_display_name = 51; // @gotags: msg:"35986,omitempty" type:"31,omitempty" // Contains the phonetic representation of the PidTagGivenName property (section 2.714). - optional string address_book_phonetic_given_name = 52; // @gotags: msg:"3598231,omitempty" + optional string address_book_phonetic_given_name = 52; // @gotags: msg:"35982,omitempty" type:"31,omitempty" // Contains the phonetic representation of the PidTagSurname property (section 2.1036). - optional string address_book_phonetic_surname = 53; // @gotags: msg:"3598331,omitempty" + optional string address_book_phonetic_surname = 53; // @gotags: msg:"35983,omitempty" type:"31,omitempty" // Contains the maximum occupancy of the room. - optional int32 address_book_room_capacity = 57; // @gotags: msg:"20553,omitempty" + optional int32 address_book_room_capacity = 57; // @gotags: msg:"2055,omitempty" type:"3,omitempty" // Contains a description of the Resource object. - optional string address_book_room_description = 59; // @gotags: msg:"205731,omitempty" + optional string address_book_room_description = 59; // @gotags: msg:"2057,omitempty" type:"31,omitempty" // Contains a signed integer that specifies the seniority order of Address Book objects that represent members of a department and are referenced by a Department object or departmental group, with larger values specifying members that are more senior. - optional int32 address_book_seniority_index = 61; // @gotags: msg:"360003,omitempty" + optional int32 address_book_seniority_index = 61; // @gotags: msg:"36000,omitempty" type:"3,omitempty" // Contains the foreign system email address of an Address Book object. - optional string address_book_target_address = 62; // @gotags: msg:"3278531,omitempty" + optional string address_book_target_address = 62; // @gotags: msg:"32785,omitempty" type:"31,omitempty" // Contains a filter value used in ambiguous name resolution. - optional string anr = 65; // @gotags: msg:"1383631,omitempty" + optional string anr = 65; // @gotags: msg:"13836,omitempty" type:"31,omitempty" // Contains a bitmask of flags that describe capabilities of an address book container. - optional int32 container_flags = 66; // @gotags: msg:"138243,omitempty" + optional int32 container_flags = 66; // @gotags: msg:"13824,omitempty" type:"3,omitempty" // Contains an integer value that indicates how to display an Address Book object in a table or as an addressee on a message. - optional int32 display_type = 67; // @gotags: msg:"145923,omitempty" + optional int32 display_type = 67; // @gotags: msg:"14592,omitempty" type:"3,omitempty" // Contains an integer value that indicates how to display an Address Book object in a table or as a recipient on a message. - optional int32 display_type_ex = 68; // @gotags: msg:"145973,omitempty" + optional int32 display_type_ex = 68; // @gotags: msg:"14597,omitempty" type:"3,omitempty" } diff --git a/cmd/properties/protobufs/appointment.proto b/cmd/properties/protobufs/appointment.proto index 85c5ebd..52b89c1 100644 --- a/cmd/properties/protobufs/appointment.proto +++ b/cmd/properties/protobufs/appointment.proto @@ -21,243 +21,243 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Appointment { // Specifies a list of all the attendees except for the organizer, including resources and unsendable attendees. - optional string all_attendees_string = 1; // @gotags: msg:"26429631,omitempty" + optional string all_attendees_string = 1; // @gotags: msg:"264296,omitempty" type:"31,omitempty" // This property is set to TRUE. - optional bool allow_external_check = 2; // @gotags: msg:"26432611,omitempty" + optional bool allow_external_check = 2; // @gotags: msg:"264326,omitempty" type:"11,omitempty" // Specifies a bit field that describes the auxiliary state of the object. - optional int32 appointment_auxiliary_flags = 3; // @gotags: msg:"2641993,omitempty" + optional int32 appointment_auxiliary_flags = 3; // @gotags: msg:"264199,omitempty" type:"3,omitempty" // Specifies the color to be used when displaying the Calendar object. - optional int32 appointment_color = 4; // @gotags: msg:"2642283,omitempty" + optional int32 appointment_color = 4; // @gotags: msg:"264228,omitempty" type:"3,omitempty" // Indicates whether a Meeting Response object is a counter proposal. - optional bool appointment_counter_proposal = 5; // @gotags: msg:"26435911,omitempty" + optional bool appointment_counter_proposal = 5; // @gotags: msg:"264359,omitempty" type:"11,omitempty" // Specifies the length of the event, in minutes. - optional int32 appointment_duration = 6; // @gotags: msg:"2642273,omitempty" + optional int32 appointment_duration = 6; // @gotags: msg:"264227,omitempty" type:"3,omitempty" // Indicates the date that the appointment ends. - optional int64 appointment_end_date = 7; // @gotags: msg:"26422564,omitempty" + optional int64 appointment_end_date = 7; // @gotags: msg:"264225,omitempty" type:"64,omitempty" // Indicates the time that the appointment ends. - optional int64 appointment_end_time = 8; // @gotags: msg:"26422464,omitempty" + optional int64 appointment_end_time = 8; // @gotags: msg:"264224,omitempty" type:"64,omitempty" // Specifies the end date and time for the event. - optional int64 appointment_end_whole = 9; // @gotags: msg:"26420664,omitempty" + optional int64 appointment_end_whole = 9; // @gotags: msg:"264206,omitempty" type:"64,omitempty" // Indicates to the organizer the last sequence number that was sent to any attendee. - optional int32 appointment_last_sequence = 10; // @gotags: msg:"2641953,omitempty" + optional int32 appointment_last_sequence = 10; // @gotags: msg:"264195,omitempty" type:"3,omitempty" // Indicates the message class of the Meeting object to be generated from the Meeting Request object. - optional string appointment_message_class = 11; // @gotags: msg:"6831,omitempty" + optional string appointment_message_class = 11; // @gotags: msg:"68,omitempty" type:"31,omitempty" // Indicates whether attendees are not allowed to propose a new date and/or time for the meeting. - optional bool appointment_not_allow_propose = 12; // @gotags: msg:"26436211,omitempty" + optional bool appointment_not_allow_propose = 12; // @gotags: msg:"264362,omitempty" type:"11,omitempty" // Specifies the number of attendees who have sent counter proposals that have not been accepted or rejected by the organizer. - optional int32 appointment_proposal_number = 13; // @gotags: msg:"2643613,omitempty" + optional int32 appointment_proposal_number = 13; // @gotags: msg:"264361,omitempty" type:"3,omitempty" // Indicates the proposed value for the PidLidAppointmentDuration property (section 2.11) for a counter proposal. - optional int32 appointment_proposed_duration = 14; // @gotags: msg:"2643583,omitempty" + optional int32 appointment_proposed_duration = 14; // @gotags: msg:"264358,omitempty" type:"3,omitempty" // Specifies the proposed value for the PidLidAppointmentEndWhole property (section 2.14) for a counter proposal. - optional int64 appointment_proposed_end_whole = 15; // @gotags: msg:"26435364,omitempty" + optional int64 appointment_proposed_end_whole = 15; // @gotags: msg:"264353,omitempty" type:"64,omitempty" // Specifies the proposed value for the PidLidAppointmentStartWhole property (section 2.29) for a counter proposal. - optional int64 appointment_proposed_start_whole = 16; // @gotags: msg:"26435264,omitempty" + optional int64 appointment_proposed_start_whole = 16; // @gotags: msg:"264352,omitempty" type:"64,omitempty" // Specifies the user who last replied to the meeting request or meeting update. - optional string appointment_reply_name = 18; // @gotags: msg:"26428831,omitempty" + optional string appointment_reply_name = 18; // @gotags: msg:"264288,omitempty" type:"31,omitempty" // Specifies the date and time at which the attendee responded to a received meeting request or Meeting Update object. - optional int64 appointment_reply_time = 19; // @gotags: msg:"26425664,omitempty" + optional int64 appointment_reply_time = 19; // @gotags: msg:"264256,omitempty" type:"64,omitempty" // Specifies the sequence number of a Meeting object. - optional int32 appointment_sequence = 20; // @gotags: msg:"2641933,omitempty" + optional int32 appointment_sequence = 20; // @gotags: msg:"264193,omitempty" type:"3,omitempty" // Indicates the date and time at which the PidLidAppointmentSequence property (section 2.25) was last modified. - optional int64 appointment_sequence_time = 21; // @gotags: msg:"26419464,omitempty" + optional int64 appointment_sequence_time = 21; // @gotags: msg:"264194,omitempty" type:"64,omitempty" // Identifies the date that the appointment starts. - optional int64 appointment_start_date = 22; // @gotags: msg:"26422664,omitempty" + optional int64 appointment_start_date = 22; // @gotags: msg:"264226,omitempty" type:"64,omitempty" // Identifies the time that the appointment starts. - optional int64 appointment_start_time = 23; // @gotags: msg:"26420764,omitempty" + optional int64 appointment_start_time = 23; // @gotags: msg:"264207,omitempty" type:"64,omitempty" // Specifies the start date and time of the appointment. - optional int64 appointment_start_whole = 24; // @gotags: msg:"26420564,omitempty" + optional int64 appointment_start_whole = 24; // @gotags: msg:"264205,omitempty" type:"64,omitempty" // Specifies a bit field that describes the state of the object. - optional int32 appointment_state_flags = 25; // @gotags: msg:"2642313,omitempty" + optional int32 appointment_state_flags = 25; // @gotags: msg:"264231,omitempty" type:"3,omitempty" // Specifies whether the event is an all-day event. - optional bool appointment_sub_type = 26; // @gotags: msg:"26422911,omitempty" + optional bool appointment_sub_type = 26; // @gotags: msg:"264229,omitempty" type:"11,omitempty" // Indicates the time at which the appointment was last updated. - optional int64 appointment_update_time = 31; // @gotags: msg:"26426264,omitempty" + optional int64 appointment_update_time = 31; // @gotags: msg:"264262,omitempty" type:"64,omitempty" // Specifies the date and time at which the meeting-related object was sent. - optional int64 attendee_critical_change = 32; // @gotags: msg:"164,omitempty" + optional int64 attendee_critical_change = 32; // @gotags: msg:"1,omitempty" type:"64,omitempty" // Indicates whether the value of the PidLidLocation property (section 2.159) is set to the PidTagDisplayName property (section 2.676). - optional bool auto_fill_location = 33; // @gotags: msg:"26429811,omitempty" + optional bool auto_fill_location = 33; // @gotags: msg:"264298,omitempty" type:"11,omitempty" // Specifies whether to automatically start the conferencing application when a reminder for the start of a meeting is executed. - optional bool auto_start_check = 34; // @gotags: msg:"26432411,omitempty" + optional bool auto_start_check = 34; // @gotags: msg:"264324,omitempty" type:"11,omitempty" // Specifies the availability of a user for the event described by the object. - optional int32 busy_status = 35; // @gotags: msg:"2641973,omitempty" + optional int32 busy_status = 35; // @gotags: msg:"264197,omitempty" type:"3,omitempty" // Contains the value of the CalendarType field from the PidLidAppointmentRecur property (section 2.22). - optional int32 calendar_type = 36; // @gotags: msg:"443,omitempty" + optional int32 calendar_type = 36; // @gotags: msg:"44,omitempty" type:"3,omitempty" // Contains a list of all the sendable attendees who are also optional attendees. - optional string cc_attendees_string = 37; // @gotags: msg:"26430031,omitempty" + optional string cc_attendees_string = 37; // @gotags: msg:"264300,omitempty" type:"31,omitempty" // Specifies a bit field that indicates how the Meeting object has changed. - optional int32 change_highlight = 38; // @gotags: msg:"2641963,omitempty" + optional int32 change_highlight = 38; // @gotags: msg:"264196,omitempty" type:"3,omitempty" // Indicates what actions the user has taken on this Meeting object. - optional int32 client_intent = 40; // @gotags: msg:"373,omitempty" + optional int32 client_intent = 40; // @gotags: msg:"37,omitempty" type:"3,omitempty" // Specifies the end date and time of the event in UTC. - optional int64 clip_end = 41; // @gotags: msg:"26429464,omitempty" + optional int64 clip_end = 41; // @gotags: msg:"264294,omitempty" type:"64,omitempty" // Specifies the start date and time of the event in UTC. - optional int64 clip_start = 42; // @gotags: msg:"26429364,omitempty" + optional int64 clip_start = 42; // @gotags: msg:"264293,omitempty" type:"64,omitempty" // Specifies the document to be launched when the user joins the meeting. - optional string collaborate_doc = 43; // @gotags: msg:"26432731,omitempty" + optional string collaborate_doc = 43; // @gotags: msg:"264327,omitempty" type:"31,omitempty" // When set to TRUE (0x00000001), the PidLidConferencingCheck property indicates that the associated meeting is one of the following types: - optional bool conferencing_check = 44; // @gotags: msg:"26432011,omitempty" + optional bool conferencing_check = 44; // @gotags: msg:"264320,omitempty" type:"11,omitempty" // Specifies the type of the meeting. - optional int32 conferencing_type = 45; // @gotags: msg:"2643213,omitempty" + optional int32 conferencing_type = 45; // @gotags: msg:"264321,omitempty" type:"3,omitempty" // Identifies the day interval for the recurrence pattern. - optional int32 day_interval = 46; // @gotags: msg:"332,omitempty" + optional int32 day_interval = 46; // @gotags: msg:"33,omitempty" type:"2,omitempty" // Identifies the day of the month for the appointment or meeting. - optional int32 day_of_month = 47; // @gotags: msg:"327683,omitempty" + optional int32 day_of_month = 47; // @gotags: msg:"32768,omitempty" type:"3,omitempty" // Indicates whether a delegate responded to the meeting request. - optional bool delegate_mail = 48; // @gotags: msg:"911,omitempty" + optional bool delegate_mail = 48; // @gotags: msg:"9,omitempty" type:"11,omitempty" // Specifies the directory server to be used. - optional string directory = 49; // @gotags: msg:"26432231,omitempty" + optional string directory = 49; // @gotags: msg:"264322,omitempty" type:"31,omitempty" // Identifies the end date of the recurrence range. - optional int32 end_recurrence_date = 50; // @gotags: msg:"153,omitempty" + optional int32 end_recurrence_date = 50; // @gotags: msg:"15,omitempty" type:"3,omitempty" // Identifies the end time of the recurrence range. - optional int32 end_recurrence_time = 51; // @gotags: msg:"323,omitempty" + optional int32 end_recurrence_time = 51; // @gotags: msg:"32,omitempty" type:"3,omitempty" // Specifies the date and time, in UTC, within a recurrence pattern that an exception will replace. - optional int64 exception_replace_time = 52; // @gotags: msg:"26426464,omitempty" + optional int64 exception_replace_time = 52; // @gotags: msg:"264264,omitempty" type:"64,omitempty" // Indicates that the object is a Recurring Calendar object with one or more exceptions, and that at least one of the Exception Embedded Message objects has at least one RecipientRow structure, as described in [MS-OXCDATA] section 2.8.3. - optional bool f_exceptional_attendees = 53; // @gotags: msg:"26426711,omitempty" + optional bool f_exceptional_attendees = 53; // @gotags: msg:"264267,omitempty" type:"11,omitempty" // Indicates that the Exception Embedded Message object has a body that differs from the Recurring Calendar object. - optional bool f_exceptional_body = 54; // @gotags: msg:"26419811,omitempty" + optional bool f_exceptional_body = 54; // @gotags: msg:"264198,omitempty" type:"11,omitempty" // Indicates whether invitations have been sent for the meeting that this Meeting object represents. - optional bool f_invited = 55; // @gotags: msg:"26426511,omitempty" + optional bool f_invited = 55; // @gotags: msg:"264265,omitempty" type:"11,omitempty" // Indicates whether the Meeting Request object represents an exception to a recurring series, and whether it was forwarded (even when forwarded by the organizer) rather than being an invitation sent by the organizer. - optional bool forward_instance = 56; // @gotags: msg:"26420211,omitempty" + optional bool forward_instance = 56; // @gotags: msg:"264202,omitempty" type:"11,omitempty" // Indicates whether the Calendar folder from which the meeting was opened is another user's calendar. - optional bool f_others_appointment = 58; // @gotags: msg:"26427111,omitempty" + optional bool f_others_appointment = 58; // @gotags: msg:"264271,omitempty" type:"11,omitempty" // Identifies the day of the week for the appointment or meeting. - optional int32 i_calendar_day_of_week_mask = 60; // @gotags: msg:"327693,omitempty" + optional int32 i_calendar_day_of_week_mask = 60; // @gotags: msg:"32769,omitempty" type:"3,omitempty" // Contains the value of the PidLidBusyStatus property (section 2.47) on the Meeting object in the organizer's calendar at the time that the Meeting Request object or Meeting Update object was sent. - optional int32 intended_busy_status = 62; // @gotags: msg:"2642603,omitempty" + optional int32 intended_busy_status = 62; // @gotags: msg:"264260,omitempty" type:"3,omitempty" // Indicates whether the object represents an exception (including an orphan instance). - optional bool is_exception = 63; // @gotags: msg:"1011,omitempty" + optional bool is_exception = 63; // @gotags: msg:"10,omitempty" type:"11,omitempty" // Specifies whether the object is associated with a recurring series. - optional bool is_recurring = 64; // @gotags: msg:"511,omitempty" + optional bool is_recurring = 64; // @gotags: msg:"5,omitempty" type:"11,omitempty" // Indicates whether the user did not include any text in the body of the Meeting Response object. - optional bool is_silent = 65; // @gotags: msg:"411,omitempty" + optional bool is_silent = 65; // @gotags: msg:"4,omitempty" type:"11,omitempty" // Specifies the location of the event. - optional string location = 66; // @gotags: msg:"26420031,omitempty" + optional string location = 66; // @gotags: msg:"264200,omitempty" type:"31,omitempty" // Indicates the type of Meeting Request object or Meeting Update object. - optional int32 meeting_type = 67; // @gotags: msg:"703,omitempty" + optional int32 meeting_type = 67; // @gotags: msg:"70,omitempty" type:"3,omitempty" // Specifies the URL of the Meeting Workspace that is associated with a Calendar object. - optional string meeting_workspace_url = 68; // @gotags: msg:"26420131,omitempty" + optional string meeting_workspace_url = 68; // @gotags: msg:"264201,omitempty" type:"31,omitempty" // Indicates the monthly interval of the appointment or meeting. - optional int32 month_interval = 69; // @gotags: msg:"352,omitempty" + optional int32 month_interval = 69; // @gotags: msg:"35,omitempty" type:"2,omitempty" // Indicates the month of the year in which the appointment or meeting occurs. - optional int32 month_of_year = 70; // @gotags: msg:"327743,omitempty" + optional int32 month_of_year = 70; // @gotags: msg:"32774,omitempty" type:"3,omitempty" // Indicates the calculated month of the year in which the appointment or meeting occurs. - optional int32 month_of_year_mask = 71; // @gotags: msg:"393,omitempty" + optional int32 month_of_year_mask = 71; // @gotags: msg:"39,omitempty" type:"3,omitempty" // Specifies the URL to be launched when the user joins the meeting. - optional string net_show_url = 72; // @gotags: msg:"26432831,omitempty" + optional string net_show_url = 72; // @gotags: msg:"264328,omitempty" type:"31,omitempty" // Indicates whether the recurrence pattern has an end date. - optional bool no_end_date_flag = 73; // @gotags: msg:"3277911,omitempty" + optional bool no_end_date_flag = 73; // @gotags: msg:"32779,omitempty" type:"11,omitempty" // Contains a list of all of the unsendable attendees who are also resources. - optional string non_sendable_bcc = 74; // @gotags: msg:"26736831,omitempty" + optional string non_sendable_bcc = 74; // @gotags: msg:"267368,omitempty" type:"31,omitempty" // Contains a list of all of the unsendable attendees who are also optional attendees. - optional string non_sendable_cc = 75; // @gotags: msg:"26736731,omitempty" + optional string non_sendable_cc = 75; // @gotags: msg:"267367,omitempty" type:"31,omitempty" // Contains a list of all of the unsendable attendees who are also required attendees. - optional string non_sendable_to = 76; // @gotags: msg:"26736631,omitempty" + optional string non_sendable_to = 76; // @gotags: msg:"267366,omitempty" type:"31,omitempty" // Indicates the number of occurrences in the recurring appointment or meeting. - optional int32 occurrences = 77; // @gotags: msg:"327733,omitempty" + optional int32 occurrences = 77; // @gotags: msg:"32773,omitempty" type:"3,omitempty" // Indicates the original value of the PidLidLocation property (section 2.159) before a meeting update. - optional string old_location = 78; // @gotags: msg:"7231,omitempty" + optional string old_location = 78; // @gotags: msg:"72,omitempty" type:"31,omitempty" // Indicates the recurrence pattern for the appointment or meeting. - optional int32 old_recurrence_type = 79; // @gotags: msg:"402,omitempty" + optional int32 old_recurrence_type = 79; // @gotags: msg:"40,omitempty" type:"2,omitempty" // Indicates the original value of the PidLidAppointmentEndWhole property (section 2.14) before a meeting update. - optional int64 old_when_end_whole = 80; // @gotags: msg:"7464,omitempty" + optional int64 old_when_end_whole = 80; // @gotags: msg:"74,omitempty" type:"64,omitempty" // Indicates the original value of the PidLidAppointmentStartWhole property (section 2.29) before a meeting update. - optional int64 old_when_start_whole = 81; // @gotags: msg:"7364,omitempty" + optional int64 old_when_start_whole = 81; // @gotags: msg:"73,omitempty" type:"64,omitempty" // Specifies the password for a meeting on which the PidLidConferencingType property (section 2.66) has the value 0x00000002. - optional string online_password = 82; // @gotags: msg:"26432931,omitempty" + optional string online_password = 82; // @gotags: msg:"264329,omitempty" type:"31,omitempty" // Specifies optional attendees. - optional string optional_attendees = 83; // @gotags: msg:"731,omitempty" + optional string optional_attendees = 83; // @gotags: msg:"7,omitempty" type:"31,omitempty" // Specifies the email address of the organizer. - optional string organizer_alias = 84; // @gotags: msg:"26432331,omitempty" + optional string organizer_alias = 84; // @gotags: msg:"264323,omitempty" type:"31,omitempty" // Specifies the date and time at which a Meeting Request object was sent by the organizer. - optional int64 owner_critical_change = 86; // @gotags: msg:"4264,omitempty" + optional int64 owner_critical_change = 86; // @gotags: msg:"42,omitempty" type:"64,omitempty" // Indicates the name of the owner of the mailbox. - optional string owner_name = 87; // @gotags: msg:"26427031,omitempty" + optional string owner_name = 87; // @gotags: msg:"264270,omitempty" type:"31,omitempty" // Identifies the length, in minutes, of the appointment or meeting. - optional int32 recurrence_duration = 88; // @gotags: msg:"327813,omitempty" + optional int32 recurrence_duration = 88; // @gotags: msg:"32781,omitempty" type:"3,omitempty" // Specifies a description of the recurrence pattern of the Calendar object. - optional string recurrence_pattern = 89; // @gotags: msg:"26429031,omitempty" + optional string recurrence_pattern = 89; // @gotags: msg:"264290,omitempty" type:"31,omitempty" // Specifies the recurrence type of the recurring series. - optional int32 recurrence_type = 90; // @gotags: msg:"2642893,omitempty" + optional int32 recurrence_type = 90; // @gotags: msg:"264289,omitempty" type:"3,omitempty" // Specifies whether the object represents a recurring series. - optional bool recurring = 91; // @gotags: msg:"26425911,omitempty" + optional bool recurring = 91; // @gotags: msg:"264259,omitempty" type:"11,omitempty" // Specifies the interval, in minutes, between the time at which the reminder first becomes overdue and the start time of the Calendar object. - optional int32 reminder_delta = 92; // @gotags: msg:"2672653,omitempty" + optional int32 reminder_delta = 92; // @gotags: msg:"267265,omitempty" type:"3,omitempty" // Specifies the filename of the sound that a client is to play when the reminder for that object becomes overdue. - optional string reminder_file_parameter = 93; // @gotags: msg:"26731131,omitempty" + optional string reminder_file_parameter = 93; // @gotags: msg:"267311,omitempty" type:"31,omitempty" // Specifies whether the client is to respect the current values of the PidLidReminderPlaySound property (section 2.221) and the PidLidReminderFileParameter property (section 2.219), or use the default values for those properties. - optional bool reminder_override = 94; // @gotags: msg:"26730811,omitempty" + optional bool reminder_override = 94; // @gotags: msg:"267308,omitempty" type:"11,omitempty" // Specifies whether the client is to play a sound when the reminder becomes overdue. - optional bool reminder_play_sound = 95; // @gotags: msg:"26731011,omitempty" + optional bool reminder_play_sound = 95; // @gotags: msg:"267310,omitempty" type:"11,omitempty" // Specifies whether a reminder is set on the object. - optional bool reminder_set = 96; // @gotags: msg:"26726711,omitempty" + optional bool reminder_set = 96; // @gotags: msg:"267267,omitempty" type:"11,omitempty" // Specifies the point in time when a reminder transitions from pending to overdue. - optional int64 reminder_signal_time = 97; // @gotags: msg:"26745664,omitempty" + optional int64 reminder_signal_time = 97; // @gotags: msg:"267456,omitempty" type:"64,omitempty" // Specifies the initial signal time for objects that are not Calendar objects. - optional int64 reminder_time = 98; // @gotags: msg:"26726664,omitempty" + optional int64 reminder_time = 98; // @gotags: msg:"267266,omitempty" type:"64,omitempty" // Indicates the time and date of the reminder for the appointment or meeting. - optional int64 reminder_time_date = 99; // @gotags: msg:"26726964,omitempty" + optional int64 reminder_time_date = 99; // @gotags: msg:"267269,omitempty" type:"64,omitempty" // Indicates the time of the reminder for the appointment or meeting. - optional int64 reminder_time_time = 100; // @gotags: msg:"26726864,omitempty" + optional int64 reminder_time_time = 100; // @gotags: msg:"267268,omitempty" type:"64,omitempty" // This property is not set and, if set, is ignored. - optional int32 reminder_type = 101; // @gotags: msg:"2673093,omitempty" + optional int32 reminder_type = 101; // @gotags: msg:"267309,omitempty" type:"3,omitempty" // Identifies required attendees for the appointment or meeting. - optional string required_attendees = 102; // @gotags: msg:"631,omitempty" + optional string required_attendees = 102; // @gotags: msg:"6,omitempty" type:"31,omitempty" // Identifies resource attendees for the appointment or meeting. - optional string resource_attendees = 103; // @gotags: msg:"831,omitempty" + optional string resource_attendees = 103; // @gotags: msg:"8,omitempty" type:"31,omitempty" // Specifies the response status of an attendee. - optional int32 response_status = 104; // @gotags: msg:"2642323,omitempty" + optional int32 response_status = 104; // @gotags: msg:"264232,omitempty" type:"3,omitempty" // Indicates whether the Meeting Request object or Meeting Update object has been processed. - optional bool server_processed = 105; // @gotags: msg:"26766011,omitempty" + optional bool server_processed = 105; // @gotags: msg:"267660,omitempty" type:"11,omitempty" // Indicates what processing actions have been taken on this Meeting Request object or Meeting Update object. - optional int32 server_processing_actions = 106; // @gotags: msg:"2676613,omitempty" + optional int32 server_processing_actions = 106; // @gotags: msg:"267661,omitempty" type:"3,omitempty" // Indicates that the original MIME message contained a single MIME part. - optional bool single_bodyi_cal = 107; // @gotags: msg:"26442711,omitempty" + optional bool single_bodyi_cal = 107; // @gotags: msg:"264427,omitempty" type:"11,omitempty" // Identifies the start date of the recurrence pattern. - optional int32 start_recurrence_date = 108; // @gotags: msg:"133,omitempty" + optional int32 start_recurrence_date = 108; // @gotags: msg:"13,omitempty" type:"3,omitempty" // Identifies the start time of the recurrence pattern. - optional int32 start_recurrence_time = 109; // @gotags: msg:"143,omitempty" + optional int32 start_recurrence_time = 109; // @gotags: msg:"14,omitempty" type:"3,omitempty" // Specifies information about the time zone of a recurring meeting. - optional int32 time_zone = 110; // @gotags: msg:"123,omitempty" + optional int32 time_zone = 110; // @gotags: msg:"12,omitempty" type:"3,omitempty" // Specifies a human-readable description of the time zone that is represented by the data in the PidLidTimeZoneStruct property (section 2.342). - optional string time_zone_description = 111; // @gotags: msg:"26429231,omitempty" + optional string time_zone_description = 111; // @gotags: msg:"264292,omitempty" type:"31,omitempty" // Contains a list of all of the sendable attendees who are also required attendees. - optional string to_attendees_string = 113; // @gotags: msg:"26429931,omitempty" + optional string to_attendees_string = 113; // @gotags: msg:"264299,omitempty" type:"31,omitempty" // Identifies the number of weeks that occur between each meeting. - optional int32 week_interval = 114; // @gotags: msg:"342,omitempty" + optional int32 week_interval = 114; // @gotags: msg:"34,omitempty" type:"2,omitempty" // Contains the value of the PidLidLocation property (section 2.159) from the associated Meeting object. - optional string where = 115; // @gotags: msg:"231,omitempty" + optional string where = 115; // @gotags: msg:"2,omitempty" type:"31,omitempty" // Indicates the yearly interval of the appointment or meeting. - optional int32 year_interval = 116; // @gotags: msg:"362,omitempty" + optional int32 year_interval = 116; // @gotags: msg:"36,omitempty" type:"2,omitempty" // optional string location_url = 117; // Specifies whether to allow the meeting to be forwarded. optional bool meeting_do_not_forward = 118; // Specifies the end time, in UTC, of the publishing range. - optional int32 free_busy_publish_end = 119; // @gotags: msg:"266963,omitempty" + optional int32 free_busy_publish_end = 119; // @gotags: msg:"26696,omitempty" type:"3,omitempty" // Specifies the start time, in UTC, of the publishing range. - optional int32 free_busy_publish_start = 120; // @gotags: msg:"266953,omitempty" + optional int32 free_busy_publish_start = 120; // @gotags: msg:"26695,omitempty" type:"3,omitempty" // Specifies the time, in UTC, that the data was published. - optional int64 free_busy_range_timestamp = 121; // @gotags: msg:"2672864,omitempty" + optional int64 free_busy_range_timestamp = 121; // @gotags: msg:"26728,omitempty" type:"64,omitempty" // Contains the date and time, in UTC, when an appointment or meeting ends. - optional int64 i_calendar_end_time = 122; // @gotags: msg:"429264,omitempty" + optional int64 i_calendar_end_time = 122; // @gotags: msg:"4292,omitempty" type:"64,omitempty" // Contains the date and time, in UTC, for the activation of the next reminder. - optional int64 i_calendar_reminder_next_time = 123; // @gotags: msg:"429864,omitempty" + optional int64 i_calendar_reminder_next_time = 123; // @gotags: msg:"4298,omitempty" type:"64,omitempty" // Indicates whether a client has already processed a received task communication. - optional bool processed = 124; // @gotags: msg:"3200111,omitempty" + optional bool processed = 124; // @gotags: msg:"32001,omitempty" type:"11,omitempty" // Indicates whether a client or server is to automatically respond to all meeting requests for the attendee or resource. - optional bool schedule_info_auto_accept_appointments = 126; // @gotags: msg:"2673311,omitempty" + optional bool schedule_info_auto_accept_appointments = 126; // @gotags: msg:"26733,omitempty" type:"11,omitempty" // Indicates whether the delegator wants to receive copies of the meeting-related objects that are sent to the delegate. - optional bool schedule_info_delegator_wants_copy = 130; // @gotags: msg:"2669011,omitempty" + optional bool schedule_info_delegator_wants_copy = 130; // @gotags: msg:"26690,omitempty" type:"11,omitempty" // Indicates whether the delegator wants to receive informational updates. - optional bool schedule_info_delegator_wants_info = 131; // @gotags: msg:"2669911,omitempty" + optional bool schedule_info_delegator_wants_info = 131; // @gotags: msg:"26699,omitempty" type:"11,omitempty" // Indicates whether a client or server, when automatically responding to meeting requests, is to decline Meeting Request objects that overlap with previously scheduled events. - optional bool schedule_info_disallow_overlapping_appts = 132; // @gotags: msg:"2673511,omitempty" + optional bool schedule_info_disallow_overlapping_appts = 132; // @gotags: msg:"26735,omitempty" type:"11,omitempty" // Indicates whether a client or server, when automatically responding to meeting requests, is to decline Meeting Request objects that represent a recurring series. - optional bool schedule_info_disallow_recurring_appts = 133; // @gotags: msg:"2673411,omitempty" + optional bool schedule_info_disallow_recurring_appts = 133; // @gotags: msg:"26734,omitempty" type:"11,omitempty" // Contains a value set to TRUE by the client, regardless of user input. - optional bool schedule_info_dont_mail_delegates = 134; // @gotags: msg:"2669111,omitempty" + optional bool schedule_info_dont_mail_delegates = 134; // @gotags: msg:"26691,omitempty" type:"11,omitempty" // Set to 0x00000000 when sending and is ignored on receipt. - optional int32 schedule_info_resource_type = 144; // @gotags: msg:"266893,omitempty" + optional int32 schedule_info_resource_type = 144; // @gotags: msg:"26689,omitempty" type:"3,omitempty" } diff --git a/cmd/properties/protobufs/attachment.proto b/cmd/properties/protobufs/attachment.proto index edcec0b..da85509 100644 --- a/cmd/properties/protobufs/attachment.proto +++ b/cmd/properties/protobufs/attachment.proto @@ -29,41 +29,41 @@ message Attachment { // Contains the provider type data associated with a web reference attachment. optional string attachment_provider_type = 5; // Contains the base of a relative URI. - optional string attach_content_base = 7; // @gotags: msg:"1409731,omitempty" + optional string attach_content_base = 7; // @gotags: msg:"14097,omitempty" type:"31,omitempty" // Contains a content identifier unique to the Message object that matches a corresponding "cid:" URI schema reference in the HTML body of the Message object. - optional string attach_content_id = 8; // @gotags: msg:"1409831,omitempty" + optional string attach_content_id = 8; // @gotags: msg:"14098,omitempty" type:"31,omitempty" // Contains a relative or full URI that matches a corresponding reference in the HTML body of a Message object. - optional string attach_content_location = 9; // @gotags: msg:"1409931,omitempty" + optional string attach_content_location = 9; // @gotags: msg:"14099,omitempty" type:"31,omitempty" // Contains a file name extension that indicates the document type of an attachment. - optional string attach_extension = 13; // @gotags: msg:"1408331,omitempty" + optional string attach_extension = 13; // @gotags: msg:"14083,omitempty" type:"31,omitempty" // Contains the 8.3 name of the PidTagAttachLongFilename property (section 2.595). - optional string attach_filename = 14; // @gotags: msg:"1408431,omitempty" + optional string attach_filename = 14; // @gotags: msg:"14084,omitempty" type:"31,omitempty" // Indicates which body formats might reference this attachment when rendering data. - optional int32 attach_flags = 15; // @gotags: msg:"141003,omitempty" + optional int32 attach_flags = 15; // @gotags: msg:"14100,omitempty" type:"3,omitempty" // Contains the full filename and extension of the Attachment object. - optional string attach_long_filename = 16; // @gotags: msg:"1408731,omitempty" + optional string attach_long_filename = 16; // @gotags: msg:"14087,omitempty" type:"31,omitempty" // Contains the fully-qualified path and file name with extension. - optional string attach_long_pathname = 17; // @gotags: msg:"1409331,omitempty" + optional string attach_long_pathname = 17; // @gotags: msg:"14093,omitempty" type:"31,omitempty" // Indicates that a contact photo attachment is attached to a Contact object. - optional bool attachment_contact_photo = 18; // @gotags: msg:"3276711,omitempty" + optional bool attachment_contact_photo = 18; // @gotags: msg:"32767,omitempty" type:"11,omitempty" // Indicates special handling for an Attachment object. - optional int32 attachment_flags = 19; // @gotags: msg:"327653,omitempty" + optional int32 attachment_flags = 19; // @gotags: msg:"32765,omitempty" type:"3,omitempty" // Indicates whether an Attachment object is hidden from the end user. - optional bool attachment_hidden = 20; // @gotags: msg:"3276611,omitempty" + optional bool attachment_hidden = 20; // @gotags: msg:"32766,omitempty" type:"11,omitempty" // Contains the type of Message object to which an attachment is linked. - optional int32 attachment_link_id = 21; // @gotags: msg:"327623,omitempty" + optional int32 attachment_link_id = 21; // @gotags: msg:"32762,omitempty" type:"3,omitempty" // Represents the way the contents of an attachment are accessed. - optional int32 attach_method = 22; // @gotags: msg:"140853,omitempty" + optional int32 attach_method = 22; // @gotags: msg:"14085,omitempty" type:"3,omitempty" // Contains a content-type MIME header. - optional string attach_mime_tag = 23; // @gotags: msg:"1409431,omitempty" + optional string attach_mime_tag = 23; // @gotags: msg:"14094,omitempty" type:"31,omitempty" // Identifies the Attachment object within its Message object. - optional int32 attach_number = 24; // @gotags: msg:"36173,omitempty" + optional int32 attach_number = 24; // @gotags: msg:"3617,omitempty" type:"3,omitempty" // Contains the 8.3 name of the PidTagAttachLongPathname property (section 2.596). - optional string attach_pathname = 25; // @gotags: msg:"1408831,omitempty" + optional string attach_pathname = 25; // @gotags: msg:"14088,omitempty" type:"31,omitempty" // Contains the size, in bytes, consumed by the Attachment object on the server. - optional int32 attach_size = 27; // @gotags: msg:"36163,omitempty" + optional int32 attach_size = 27; // @gotags: msg:"3616,omitempty" type:"3,omitempty" // Contains the name of an attachment file, modified so that it can be correlated with TNEF messages. - optional string attach_transport_name = 29; // @gotags: msg:"1409231,omitempty" + optional string attach_transport_name = 29; // @gotags: msg:"14092,omitempty" type:"31,omitempty" // Specifies the character set of an attachment received via MIME with the content-type of text. - optional string text_attachment_charset = 31; // @gotags: msg:"1410731,omitempty" + optional string text_attachment_charset = 31; // @gotags: msg:"14107,omitempty" type:"31,omitempty" } diff --git a/cmd/properties/protobufs/contact.proto b/cmd/properties/protobufs/contact.proto index 98f33b8..65b75bb 100644 --- a/cmd/properties/protobufs/contact.proto +++ b/cmd/properties/protobufs/contact.proto @@ -21,221 +21,221 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Contact { // Specifies the state of the electronic addresses of the contact and represents a set of bit flags. - optional int32 address_book_provider_array_type = 1; // @gotags: msg:"2622173,omitempty" + optional int32 address_book_provider_array_type = 1; // @gotags: msg:"262217,omitempty" type:"3,omitempty" // Specifies the country code portion of the mailing address of the contact. - optional string address_country_code = 3; // @gotags: msg:"26257331,omitempty" + optional string address_country_code = 3; // @gotags: msg:"262573,omitempty" type:"31,omitempty" // Specifies to the application whether to create a Journal object for each action associated with this Contact object. - optional bool auto_log = 5; // @gotags: msg:"26221311,omitempty" + optional bool auto_log = 5; // @gotags: msg:"262213,omitempty" type:"11,omitempty" // Specifies the birthday of a contact. - optional int64 birthday_local = 7; // @gotags: msg:"26257464,omitempty" + optional int64 birthday_local = 7; // @gotags: msg:"262574,omitempty" type:"64,omitempty" // Specifies the character set used for a Contact object. - optional int32 contact_character_set = 10; // @gotags: msg:"2622113,omitempty" + optional int32 contact_character_set = 10; // @gotags: msg:"262211,omitempty" type:"3,omitempty" // Specifies the GUID of the GAL contact to which the duplicate contact is linked. - optional uint64 contact_link_global_address_list_link_id = 14; // @gotags: msg:"26260072,omitempty" + optional uint64 contact_link_global_address_list_link_id = 14; // @gotags: msg:"262600,omitempty" type:"72,omitempty" // Specifies the state of the linking between the GAL contact and the duplicate contact. - optional int32 contact_link_global_address_list_link_state = 15; // @gotags: msg:"2625983,omitempty" + optional int32 contact_link_global_address_list_link_state = 15; // @gotags: msg:"262598,omitempty" type:"3,omitempty" // - optional string contact_link_name = 17; // @gotags: msg:"26752631,omitempty" + optional string contact_link_name = 17; // @gotags: msg:"267526,omitempty" type:"31,omitempty" // Contains text used to add custom text to a business card representation of a Contact object. - optional string contact_user_field1 = 20; // @gotags: msg:"26228731,omitempty" + optional string contact_user_field1 = 20; // @gotags: msg:"262287,omitempty" type:"31,omitempty" // Contains text used to add custom text to a business card representation of a Contact object. - optional string contact_user_field2 = 21; // @gotags: msg:"26230431,omitempty" + optional string contact_user_field2 = 21; // @gotags: msg:"262304,omitempty" type:"31,omitempty" // Contains text used to add custom text to a business card representation of a Contact object. - optional string contact_user_field3 = 22; // @gotags: msg:"26230531,omitempty" + optional string contact_user_field3 = 22; // @gotags: msg:"262305,omitempty" type:"31,omitempty" // Contains text used to add custom text to a business card representation of a Contact object. - optional string contact_user_field4 = 23; // @gotags: msg:"26230631,omitempty" + optional string contact_user_field4 = 23; // @gotags: msg:"262306,omitempty" type:"31,omitempty" // This property is ignored by the server and is set to an empty string by the client. - optional string department = 24; // @gotags: msg:"26217631,omitempty" + optional string department = 24; // @gotags: msg:"262176,omitempty" type:"31,omitempty" // Specifies the 32-bit cyclic redundancy check (CRC) polynomial checksum, as specified in [ISO/IEC8802-3], calculated on the value of the PidLidDistributionListMembers property (section 2.96). - optional int32 distribution_list_checksum = 25; // @gotags: msg:"2622843,omitempty" + optional int32 distribution_list_checksum = 25; // @gotags: msg:"262284,omitempty" type:"3,omitempty" // Specifies the name of the personal distribution list. - optional string distribution_list_name = 27; // @gotags: msg:"26230731,omitempty" + optional string distribution_list_name = 27; // @gotags: msg:"262307,omitempty" type:"31,omitempty" // Specifies the address type of an electronic address. - optional string email1_address_type = 30; // @gotags: msg:"26240231,omitempty" + optional string email1_address_type = 30; // @gotags: msg:"262402,omitempty" type:"31,omitempty" // Specifies the user-readable display name for the email address. - optional string email1_display_name = 31; // @gotags: msg:"26240031,omitempty" + optional string email1_display_name = 31; // @gotags: msg:"262400,omitempty" type:"31,omitempty" // Specifies the email address of the contact. - optional string email1_email_address = 32; // @gotags: msg:"26240331,omitempty" + optional string email1_email_address = 32; // @gotags: msg:"262403,omitempty" type:"31,omitempty" // Specifies the SMTP email address that corresponds to the email address for the Contact object. - optional string email1_original_display_name = 33; // @gotags: msg:"26240431,omitempty" + optional string email1_original_display_name = 33; // @gotags: msg:"262404,omitempty" type:"31,omitempty" // Specifies the address type of the electronic address. - optional string email2_address_type = 35; // @gotags: msg:"26243431,omitempty" + optional string email2_address_type = 35; // @gotags: msg:"262434,omitempty" type:"31,omitempty" // Specifies the user-readable display name for the email address. - optional string email2_display_name = 36; // @gotags: msg:"26243231,omitempty" + optional string email2_display_name = 36; // @gotags: msg:"262432,omitempty" type:"31,omitempty" // Specifies the email address of the contact. - optional string email2_email_address = 37; // @gotags: msg:"26243531,omitempty" + optional string email2_email_address = 37; // @gotags: msg:"262435,omitempty" type:"31,omitempty" // Specifies the SMTP email address that corresponds to the email address for the Contact object. - optional string email2_original_display_name = 38; // @gotags: msg:"26243631,omitempty" + optional string email2_original_display_name = 38; // @gotags: msg:"262436,omitempty" type:"31,omitempty" // Specifies the address type of the electronic address. - optional string email3_address_type = 40; // @gotags: msg:"26246631,omitempty" + optional string email3_address_type = 40; // @gotags: msg:"262466,omitempty" type:"31,omitempty" // Specifies the user-readable display name for the email address. - optional string email3_display_name = 41; // @gotags: msg:"26246431,omitempty" + optional string email3_display_name = 41; // @gotags: msg:"262464,omitempty" type:"31,omitempty" // Specifies the email address of the contact. - optional string email3_email_address = 42; // @gotags: msg:"26246731,omitempty" + optional string email3_email_address = 42; // @gotags: msg:"262467,omitempty" type:"31,omitempty" // Specifies the SMTP email address that corresponds to the email address for the Contact object. - optional string email3_original_display_name = 43; // @gotags: msg:"26246831,omitempty" + optional string email3_original_display_name = 43; // @gotags: msg:"262468,omitempty" type:"31,omitempty" // Contains the string value "FAX". - optional string fax1_address_type = 45; // @gotags: msg:"26249831,omitempty" + optional string fax1_address_type = 45; // @gotags: msg:"262498,omitempty" type:"31,omitempty" // Contains a user-readable display name, followed by the "@" character, followed by a fax number. - optional string fax1_email_address = 46; // @gotags: msg:"26249931,omitempty" + optional string fax1_email_address = 46; // @gotags: msg:"262499,omitempty" type:"31,omitempty" // Contains the same value as the PidTagNormalizedSubject property (section 2.812). - optional string fax1_original_display_name = 47; // @gotags: msg:"26250031,omitempty" + optional string fax1_original_display_name = 47; // @gotags: msg:"262500,omitempty" type:"31,omitempty" // Contains the string value "FAX". - optional string fax2_address_type = 49; // @gotags: msg:"26253031,omitempty" + optional string fax2_address_type = 49; // @gotags: msg:"262530,omitempty" type:"31,omitempty" // Contains a user-readable display name, followed by the "@" character, followed by a fax number. - optional string fax2_email_address = 50; // @gotags: msg:"26253131,omitempty" + optional string fax2_email_address = 50; // @gotags: msg:"262531,omitempty" type:"31,omitempty" // Contains the same value as the PidTagNormalizedSubject property (section 2.812). - optional string fax2_original_display_name = 51; // @gotags: msg:"26253231,omitempty" + optional string fax2_original_display_name = 51; // @gotags: msg:"262532,omitempty" type:"31,omitempty" // Contains the string value "FAX". - optional string fax3_address_type = 53; // @gotags: msg:"26256231,omitempty" + optional string fax3_address_type = 53; // @gotags: msg:"262562,omitempty" type:"31,omitempty" // Contains a user-readable display name, followed by the "@" character, followed by a fax number. - optional string fax3_email_address = 54; // @gotags: msg:"26256331,omitempty" + optional string fax3_email_address = 54; // @gotags: msg:"262563,omitempty" type:"31,omitempty" // Contains the same value as the PidTagNormalizedSubject property (section 2.812). - optional string fax3_original_display_name = 55; // @gotags: msg:"26256431,omitempty" + optional string fax3_original_display_name = 55; // @gotags: msg:"262564,omitempty" type:"31,omitempty" // Specifies the name under which to file a contact when displaying a list of contacts. - optional string file_under = 57; // @gotags: msg:"26214931,omitempty" + optional string file_under = 57; // @gotags: msg:"262149,omitempty" type:"31,omitempty" // Specifies how to generate and recompute the value of the PidLidFileUnder property (section 2.132) when other contact name properties change. - optional int32 file_under_id = 58; // @gotags: msg:"2621503,omitempty" + optional int32 file_under_id = 58; // @gotags: msg:"262150,omitempty" type:"3,omitempty" // Specifies a URL path from which a client can retrieve free/busy status information for the contact. - optional string free_busy_location = 60; // @gotags: msg:"26256831,omitempty" + optional string free_busy_location = 60; // @gotags: msg:"262568,omitempty" type:"31,omitempty" // Specifies whether the attachment has a picture. - optional bool has_picture = 61; // @gotags: msg:"26218111,omitempty" + optional bool has_picture = 61; // @gotags: msg:"262181,omitempty" type:"11,omitempty" // Specifies the complete address of the home address of the contact. - optional string home_address = 62; // @gotags: msg:"26218631,omitempty" + optional string home_address = 62; // @gotags: msg:"262186,omitempty" type:"31,omitempty" // Specifies the country code portion of the home address of the contact. - optional string home_address_country_code = 63; // @gotags: msg:"26257031,omitempty" + optional string home_address_country_code = 63; // @gotags: msg:"262570,omitempty" type:"31,omitempty" // Specifies the business webpage URL of the contact. - optional string html = 64; // @gotags: msg:"26221931,omitempty" + optional string html = 64; // @gotags: msg:"262219,omitempty" type:"31,omitempty" // Specifies the instant messaging address of the contact. - optional string instant_messaging_address = 65; // @gotags: msg:"26233831,omitempty" + optional string instant_messaging_address = 65; // @gotags: msg:"262338,omitempty" type:"31,omitempty" // Specifies whether the contact is linked to other contacts. - optional bool is_contact_linked = 66; // @gotags: msg:"26259211,omitempty" + optional bool is_contact_linked = 66; // @gotags: msg:"262592,omitempty" type:"11,omitempty" // Specifies the complete address of the other address of the contact. - optional string other_address = 67; // @gotags: msg:"26218831,omitempty" + optional string other_address = 67; // @gotags: msg:"262188,omitempty" type:"31,omitempty" // Specifies the country code portion of the other address of the contact. - optional string other_address_country_code = 68; // @gotags: msg:"26257231,omitempty" + optional string other_address_country_code = 68; // @gotags: msg:"262572,omitempty" type:"31,omitempty" // Specifies which physical address is the mailing address for this contact. - optional int32 postal_address_id = 69; // @gotags: msg:"2622103,omitempty" + optional int32 postal_address_id = 69; // @gotags: msg:"262210,omitempty" type:"3,omitempty" // Specifies the wedding anniversary of the contact, at midnight in the client's local time zone, and is saved without any time zone conversions. - optional int64 wedding_anniversary_local = 71; // @gotags: msg:"26257564,omitempty" + optional int64 wedding_anniversary_local = 71; // @gotags: msg:"262575,omitempty" type:"64,omitempty" // Specifies the complete address of the work address of the contact. - optional string work_address = 72; // @gotags: msg:"26218731,omitempty" + optional string work_address = 72; // @gotags: msg:"262187,omitempty" type:"31,omitempty" // Specifies the city or locality portion of the work address of the contact. - optional string work_address_city = 73; // @gotags: msg:"26227831,omitempty" + optional string work_address_city = 73; // @gotags: msg:"262278,omitempty" type:"31,omitempty" // Specifies the country or region portion of the work address of the contact. - optional string work_address_country = 74; // @gotags: msg:"26228131,omitempty" + optional string work_address_country = 74; // @gotags: msg:"262281,omitempty" type:"31,omitempty" // Specifies the country code portion of the work address of the contact. - optional string work_address_country_code = 75; // @gotags: msg:"26257131,omitempty" + optional string work_address_country_code = 75; // @gotags: msg:"262571,omitempty" type:"31,omitempty" // Specifies the postal code (ZIP code) portion of the work address of the contact. - optional string work_address_postal_code = 76; // @gotags: msg:"26228031,omitempty" + optional string work_address_postal_code = 76; // @gotags: msg:"262280,omitempty" type:"31,omitempty" // Specifies the post office box portion of the work address of the contact. - optional string work_address_post_office_box = 77; // @gotags: msg:"26228231,omitempty" + optional string work_address_post_office_box = 77; // @gotags: msg:"262282,omitempty" type:"31,omitempty" // Specifies the state or province portion of the work address of the contact. - optional string work_address_state = 78; // @gotags: msg:"26227931,omitempty" + optional string work_address_state = 78; // @gotags: msg:"262279,omitempty" type:"31,omitempty" // Specifies the street portion of the work address of the contact. - optional string work_address_street = 79; // @gotags: msg:"26227731,omitempty" + optional string work_address_street = 79; // @gotags: msg:"262277,omitempty" type:"31,omitempty" // Specifies the phonetic pronunciation of the company name of the contact. - optional string yomi_company_name = 80; // @gotags: msg:"26222231,omitempty" + optional string yomi_company_name = 80; // @gotags: msg:"262222,omitempty" type:"31,omitempty" // Specifies the phonetic pronunciation of the given name of the contact. - optional string yomi_first_name = 81; // @gotags: msg:"26222031,omitempty" + optional string yomi_first_name = 81; // @gotags: msg:"262220,omitempty" type:"31,omitempty" // Specifies the phonetic pronunciation of the surname of the contact. - optional string yomi_last_name = 82; // @gotags: msg:"26222131,omitempty" + optional string yomi_last_name = 82; // @gotags: msg:"262221,omitempty" type:"31,omitempty" // Indicates the name of the contact associated with the birthday event. optional string birthday_contact_attribution_display_name = 83; // Indicates whether the contact associated with the birthday event is writable. optional bool is_birthday_contact_writable = 86; // Contains the date of the mail user's birthday at midnight. - optional int64 birthday = 87; // @gotags: msg:"1491464,omitempty" + optional int64 birthday = 87; // @gotags: msg:"14914,omitempty" type:"64,omitempty" // Contains a secondary telephone number at the mail user's place of business. - optional string business2_telephone_number = 88; // @gotags: msg:"1487531,omitempty" + optional string business2_telephone_number = 88; // @gotags: msg:"14875,omitempty" type:"31,omitempty" // Contains the telephone number of the mail user's business fax machine. - optional string business_fax_number = 90; // @gotags: msg:"1488431,omitempty" + optional string business_fax_number = 90; // @gotags: msg:"14884,omitempty" type:"31,omitempty" // Contains the URL of the mail user's business home page. - optional string business_home_page = 91; // @gotags: msg:"1492931,omitempty" + optional string business_home_page = 91; // @gotags: msg:"14929,omitempty" type:"31,omitempty" // Contains the primary telephone number of the mail user's place of business. - optional string business_telephone_number = 92; // @gotags: msg:"1485631,omitempty" + optional string business_telephone_number = 92; // @gotags: msg:"14856,omitempty" type:"31,omitempty" // Contains a telephone number to reach the mail user. - optional string callback_telephone_number = 93; // @gotags: msg:"1485031,omitempty" + optional string callback_telephone_number = 93; // @gotags: msg:"14850,omitempty" type:"31,omitempty" // Contains the mail user's car telephone number. - optional string car_telephone_number = 94; // @gotags: msg:"1487831,omitempty" + optional string car_telephone_number = 94; // @gotags: msg:"14878,omitempty" type:"31,omitempty" // Contains the main telephone number of the mail user's company. - optional string company_main_telephone_number = 96; // @gotags: msg:"1493531,omitempty" + optional string company_main_telephone_number = 96; // @gotags: msg:"14935,omitempty" type:"31,omitempty" // Contains the mail user's company name. - optional string company_name = 97; // @gotags: msg:"1487031,omitempty" + optional string company_name = 97; // @gotags: msg:"14870,omitempty" type:"31,omitempty" // Contains the name of the mail user's computer network. - optional string computer_network_name = 98; // @gotags: msg:"1492131,omitempty" + optional string computer_network_name = 98; // @gotags: msg:"14921,omitempty" type:"31,omitempty" // Contains the name of the mail user's country/region. - optional string country = 99; // @gotags: msg:"1488631,omitempty" + optional string country = 99; // @gotags: msg:"14886,omitempty" type:"31,omitempty" // Contains the mail user's customer identification number. - optional string customer_id = 100; // @gotags: msg:"1492231,omitempty" + optional string customer_id = 100; // @gotags: msg:"14922,omitempty" type:"31,omitempty" // Contains a name for the department in which the mail user works. - optional string department_name = 101; // @gotags: msg:"1487231,omitempty" + optional string department_name = 101; // @gotags: msg:"14872,omitempty" type:"31,omitempty" // Contains the mail user's honorific title. - optional string display_name_prefix = 102; // @gotags: msg:"1491731,omitempty" + optional string display_name_prefix = 102; // @gotags: msg:"14917,omitempty" type:"31,omitempty" // Contains the File Transfer Protocol (FTP) site address of the mail user. - optional string ftp_site = 103; // @gotags: msg:"1492431,omitempty" + optional string ftp_site = 103; // @gotags: msg:"14924,omitempty" type:"31,omitempty" // Contains a value that represents the mail user's gender. - optional int32 gender = 104; // @gotags: msg:"149252,omitempty" + optional int32 gender = 104; // @gotags: msg:"14925,omitempty" type:"2,omitempty" // Contains a generational abbreviation that follows the full name of the mail user. - optional string generation = 105; // @gotags: msg:"1485331,omitempty" + optional string generation = 105; // @gotags: msg:"14853,omitempty" type:"31,omitempty" // Contains the mail user's given name. - optional string given_name = 106; // @gotags: msg:"1485431,omitempty" + optional string given_name = 106; // @gotags: msg:"14854,omitempty" type:"31,omitempty" // Contains a government identifier for the mail user. - optional string government_id_number = 107; // @gotags: msg:"1485531,omitempty" + optional string government_id_number = 107; // @gotags: msg:"14855,omitempty" type:"31,omitempty" // Contains the names of the mail user's hobbies. - optional string hobbies = 108; // @gotags: msg:"1491531,omitempty" + optional string hobbies = 108; // @gotags: msg:"14915,omitempty" type:"31,omitempty" // Contains a secondary telephone number at the mail user's home. - optional string home2_telephone_number = 109; // @gotags: msg:"1489531,omitempty" + optional string home2_telephone_number = 109; // @gotags: msg:"14895,omitempty" type:"31,omitempty" // Contains the name of the mail user's home locality, such as the town or city. - optional string home_address_city = 111; // @gotags: msg:"1493731,omitempty" + optional string home_address_city = 111; // @gotags: msg:"14937,omitempty" type:"31,omitempty" // Contains the name of the mail user's home country/region. - optional string home_address_country = 112; // @gotags: msg:"1493831,omitempty" + optional string home_address_country = 112; // @gotags: msg:"14938,omitempty" type:"31,omitempty" // Contains the postal code for the mail user's home postal address. - optional string home_address_postal_code = 113; // @gotags: msg:"1493931,omitempty" + optional string home_address_postal_code = 113; // @gotags: msg:"14939,omitempty" type:"31,omitempty" // Contains the number or identifier of the mail user's home post office box. - optional string home_address_post_office_box = 114; // @gotags: msg:"1494231,omitempty" + optional string home_address_post_office_box = 114; // @gotags: msg:"14942,omitempty" type:"31,omitempty" // Contains the name of the mail user's home state or province. - optional string home_address_state_or_province = 115; // @gotags: msg:"1494031,omitempty" + optional string home_address_state_or_province = 115; // @gotags: msg:"14940,omitempty" type:"31,omitempty" // Contains the mail user's home street address. - optional string home_address_street = 116; // @gotags: msg:"1494131,omitempty" + optional string home_address_street = 116; // @gotags: msg:"14941,omitempty" type:"31,omitempty" // Contains the telephone number of the mail user's home fax machine. - optional string home_fax_number = 117; // @gotags: msg:"1488531,omitempty" + optional string home_fax_number = 117; // @gotags: msg:"14885,omitempty" type:"31,omitempty" // Contains the primary telephone number of the mail user's home. - optional string home_telephone_number = 118; // @gotags: msg:"1485731,omitempty" + optional string home_telephone_number = 118; // @gotags: msg:"14857,omitempty" type:"31,omitempty" // Specifies whether contact synchronization with an external source is handled by the server. - optional bool osc_sync_enabled = 119; // @gotags: msg:"3178011,omitempty" + optional bool osc_sync_enabled = 119; // @gotags: msg:"31780,omitempty" type:"11,omitempty" // Contains the URL of the mail user's personal home page. - optional string personal_home_page = 120; // @gotags: msg:"1492831,omitempty" + optional string personal_home_page = 120; // @gotags: msg:"14928,omitempty" type:"31,omitempty" // Contains the mail user's postal address. - optional string postal_address = 121; // @gotags: msg:"1486931,omitempty" + optional string postal_address = 121; // @gotags: msg:"14869,omitempty" type:"31,omitempty" // Contains the postal code for the mail user's postal address. - optional string postal_code = 122; // @gotags: msg:"1489031,omitempty" + optional string postal_code = 122; // @gotags: msg:"14890,omitempty" type:"31,omitempty" // Contains the number or identifier of the mail user's post office box. - optional string post_office_box = 123; // @gotags: msg:"1489131,omitempty" + optional string post_office_box = 123; // @gotags: msg:"14891,omitempty" type:"31,omitempty" // Contains the telephone number of the mail user's primary fax machine. - optional string primary_fax_number = 124; // @gotags: msg:"1488331,omitempty" + optional string primary_fax_number = 124; // @gotags: msg:"14883,omitempty" type:"31,omitempty" // Contains the mail user's primary telephone number. - optional string primary_telephone_number = 125; // @gotags: msg:"1487431,omitempty" + optional string primary_telephone_number = 125; // @gotags: msg:"14874,omitempty" type:"31,omitempty" // Contains the name of the mail user's line of business. - optional string profession = 126; // @gotags: msg:"1491831,omitempty" + optional string profession = 126; // @gotags: msg:"14918,omitempty" type:"31,omitempty" // Contains the mail user's radio telephone number. - optional string radio_telephone_number = 127; // @gotags: msg:"1487731,omitempty" + optional string radio_telephone_number = 127; // @gotags: msg:"14877,omitempty" type:"31,omitempty" // Contains the name of the mail user's referral. - optional string referred_by_name = 128; // @gotags: msg:"1491931,omitempty" + optional string referred_by_name = 128; // @gotags: msg:"14919,omitempty" type:"31,omitempty" // Contains the name of the mail user's spouse/partner. - optional string spouse_name = 129; // @gotags: msg:"1492031,omitempty" + optional string spouse_name = 129; // @gotags: msg:"14920,omitempty" type:"31,omitempty" // Contains the name of the mail user's state or province. - optional string state_or_province = 130; // @gotags: msg:"1488831,omitempty" + optional string state_or_province = 130; // @gotags: msg:"14888,omitempty" type:"31,omitempty" // Contains the mail user's street address. - optional string street_address = 131; // @gotags: msg:"1488931,omitempty" + optional string street_address = 131; // @gotags: msg:"14889,omitempty" type:"31,omitempty" // Contains the mail user's family name. - optional string surname = 132; // @gotags: msg:"1486531,omitempty" + optional string surname = 132; // @gotags: msg:"14865,omitempty" type:"31,omitempty" // Contains the mail user's telecommunication device for the deaf (TTY/TDD) telephone number. - optional string telecommunications_device_for_deaf_telephone_number = 133; // @gotags: msg:"1492331,omitempty" + optional string telecommunications_device_for_deaf_telephone_number = 133; // @gotags: msg:"14923,omitempty" type:"31,omitempty" // Contains the mail user's telex number. This property is returned from an NSPI server as a PtypMultipleBinary. Otherwise, the data type is PtypString. - optional string telex_number = 134; // @gotags: msg:"1489231,omitempty" + optional string telex_number = 134; // @gotags: msg:"14892,omitempty" type:"31,omitempty" // Contains the mail user's job title. - optional string title = 135; // @gotags: msg:"1487131,omitempty" + optional string title = 135; // @gotags: msg:"14871,omitempty" type:"31,omitempty" // Contains the date of the mail user's wedding anniversary. - optional int64 wedding_anniversary = 138; // @gotags: msg:"1491364,omitempty" + optional int64 wedding_anniversary = 138; // @gotags: msg:"14913,omitempty" type:"64,omitempty" } diff --git a/cmd/properties/protobufs/folder.proto b/cmd/properties/protobufs/folder.proto new file mode 100644 index 0000000..5e3185e --- /dev/null +++ b/cmd/properties/protobufs/folder.proto @@ -0,0 +1,24 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:generate msgp -tests=false + +syntax = "proto3"; +option go_package = "github.com/mooijtech/go-pst;properties"; + +message Folder { + string name = 1; +} \ No newline at end of file diff --git a/cmd/properties/protobufs/journal.proto b/cmd/properties/protobufs/journal.proto index 60691d8..b3773a2 100644 --- a/cmd/properties/protobufs/journal.proto +++ b/cmd/properties/protobufs/journal.proto @@ -21,23 +21,23 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Journal { // Indicates whether the document was sent by email or posted to a server folder during journaling. - optional bool log_document_posted = 1; // @gotags: msg:"26934511,omitempty" + optional bool log_document_posted = 1; // @gotags: msg:"269345,omitempty" type:"11,omitempty" // Indicates whether the document was printed during journaling. - optional bool log_document_printed = 2; // @gotags: msg:"26932611,omitempty" + optional bool log_document_printed = 2; // @gotags: msg:"269326,omitempty" type:"11,omitempty" // Indicates whether the document was sent to a routing recipient during journaling. - optional bool log_document_routed = 3; // @gotags: msg:"26934411,omitempty" + optional bool log_document_routed = 3; // @gotags: msg:"269344,omitempty" type:"11,omitempty" // Indicates whether the document was saved during journaling. - optional bool log_document_saved = 4; // @gotags: msg:"26932711,omitempty" + optional bool log_document_saved = 4; // @gotags: msg:"269327,omitempty" type:"11,omitempty" // Contains the duration, in minutes, of the activity. - optional int32 log_duration = 5; // @gotags: msg:"2693193,omitempty" + optional int32 log_duration = 5; // @gotags: msg:"269319,omitempty" type:"3,omitempty" // Contains the time, in UTC, at which the activity ended. - optional int64 log_end = 6; // @gotags: msg:"26932064,omitempty" + optional int64 log_end = 6; // @gotags: msg:"269320,omitempty" type:"64,omitempty" // Contains metadata about the Journal object. - optional int32 log_flags = 7; // @gotags: msg:"2693243,omitempty" + optional int32 log_flags = 7; // @gotags: msg:"269324,omitempty" type:"3,omitempty" // Contains the time, in UTC, at which the activity began. - optional int64 log_start = 8; // @gotags: msg:"26931864,omitempty" + optional int64 log_start = 8; // @gotags: msg:"269318,omitempty" type:"64,omitempty" // Briefly describes the journal activity that is being recorded. - optional string log_type = 9; // @gotags: msg:"26931231,omitempty" + optional string log_type = 9; // @gotags: msg:"269312,omitempty" type:"31,omitempty" // Contains an expanded description of the journal activity that is being recorded. - optional string log_type_desc = 10; // @gotags: msg:"26934631,omitempty" + optional string log_type_desc = 10; // @gotags: msg:"269346,omitempty" type:"31,omitempty" } diff --git a/cmd/properties/protobufs/message.proto b/cmd/properties/protobufs/message.proto index a62a113..1ea4ab6 100644 --- a/cmd/properties/protobufs/message.proto +++ b/cmd/properties/protobufs/message.proto @@ -21,35 +21,35 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Message { // Specifies the options used in the automatic processing of email messages. - optional int32 auto_process_state = 1; // @gotags: msg:"2673063,omitempty" + optional int32 auto_process_state = 1; // @gotags: msg:"267306,omitempty" type:"3,omitempty" // Specifies billing information for the contact. - optional string billing = 2; // @gotags: msg:"26736531,omitempty" + optional string billing = 2; // @gotags: msg:"267365,omitempty" type:"31,omitempty" // Contains a list of the classification categories to which the associated Message object has been assigned. - optional string classification = 3; // @gotags: msg:"26762231,omitempty" + optional string classification = 3; // @gotags: msg:"267622,omitempty" type:"31,omitempty" // Contains a human-readable summary of each of the classification categories included in the PidLidClassification property (section 2.53). - optional string classification_description = 4; // @gotags: msg:"26762331,omitempty" + optional string classification_description = 4; // @gotags: msg:"267623,omitempty" type:"31,omitempty" // Contains the GUID that identifies the list of email classification categories used by a Message object. - optional string classification_guid = 5; // @gotags: msg:"26762431,omitempty" + optional string classification_guid = 5; // @gotags: msg:"267624,omitempty" type:"31,omitempty" // Indicates whether the message uses any classification categories. - optional bool classification_keep = 6; // @gotags: msg:"26762611,omitempty" + optional bool classification_keep = 6; // @gotags: msg:"267626,omitempty" type:"11,omitempty" // Indicates whether the contents of this message are regarded as classified information. - optional bool classified = 7; // @gotags: msg:"26762111,omitempty" + optional bool classified = 7; // @gotags: msg:"267621,omitempty" type:"11,omitempty" // Indicates the end time for the Message object. - optional int64 common_end = 8; // @gotags: msg:"26730364,omitempty" + optional int64 common_end = 8; // @gotags: msg:"267303,omitempty" type:"64,omitempty" // Indicates the start time for the Message object. - optional int64 common_start = 9; // @gotags: msg:"26730264,omitempty" + optional int64 common_start = 9; // @gotags: msg:"267302,omitempty" type:"64,omitempty" // Specifies the build number of the client application that sent the message. - optional int32 current_version = 12; // @gotags: msg:"2674263,omitempty" + optional int32 current_version = 12; // @gotags: msg:"267426,omitempty" type:"3,omitempty" // Specifies the name of the client application that sent the message. - optional string current_version_name = 13; // @gotags: msg:"26742831,omitempty" + optional string current_version_name = 13; // @gotags: msg:"267428,omitempty" type:"31,omitempty" // Specifies the user-visible email account name through which the email message is sent. - optional string internet_account_name = 14; // @gotags: msg:"26752031,omitempty" + optional string internet_account_name = 14; // @gotags: msg:"267520,omitempty" type:"31,omitempty" // Specifies the email account ID through which the email message is sent. - optional string internet_account_stamp = 15; // @gotags: msg:"26752131,omitempty" + optional string internet_account_stamp = 15; // @gotags: msg:"267521,omitempty" type:"31,omitempty" // Indicates whether the end user wishes for this Message object to be hidden from other users who have access to the Message object. - optional bool private = 19; // @gotags: msg:"26727011,omitempty" + optional bool private = 19; // @gotags: msg:"267270,omitempty" type:"11,omitempty" // Specifies the voting option that a respondent has selected. - optional string verb_response = 20; // @gotags: msg:"26733231,omitempty" + optional string verb_response = 20; // @gotags: msg:"267332,omitempty" type:"31,omitempty" // Contains the value of the MIME Accept-Language header. optional string accept_language = 21; // Specifies the value of the MIME Content-Base header, which defines the base URI for resolving relative URLs contained within the message body. @@ -71,225 +71,225 @@ message Message { // Indicates whether a message is likely to be phishing. optional int32 phishing_stamp = 31; // Contains the email address type of a Message object. - optional string address_type = 33; // @gotags: msg:"1229031,omitempty" + optional string address_type = 33; // @gotags: msg:"12290,omitempty" type:"31,omitempty" // Specifies whether the sender permits the message to be auto-forwarded. - optional bool alternate_recipient_allowed = 34; // @gotags: msg:"211,omitempty" + optional bool alternate_recipient_allowed = 34; // @gotags: msg:"2,omitempty" type:"11,omitempty" // Specifies the date, in UTC, after which a Message object is archived by the server. - optional int64 archive_date = 35; // @gotags: msg:"1231964,omitempty" + optional int64 archive_date = 35; // @gotags: msg:"12319,omitempty" type:"64,omitempty" // Specifies the number of days that a Message object can remain unarchived. - optional int32 archive_period = 36; // @gotags: msg:"123183,omitempty" + optional int32 archive_period = 36; // @gotags: msg:"12318,omitempty" type:"3,omitempty" // Contains the name of the mail user's administrative assistant. - optional string assistant = 38; // @gotags: msg:"1489631,omitempty" + optional string assistant = 38; // @gotags: msg:"14896,omitempty" type:"31,omitempty" // Contains the telephone number of the mail user's administrative assistant. - optional string assistant_telephone_number = 39; // @gotags: msg:"1489431,omitempty" + optional string assistant_telephone_number = 39; // @gotags: msg:"14894,omitempty" type:"31,omitempty" // Specifies whether a client or server application will forego sending automated replies in response to this message. - optional int32 auto_response_suppress = 40; // @gotags: msg:"163513,omitempty" + optional int32 auto_response_suppress = 40; // @gotags: msg:"16351,omitempty" type:"3,omitempty" // Indicates the user's preference for viewing external content (such as links to images on an HTTP server) in the message body. - optional int32 block_status = 41; // @gotags: msg:"42463,omitempty" + optional int32 block_status = 41; // @gotags: msg:"4246,omitempty" type:"3,omitempty" // Contains message body text in plain text format. - optional string body = 42; // @gotags: msg:"409631,omitempty" + optional string body = 42; // @gotags: msg:"4096,omitempty" type:"31,omitempty" // Contains a globally unique Uniform Resource Identifier (URI) that serves as a label for the current message body. - optional string body_content_location = 43; // @gotags: msg:"411631,omitempty" + optional string body_content_location = 43; // @gotags: msg:"4116,omitempty" type:"31,omitempty" // Contains the HTML body of the Message object. - optional string body_html = 44; // @gotags: msg:"411531,omitempty" + optional string body_html = 44; // @gotags: msg:"4115,omitempty" type:"31,omitempty" // Contains the current time, in UTC, when the email message is submitted. - optional int64 client_submit_time = 45; // @gotags: msg:"5764,omitempty" + optional int64 client_submit_time = 45; // @gotags: msg:"57,omitempty" type:"64,omitempty" // Indicates a confidence level that the message is spam. - optional int32 content_filter_spam_confidence_level = 46; // @gotags: msg:"165023,omitempty" + optional int32 content_filter_spam_confidence_level = 46; // @gotags: msg:"16502,omitempty" type:"3,omitempty" // Contains an unchanging copy of the original subject. - optional string conversation_topic = 48; // @gotags: msg:"11231,omitempty" + optional string conversation_topic = 48; // @gotags: msg:"112,omitempty" type:"31,omitempty" // Contains the time, in UTC, that the object was created. - optional int64 creation_time = 49; // @gotags: msg:"1229564,omitempty" + optional int64 creation_time = 49; // @gotags: msg:"12295,omitempty" type:"64,omitempty" // Contains the name of the creator of a Message object. - optional string creator_name = 50; // @gotags: msg:"1637631,omitempty" + optional string creator_name = 50; // @gotags: msg:"16376,omitempty" type:"31,omitempty" // Contains the delivery time for a delivery status notification, as specified [RFC3464], or a message disposition notification, as specified in [RFC3798]. - optional int64 deliver_time = 51; // @gotags: msg:"1664,omitempty" + optional int64 deliver_time = 51; // @gotags: msg:"16,omitempty" type:"64,omitempty" // Contains a list of blind carbon copy (Bcc) recipient display names. - optional string display_bcc = 52; // @gotags: msg:"358631,omitempty" + optional string display_bcc = 52; // @gotags: msg:"3586,omitempty" type:"31,omitempty" // Contains a list of carbon copy (Cc) recipient display names. - optional string display_cc = 53; // @gotags: msg:"358731,omitempty" + optional string display_cc = 53; // @gotags: msg:"3587,omitempty" type:"31,omitempty" // Contains a list of the primary recipient display names, separated by semicolons, when an email message has primary recipients . - optional string display_to = 54; // @gotags: msg:"358831,omitempty" + optional string display_to = 54; // @gotags: msg:"3588,omitempty" type:"31,omitempty" // Specifies which icon is to be used by a user interface when displaying a group of Message objects. - optional int32 icon_index = 56; // @gotags: msg:"42243,omitempty" + optional int32 icon_index = 56; // @gotags: msg:"4224,omitempty" type:"3,omitempty" // Indicates the level of importance assigned by the end user to the Message object. - optional int32 importance = 57; // @gotags: msg:"233,omitempty" + optional int32 importance = 57; // @gotags: msg:"23,omitempty" type:"3,omitempty" // Contains the initials for parts of the full name of the mail user. - optional string initials = 58; // @gotags: msg:"1485831,omitempty" + optional string initials = 58; // @gotags: msg:"14858,omitempty" type:"31,omitempty" // Contains the value of the original message's PidTagInternetMessageId property (section 2.748) value. - optional string in_reply_to_id = 59; // @gotags: msg:"416231,omitempty" + optional string in_reply_to_id = 59; // @gotags: msg:"4162,omitempty" type:"31,omitempty" // Indicates the encoding method and HTML inclusion for attachments. - optional int32 internet_mail_override_format = 60; // @gotags: msg:"227863,omitempty" + optional int32 internet_mail_override_format = 60; // @gotags: msg:"22786,omitempty" type:"3,omitempty" // Corresponds to the message-id field. - optional string internet_message_id = 61; // @gotags: msg:"414931,omitempty" + optional string internet_message_id = 61; // @gotags: msg:"4149,omitempty" type:"31,omitempty" // Contains a list of message IDs that specify the messages to which this reply is related. - optional string internet_references = 62; // @gotags: msg:"415331,omitempty" + optional string internet_references = 62; // @gotags: msg:"4153,omitempty" type:"31,omitempty" // Contains the Integrated Services Digital Network (ISDN) telephone number of the mail user. - optional string isdn_number = 63; // @gotags: msg:"1489331,omitempty" + optional string isdn_number = 63; // @gotags: msg:"14893,omitempty" type:"31,omitempty" // Contains a keyword that identifies the mail user to the mail user's system administrator. - optional string keyword = 64; // @gotags: msg:"1485931,omitempty" + optional string keyword = 64; // @gotags: msg:"14859,omitempty" type:"31,omitempty" // Contains a value that indicates the language in which the messaging user is writing messages. - optional string language = 65; // @gotags: msg:"1486031,omitempty" + optional string language = 65; // @gotags: msg:"14860,omitempty" type:"31,omitempty" // Contains the time, in UTC, of the last modification to the object. - optional int64 last_modification_time = 66; // @gotags: msg:"1229664,omitempty" + optional int64 last_modification_time = 66; // @gotags: msg:"12296,omitempty" type:"64,omitempty" // Contains the name of the mail user's locality, such as the town or city. - optional string locality = 67; // @gotags: msg:"1488731,omitempty" + optional string locality = 67; // @gotags: msg:"14887,omitempty" type:"31,omitempty" // Contains the location of the mail user. - optional string location = 68; // @gotags: msg:"1486131,omitempty" + optional string location = 68; // @gotags: msg:"14861,omitempty" type:"31,omitempty" // Contains the name of the mail user's manager. - optional string manager_name = 69; // @gotags: msg:"1492631,omitempty" + optional string manager_name = 69; // @gotags: msg:"14926,omitempty" type:"31,omitempty" // - optional bool message_cc_me = 70; // @gotags: msg:"8811,omitempty" + optional bool message_cc_me = 70; // @gotags: msg:"88,omitempty" type:"11,omitempty" // Specifies the time (in UTC) when the server received the message. - optional int64 message_delivery_time = 71; // @gotags: msg:"359064,omitempty" + optional int64 message_delivery_time = 71; // @gotags: msg:"3590,omitempty" type:"64,omitempty" // Specifies the status of the Message object. - optional int32 message_flags = 72; // @gotags: msg:"35913,omitempty" + optional int32 message_flags = 72; // @gotags: msg:"3591,omitempty" type:"3,omitempty" // Contains the common name of a messaging user for use in a message header. - optional string message_handling_system_common_name = 73; // @gotags: msg:"1486331,omitempty" + optional string message_handling_system_common_name = 73; // @gotags: msg:"14863,omitempty" type:"31,omitempty" // Indicates that the receiving mailbox owner is a primary or a carbon copy (Cc) recipient of this email message. - optional bool message_recipient_me = 74; // @gotags: msg:"8911,omitempty" + optional bool message_recipient_me = 74; // @gotags: msg:"89,omitempty" type:"11,omitempty" // Contains the size, in bytes, consumed by the Message object on the server. - optional int32 message_size = 76; // @gotags: msg:"35923,omitempty" + optional int32 message_size = 76; // @gotags: msg:"3592,omitempty" type:"3,omitempty" // Specifies the 64-bit version of the PidTagMessageSize property (section 2.796). - optional double message_size_extended = 77; // @gotags: msg:"359220,omitempty" + optional double message_size_extended = 77; // @gotags: msg:"3592,omitempty" type:"20,omitempty" // Specifies the status of a message in a contents table. - optional int32 message_status = 78; // @gotags: msg:"36073,omitempty" + optional int32 message_status = 78; // @gotags: msg:"3607,omitempty" type:"3,omitempty" // Indicates that the receiving mailbox owner is one of the primary recipients of this email message. - optional bool message_to_me = 80; // @gotags: msg:"8711,omitempty" + optional bool message_to_me = 80; // @gotags: msg:"87,omitempty" type:"11,omitempty" // Specifies the middle name(s) of the contact. - optional string middle_name = 81; // @gotags: msg:"1491631,omitempty" + optional string middle_name = 81; // @gotags: msg:"14916,omitempty" type:"31,omitempty" // Contains the mail user's cellular telephone number. - optional string mobile_telephone_number = 82; // @gotags: msg:"1487631,omitempty" + optional string mobile_telephone_number = 82; // @gotags: msg:"14876,omitempty" type:"31,omitempty" // Contains the mail user's nickname. - optional string nickname = 83; // @gotags: msg:"1492731,omitempty" + optional string nickname = 83; // @gotags: msg:"14927,omitempty" type:"31,omitempty" // Contains the diagnostic code for a delivery status notification, as specified in [RFC3464]. - optional int32 non_delivery_report_diag_code = 84; // @gotags: msg:"30773,omitempty" + optional int32 non_delivery_report_diag_code = 84; // @gotags: msg:"3077,omitempty" type:"3,omitempty" // Contains an integer value that indicates a reason for delivery failure. - optional int32 non_delivery_report_reason_code = 85; // @gotags: msg:"30763,omitempty" + optional int32 non_delivery_report_reason_code = 85; // @gotags: msg:"3076,omitempty" type:"3,omitempty" // Specifies whether the client sends a non-read receipt. - optional int32 non_delivery_report_status_code = 86; // @gotags: msg:"30783,omitempty" + optional int32 non_delivery_report_status_code = 86; // @gotags: msg:"3078,omitempty" type:"3,omitempty" // Contains the normalized subject of the message. - optional string normalized_subject = 87; // @gotags: msg:"361331,omitempty" + optional string normalized_subject = 87; // @gotags: msg:"3613,omitempty" type:"31,omitempty" // Contains the mail user's office location. - optional string office_location = 88; // @gotags: msg:"1487331,omitempty" + optional string office_location = 88; // @gotags: msg:"14873,omitempty" type:"31,omitempty" // Contains an identifier for the mail user used within the mail user's organization. - optional string organizational_id_number = 89; // @gotags: msg:"1486431,omitempty" + optional string organizational_id_number = 89; // @gotags: msg:"14864,omitempty" type:"31,omitempty" // Contains the display name of the sender of the original message referenced by a report message. - optional string original_author_name = 91; // @gotags: msg:"7731,omitempty" + optional string original_author_name = 91; // @gotags: msg:"77,omitempty" type:"31,omitempty" // Contains the delivery time, in UTC, from the original message. - optional int64 original_delivery_time = 92; // @gotags: msg:"8564,omitempty" + optional int64 original_delivery_time = 92; // @gotags: msg:"85,omitempty" type:"64,omitempty" // Contains the value of the PidTagDisplayBcc property (section 2.674) from the original message. - optional string original_display_bcc = 93; // @gotags: msg:"11431,omitempty" + optional string original_display_bcc = 93; // @gotags: msg:"114,omitempty" type:"31,omitempty" // Contains the value of the PidTagDisplayCc property(section 2.675) from the original message. - optional string original_display_cc = 94; // @gotags: msg:"11531,omitempty" + optional string original_display_cc = 94; // @gotags: msg:"115,omitempty" type:"31,omitempty" // Contains the value of the PidTagDisplayTo property (section 2.678) from the original message. - optional string original_display_to = 95; // @gotags: msg:"11631,omitempty" + optional string original_display_to = 95; // @gotags: msg:"116,omitempty" type:"31,omitempty" // Designates the PidTagMessageClass property ([MS-OXCMSG] section 2.2.1.3) from the original message. - optional string original_message_class = 97; // @gotags: msg:"7531,omitempty" + optional string original_message_class = 97; // @gotags: msg:"75,omitempty" type:"31,omitempty" // Contains the value of the original message sender's PidTagSenderAddressType property (section 2.1000). - optional string original_sender_address_type = 98; // @gotags: msg:"10231,omitempty" + optional string original_sender_address_type = 98; // @gotags: msg:"102,omitempty" type:"31,omitempty" // Contains the value of the original message sender's PidTagSenderEmailAddress property (section 2.1001). - optional string original_sender_email_address = 99; // @gotags: msg:"10331,omitempty" + optional string original_sender_email_address = 99; // @gotags: msg:"103,omitempty" type:"31,omitempty" // Contains the value of the original message sender's PidTagSenderName property (section 2.1004), and is set on delivery report messages. - optional string original_sender_name = 101; // @gotags: msg:"9031,omitempty" + optional string original_sender_name = 101; // @gotags: msg:"90,omitempty" type:"31,omitempty" // Contains the sensitivity value of the original email message. - optional int32 original_sensitivity = 103; // @gotags: msg:"463,omitempty" + optional int32 original_sensitivity = 103; // @gotags: msg:"46,omitempty" type:"3,omitempty" // Contains the address type of the end user who is represented by the original email message sender. - optional string original_sent_representing_address_type = 104; // @gotags: msg:"10431,omitempty" + optional string original_sent_representing_address_type = 104; // @gotags: msg:"104,omitempty" type:"31,omitempty" // Contains the email address of the end user who is represented by the original email message sender. - optional string original_sent_representing_email_address = 105; // @gotags: msg:"10531,omitempty" + optional string original_sent_representing_email_address = 105; // @gotags: msg:"105,omitempty" type:"31,omitempty" // Contains the display name of the end user who is represented by the original email message sender. - optional string original_sent_representing_name = 107; // @gotags: msg:"9331,omitempty" + optional string original_sent_representing_name = 107; // @gotags: msg:"93,omitempty" type:"31,omitempty" // Specifies the subject of the original message. - optional string original_subject = 109; // @gotags: msg:"7331,omitempty" + optional string original_subject = 109; // @gotags: msg:"73,omitempty" type:"31,omitempty" // Specifies the original email message's submission date and time, in UTC. - optional int64 original_submit_time = 110; // @gotags: msg:"7864,omitempty" + optional int64 original_submit_time = 110; // @gotags: msg:"78,omitempty" type:"64,omitempty" // Indicates whether an email sender requests an email delivery receipt from the messaging system. - optional bool originator_delivery_report_requested = 111; // @gotags: msg:"3511,omitempty" + optional bool originator_delivery_report_requested = 111; // @gotags: msg:"35,omitempty" type:"11,omitempty" // Specifies whether an email sender requests suppression of nondelivery receipts. - optional bool originator_non_delivery_report_requested = 112; // @gotags: msg:"308011,omitempty" + optional bool originator_non_delivery_report_requested = 112; // @gotags: msg:"3080,omitempty" type:"11,omitempty" // Contains the name of the mail user's other locality, such as the town or city. - optional string other_address_city = 113; // @gotags: msg:"1494331,omitempty" + optional string other_address_city = 113; // @gotags: msg:"14943,omitempty" type:"31,omitempty" // Contains the name of the mail user's other country/region. - optional string other_address_country = 114; // @gotags: msg:"1494431,omitempty" + optional string other_address_country = 114; // @gotags: msg:"14944,omitempty" type:"31,omitempty" // Contains the postal code for the mail user's other postal address. - optional string other_address_postal_code = 115; // @gotags: msg:"1494531,omitempty" + optional string other_address_postal_code = 115; // @gotags: msg:"14945,omitempty" type:"31,omitempty" // Contains the number or identifier of the mail user's other post office box. - optional string other_address_post_office_box = 116; // @gotags: msg:"1494831,omitempty" + optional string other_address_post_office_box = 116; // @gotags: msg:"14948,omitempty" type:"31,omitempty" // Contains the name of the mail user's other state or province. - optional string other_address_state_or_province = 117; // @gotags: msg:"1494631,omitempty" + optional string other_address_state_or_province = 117; // @gotags: msg:"14946,omitempty" type:"31,omitempty" // Contains the mail user's other street address. - optional string other_address_street = 118; // @gotags: msg:"1494731,omitempty" + optional string other_address_street = 118; // @gotags: msg:"14947,omitempty" type:"31,omitempty" // Contains an alternate telephone number for the mail user. - optional string other_telephone_number = 119; // @gotags: msg:"1487931,omitempty" + optional string other_telephone_number = 119; // @gotags: msg:"14879,omitempty" type:"31,omitempty" // Contains the mail user's pager telephone number. - optional string pager_telephone_number = 120; // @gotags: msg:"1488131,omitempty" + optional string pager_telephone_number = 120; // @gotags: msg:"14881,omitempty" type:"31,omitempty" // Indicates the client's request for the priority with which the message is to be sent by the messaging system. - optional int32 priority = 122; // @gotags: msg:"383,omitempty" + optional int32 priority = 122; // @gotags: msg:"38,omitempty" type:"3,omitempty" // Specifies whether the email sender requests a read receipt from all recipients when this email message is read or opened. - optional bool read_receipt_requested = 123; // @gotags: msg:"4111,omitempty" + optional bool read_receipt_requested = 123; // @gotags: msg:"41,omitempty" type:"11,omitempty" // Contains the sent time for a message disposition notification, as specified in [RFC3798]. - optional int64 receipt_time = 124; // @gotags: msg:"4264,omitempty" + optional int64 receipt_time = 124; // @gotags: msg:"42,omitempty" type:"64,omitempty" // Contains the email message receiver's email address. - optional string received_by_email_address = 125; // @gotags: msg:"11831,omitempty" + optional string received_by_email_address = 125; // @gotags: msg:"118,omitempty" type:"31,omitempty" // Contains the email message receiver's display name. - optional string received_by_name = 127; // @gotags: msg:"6431,omitempty" + optional string received_by_name = 127; // @gotags: msg:"64,omitempty" type:"31,omitempty" // Contains the email address type for the end user represented by the receiving mailbox owner. - optional string received_representing_address_type = 129; // @gotags: msg:"11931,omitempty" + optional string received_representing_address_type = 129; // @gotags: msg:"119,omitempty" type:"31,omitempty" // Contains the email address for the end user represented by the receiving mailbox owner. - optional string received_representing_email_address = 130; // @gotags: msg:"12031,omitempty" + optional string received_representing_email_address = 130; // @gotags: msg:"120,omitempty" type:"31,omitempty" // Contains the display name for the end user represented by the receiving mailbox owner. - optional string received_representing_name = 132; // @gotags: msg:"6831,omitempty" + optional string received_representing_name = 132; // @gotags: msg:"68,omitempty" type:"31,omitempty" // Represents the recipient type of a recipient on the message. - optional int32 recipient_type = 134; // @gotags: msg:"30933,omitempty" + optional int32 recipient_type = 134; // @gotags: msg:"3093,omitempty" type:"3,omitempty" // Contains the value of the Remote-MTA field for a delivery status notification, as specified in [RFC3464]. - optional string remote_message_transfer_agent = 135; // @gotags: msg:"310531,omitempty" + optional string remote_message_transfer_agent = 135; // @gotags: msg:"3105,omitempty" type:"31,omitempty" // Indicates whether a reply is requested to a Message object. - optional bool reply_requested = 136; // @gotags: msg:"309511,omitempty" + optional bool reply_requested = 136; // @gotags: msg:"3095,omitempty" type:"11,omitempty" // Contains a string indicating whether the original message was displayed to the user or deleted (report messages only). - optional string report_disposition = 137; // @gotags: msg:"12831,omitempty" + optional string report_disposition = 137; // @gotags: msg:"128,omitempty" type:"31,omitempty" // Contains a description of the action that a client has performed on behalf of a user (report messages only). - optional string report_disposition_mode = 138; // @gotags: msg:"12931,omitempty" + optional string report_disposition_mode = 138; // @gotags: msg:"129,omitempty" type:"31,omitempty" // Contains the value of the Reporting-MTA field for a delivery status notification, as specified in [RFC3464]. - optional string reporting_message_transfer_agent = 139; // @gotags: msg:"2665631,omitempty" + optional string reporting_message_transfer_agent = 139; // @gotags: msg:"26656,omitempty" type:"31,omitempty" // Specifies the date, in UTC, after which a Message object is expired by the server. - optional int64 retention_date = 140; // @gotags: msg:"1231664,omitempty" + optional int64 retention_date = 140; // @gotags: msg:"12316,omitempty" type:"64,omitempty" // Contains flags that specify the status or nature of an item's retention tag or archive tag. - optional int32 retention_flags = 141; // @gotags: msg:"123173,omitempty" + optional int32 retention_flags = 141; // @gotags: msg:"12317,omitempty" type:"3,omitempty" // Specifies the number of days that a Message object can remain unarchived. - optional int32 retention_period = 142; // @gotags: msg:"123143,omitempty" + optional int32 retention_period = 142; // @gotags: msg:"12314,omitempty" type:"3,omitempty" // Indicates whether the PidTagBody property (section 2.618) and the PidTagRtfCompressed property (section 2.941) contain the same text (ignoring formatting). - optional bool rtf_in_sync = 144; // @gotags: msg:"361511,omitempty" + optional bool rtf_in_sync = 144; // @gotags: msg:"3615,omitempty" type:"11,omitempty" // Contains the email address type of the sending mailbox owner. - optional string sender_address_type = 145; // @gotags: msg:"310231,omitempty" + optional string sender_address_type = 145; // @gotags: msg:"3102,omitempty" type:"31,omitempty" // Contains the email address of the sending mailbox owner. - optional string sender_email_address = 146; // @gotags: msg:"310331,omitempty" + optional string sender_email_address = 146; // @gotags: msg:"3103,omitempty" type:"31,omitempty" // Reports the results of a Sender-ID check. - optional int32 sender_id_status = 148; // @gotags: msg:"165053,omitempty" + optional int32 sender_id_status = 148; // @gotags: msg:"16505,omitempty" type:"3,omitempty" // Contains the display name of the sending mailbox owner. - optional string sender_name = 149; // @gotags: msg:"309831,omitempty" + optional string sender_name = 149; // @gotags: msg:"3098,omitempty" type:"31,omitempty" // Contains a bitmask of message encoding preferences for email sent to an email-enabled entity that is represented by this Address Book object. - optional int32 send_internet_encoding = 151; // @gotags: msg:"149613,omitempty" + optional int32 send_internet_encoding = 151; // @gotags: msg:"14961,omitempty" type:"3,omitempty" // Indicates whether the email-enabled entity represented by the Address Book object can receive all message content, including Rich Text Format (RTF) and other embedded objects. - optional bool send_rich_info = 152; // @gotags: msg:"1491211,omitempty" + optional bool send_rich_info = 152; // @gotags: msg:"14912,omitempty" type:"11,omitempty" // Indicates the sender's assessment of the sensitivity of the Message object. - optional int32 sensitivity = 153; // @gotags: msg:"543,omitempty" + optional int32 sensitivity = 153; // @gotags: msg:"54,omitempty" type:"3,omitempty" // Contains an email address type. - optional string sent_representing_address_type = 154; // @gotags: msg:"10031,omitempty" + optional string sent_representing_address_type = 154; // @gotags: msg:"100,omitempty" type:"31,omitempty" // Contains an email address for the end user who is represented by the sending mailbox owner. - optional string sent_representing_email_address = 155; // @gotags: msg:"10131,omitempty" + optional string sent_representing_email_address = 155; // @gotags: msg:"101,omitempty" type:"31,omitempty" // Contains the display name for the end user who is represented by the sending mailbox owner. - optional string sent_representing_name = 157; // @gotags: msg:"6631,omitempty" + optional string sent_representing_name = 157; // @gotags: msg:"66,omitempty" type:"31,omitempty" // Contains the SMTP address of the Message object. - optional string smtp_address = 159; // @gotags: msg:"1484631,omitempty" + optional string smtp_address = 159; // @gotags: msg:"14846,omitempty" type:"31,omitempty" // Contains the subject of the email message. - optional string subject = 161; // @gotags: msg:"5531,omitempty" + optional string subject = 161; // @gotags: msg:"55,omitempty" type:"31,omitempty" // Contains the prefix for the subject of the message. - optional string subject_prefix = 162; // @gotags: msg:"6131,omitempty" + optional string subject_prefix = 162; // @gotags: msg:"61,omitempty" type:"31,omitempty" // Contains supplementary information about a delivery status notification, as specified in [RFC3464]. - optional string supplementary_info = 163; // @gotags: msg:"309931,omitempty" + optional string supplementary_info = 163; // @gotags: msg:"3099,omitempty" type:"31,omitempty" // Contains an Address Book object's display name that is transmitted with the message. - optional string transmittable_display_name = 164; // @gotags: msg:"1488031,omitempty" + optional string transmittable_display_name = 164; // @gotags: msg:"14880,omitempty" type:"31,omitempty" // Contains transport-specific message envelope information for email. - optional string transport_message_headers = 165; // @gotags: msg:"12531,omitempty" + optional string transport_message_headers = 165; // @gotags: msg:"125,omitempty" type:"31,omitempty" } diff --git a/cmd/properties/protobufs/note.proto b/cmd/properties/protobufs/note.proto index e68b8f6..9653234 100644 --- a/cmd/properties/protobufs/note.proto +++ b/cmd/properties/protobufs/note.proto @@ -21,13 +21,13 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Note { // Specifies the suggested background color of the Note object. - optional int32 note_color = 1; // @gotags: msg:"2734083,omitempty" + optional int32 note_color = 1; // @gotags: msg:"273408,omitempty" type:"3,omitempty" // Specifies the height of the visible message window in pixels. - optional int32 note_height = 2; // @gotags: msg:"2734113,omitempty" + optional int32 note_height = 2; // @gotags: msg:"273411,omitempty" type:"3,omitempty" // Specifies the width of the visible message window in pixels. - optional int32 note_width = 3; // @gotags: msg:"2734103,omitempty" + optional int32 note_width = 3; // @gotags: msg:"273410,omitempty" type:"3,omitempty" // Specifies the distance, in pixels, from the left edge of the screen that a user interface displays a Note object. - optional int32 note_x = 4; // @gotags: msg:"2734123,omitempty" + optional int32 note_x = 4; // @gotags: msg:"273412,omitempty" type:"3,omitempty" // Specifies the distance, in pixels, from the top edge of the screen that a user interface displays a Note object. - optional int32 note_y = 5; // @gotags: msg:"2734133,omitempty" + optional int32 note_y = 5; // @gotags: msg:"273413,omitempty" type:"3,omitempty" } diff --git a/cmd/properties/protobufs/rss.proto b/cmd/properties/protobufs/rss.proto index 099cb03..07aebfe 100644 --- a/cmd/properties/protobufs/rss.proto +++ b/cmd/properties/protobufs/rss.proto @@ -21,17 +21,17 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message RSS { // Contains the contents of the title field from the XML of the Atom feed or RSS channel. - optional string post_rss_channel = 1; // @gotags: msg:"27136431,omitempty" + optional string post_rss_channel = 1; // @gotags: msg:"271364,omitempty" type:"31,omitempty" // Contains the URL of the RSS or Atom feed from which the XML file came. - optional string post_rss_channel_link = 2; // @gotags: msg:"27136031,omitempty" + optional string post_rss_channel_link = 2; // @gotags: msg:"271360,omitempty" type:"31,omitempty" // Contains a unique identifier for the RSS object. - optional string post_rss_item_guid = 3; // @gotags: msg:"27136331,omitempty" + optional string post_rss_item_guid = 3; // @gotags: msg:"271363,omitempty" type:"31,omitempty" // Contains a hash of the feed XML computed by using an implementation-dependent algorithm. - optional int32 post_rss_item_hash = 4; // @gotags: msg:"2713623,omitempty" + optional int32 post_rss_item_hash = 4; // @gotags: msg:"271362,omitempty" type:"3,omitempty" // Contains the URL of the link from an RSS or Atom item. - optional string post_rss_item_link = 5; // @gotags: msg:"27136131,omitempty" + optional string post_rss_item_link = 5; // @gotags: msg:"271361,omitempty" type:"31,omitempty" // Contains the item element and all of its sub-elements from an RSS feed, or the entry element and all of its sub-elements from an Atom feed. - optional string post_rss_item_xml = 6; // @gotags: msg:"27136531,omitempty" + optional string post_rss_item_xml = 6; // @gotags: msg:"271365,omitempty" type:"31,omitempty" // Contains the user's preferred name for the RSS or Atom subscription. - optional string post_rss_subscription = 7; // @gotags: msg:"27136631,omitempty" + optional string post_rss_subscription = 7; // @gotags: msg:"271366,omitempty" type:"31,omitempty" } diff --git a/cmd/properties/protobufs/sharing.proto b/cmd/properties/protobufs/sharing.proto index 10ca897..902ff8c 100644 --- a/cmd/properties/protobufs/sharing.proto +++ b/cmd/properties/protobufs/sharing.proto @@ -21,115 +21,115 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Sharing { // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_anonymity = 1; // @gotags: msg:"2724253,omitempty" + optional int32 sharing_anonymity = 1; // @gotags: msg:"272425,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_browse_url = 3; // @gotags: msg:"27254531,omitempty" + optional string sharing_browse_url = 3; // @gotags: msg:"272545,omitempty" type:"31,omitempty" // Indicates that the Message object relates to a special folder. - optional int32 sharing_capabilities = 4; // @gotags: msg:"2724233,omitempty" + optional int32 sharing_capabilities = 4; // @gotags: msg:"272423,omitempty" type:"3,omitempty" // Contains a zero-length string. - optional string sharing_configuration_url = 5; // @gotags: msg:"27245231,omitempty" + optional string sharing_configuration_url = 5; // @gotags: msg:"272452,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_data_range_end = 6; // @gotags: msg:"27251764,omitempty" + optional int64 sharing_data_range_end = 6; // @gotags: msg:"272517,omitempty" type:"64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_data_range_start = 7; // @gotags: msg:"27251664,omitempty" + optional int64 sharing_data_range_start = 7; // @gotags: msg:"272516,omitempty" type:"64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_detail = 8; // @gotags: msg:"2724593,omitempty" + optional int32 sharing_detail = 8; // @gotags: msg:"272459,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_extension_xml = 9; // @gotags: msg:"27244931,omitempty" + optional string sharing_extension_xml = 9; // @gotags: msg:"272449,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_flags = 11; // @gotags: msg:"2723943,omitempty" + optional int32 sharing_flags = 11; // @gotags: msg:"272394,omitempty" type:"3,omitempty" // Indicates the type of Sharing Message object. - optional int32 sharing_flavor = 12; // @gotags: msg:"2724243,omitempty" + optional int32 sharing_flavor = 12; // @gotags: msg:"272424,omitempty" type:"3,omitempty" // Contains the value of the PidTagDisplayName property (section 2.676) from the Address Book object identified by the PidLidSharingInitiatorEntryId property (section 2.248). - optional string sharing_initiator_name = 16; // @gotags: msg:"27239131,omitempty" + optional string sharing_initiator_name = 16; // @gotags: msg:"272391,omitempty" type:"31,omitempty" // Contains the value of the PidTagSmtpAddress property (section 2.1020) from the Address Book object identified by the PidLidSharingInitiatorEntryId property (section 2.248). - optional string sharing_initiator_smtp = 17; // @gotags: msg:"27239231,omitempty" + optional string sharing_initiator_smtp = 17; // @gotags: msg:"272392,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_last_auto_sync_time = 19; // @gotags: msg:"27254964,omitempty" + optional int64 sharing_last_auto_sync_time = 19; // @gotags: msg:"272549,omitempty" type:"64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_last_sync_time = 20; // @gotags: msg:"27243164,omitempty" + optional int64 sharing_last_sync_time = 20; // @gotags: msg:"272431,omitempty" type:"64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_local_comment = 21; // @gotags: msg:"27252531,omitempty" + optional string sharing_local_comment = 21; // @gotags: msg:"272525,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_local_last_modification_time = 22; // @gotags: msg:"27245164,omitempty" + optional int64 sharing_local_last_modification_time = 22; // @gotags: msg:"272451,omitempty" type:"64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_local_name = 23; // @gotags: msg:"27239931,omitempty" + optional string sharing_local_name = 23; // @gotags: msg:"272399,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_local_path = 24; // @gotags: msg:"27239831,omitempty" + optional string sharing_local_path = 24; // @gotags: msg:"272398,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_local_store_uid = 25; // @gotags: msg:"27252131,omitempty" + optional string sharing_local_store_uid = 25; // @gotags: msg:"272521,omitempty" type:"31,omitempty" // Contains the value of the PidTagContainerClass property (section 2.642) of the folder being shared. - optional string sharing_local_type = 26; // @gotags: msg:"27242031,omitempty" + optional string sharing_local_type = 26; // @gotags: msg:"272420,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_local_uid = 27; // @gotags: msg:"27241631,omitempty" + optional string sharing_local_uid = 27; // @gotags: msg:"272416,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_participants = 30; // @gotags: msg:"27243031,omitempty" + optional string sharing_participants = 30; // @gotags: msg:"272430,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_permissions = 31; // @gotags: msg:"2724273,omitempty" + optional int32 sharing_permissions = 31; // @gotags: msg:"272427,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_provider_extension = 32; // @gotags: msg:"27239531,omitempty" + optional string sharing_provider_extension = 32; // @gotags: msg:"272395,omitempty" type:"31,omitempty" // Contains a user-displayable name of the sharing provider identified by the PidLidSharingProviderGuid property (section 2.266). - optional string sharing_provider_name = 34; // @gotags: msg:"27238631,omitempty" + optional string sharing_provider_name = 34; // @gotags: msg:"272386,omitempty" type:"31,omitempty" // Contains a URL related to the sharing provider identified by the PidLidSharingProviderGuid property (section 2.266). - optional string sharing_provider_url = 35; // @gotags: msg:"27238731,omitempty" + optional string sharing_provider_url = 35; // @gotags: msg:"272387,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_range_end = 36; // @gotags: msg:"2725193,omitempty" + optional int32 sharing_range_end = 36; // @gotags: msg:"272519,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_range_start = 37; // @gotags: msg:"2725183,omitempty" + optional int32 sharing_range_start = 37; // @gotags: msg:"272518,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_reciprocation = 38; // @gotags: msg:"2724263,omitempty" + optional int32 sharing_reciprocation = 38; // @gotags: msg:"272426,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_remote_byte_size = 39; // @gotags: msg:"2725233,omitempty" + optional int32 sharing_remote_byte_size = 39; // @gotags: msg:"272523,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_remote_comment = 40; // @gotags: msg:"27246331,omitempty" + optional string sharing_remote_comment = 40; // @gotags: msg:"272463,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_remote_crc = 41; // @gotags: msg:"2725243,omitempty" + optional int32 sharing_remote_crc = 41; // @gotags: msg:"272524,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_remote_last_modification_time = 42; // @gotags: msg:"27245064,omitempty" + optional int64 sharing_remote_last_modification_time = 42; // @gotags: msg:"272450,omitempty" type:"64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_remote_message_count = 43; // @gotags: msg:"2725273,omitempty" + optional int32 sharing_remote_message_count = 43; // @gotags: msg:"272527,omitempty" type:"3,omitempty" // Contains the value of the PidTagDisplayName property (section 2.676) on the folder being shared. - optional string sharing_remote_name = 44; // @gotags: msg:"27238931,omitempty" + optional string sharing_remote_name = 44; // @gotags: msg:"272389,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_remote_pass = 45; // @gotags: msg:"27239731,omitempty" + optional string sharing_remote_pass = 45; // @gotags: msg:"272397,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_remote_path = 46; // @gotags: msg:"27238831,omitempty" + optional string sharing_remote_path = 46; // @gotags: msg:"272388,omitempty" type:"31,omitempty" // Contains a hexadecimal string representation of the value of the PidTagStoreEntryId property (section 2.1028) on the folder being shared. - optional string sharing_remote_store_uid = 47; // @gotags: msg:"27252031,omitempty" + optional string sharing_remote_store_uid = 47; // @gotags: msg:"272520,omitempty" type:"31,omitempty" // Contains the same value as the PidLidSharingLocalType property (section 2.259). - optional string sharing_remote_type = 48; // @gotags: msg:"27242931,omitempty" + optional string sharing_remote_type = 48; // @gotags: msg:"272429,omitempty" type:"31,omitempty" // Contains the EntryID of the folder being shared. - optional string sharing_remote_uid = 49; // @gotags: msg:"27239031,omitempty" + optional string sharing_remote_uid = 49; // @gotags: msg:"272390,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_remote_user = 50; // @gotags: msg:"27239631,omitempty" + optional string sharing_remote_user = 50; // @gotags: msg:"272396,omitempty" type:"31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_remote_version = 51; // @gotags: msg:"27255531,omitempty" + optional string sharing_remote_version = 51; // @gotags: msg:"272555,omitempty" type:"31,omitempty" // Contains the time at which the recipient of the sharing request sent a sharing response. - optional int64 sharing_response_time = 52; // @gotags: msg:"27245664,omitempty" + optional int64 sharing_response_time = 52; // @gotags: msg:"272456,omitempty" type:"64,omitempty" // Contains the type of response with which the recipient of the sharing request responded. - optional int32 sharing_response_type = 53; // @gotags: msg:"2724553,omitempty" + optional int32 sharing_response_type = 53; // @gotags: msg:"272455,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_roam_log = 54; // @gotags: msg:"2725263,omitempty" + optional int32 sharing_roam_log = 54; // @gotags: msg:"272526,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_start = 55; // @gotags: msg:"27245364,omitempty" + optional int64 sharing_start = 55; // @gotags: msg:"272453,omitempty" type:"64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_status = 56; // @gotags: msg:"2723843,omitempty" + optional int32 sharing_status = 56; // @gotags: msg:"272384,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_stop = 57; // @gotags: msg:"27245464,omitempty" + optional int64 sharing_stop = 57; // @gotags: msg:"272454,omitempty" type:"64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_sync_flags = 58; // @gotags: msg:"2725763,omitempty" + optional int32 sharing_sync_flags = 58; // @gotags: msg:"272576,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_sync_interval = 59; // @gotags: msg:"2724583,omitempty" + optional int32 sharing_sync_interval = 59; // @gotags: msg:"272458,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_time_to_live = 60; // @gotags: msg:"2724603,omitempty" + optional int32 sharing_time_to_live = 60; // @gotags: msg:"272460,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_time_to_live_auto = 61; // @gotags: msg:"2725503,omitempty" + optional int32 sharing_time_to_live_auto = 61; // @gotags: msg:"272550,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_working_hours_days = 62; // @gotags: msg:"2725143,omitempty" + optional int32 sharing_working_hours_days = 62; // @gotags: msg:"272514,omitempty" type:"3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_working_hours_end = 63; // @gotags: msg:"27251364,omitempty" + optional int64 sharing_working_hours_end = 63; // @gotags: msg:"272513,omitempty" type:"64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_working_hours_start = 64; // @gotags: msg:"27251264,omitempty" + optional int64 sharing_working_hours_start = 64; // @gotags: msg:"272512,omitempty" type:"64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. optional string x_sharing_browse_url = 66; // Contains a string representation of the value of the PidLidSharingCapabilities property (section 2.237). diff --git a/cmd/properties/protobufs/spam.proto b/cmd/properties/protobufs/spam.proto index 6ea313d..a5772bc 100644 --- a/cmd/properties/protobufs/spam.proto +++ b/cmd/properties/protobufs/spam.proto @@ -21,13 +21,13 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Spam { // Indicates whether email recipients are to be added to the safe senders list. - optional int32 junk_add_recipients_to_safe_senders_list = 2; // @gotags: msg:"248353,omitempty" + optional int32 junk_add_recipients_to_safe_senders_list = 2; // @gotags: msg:"24835,omitempty" type:"3,omitempty" // Indicates whether email addresses of the contacts in the Contacts folder are treated in a special way with respect to the spam filter. - optional int32 junk_include_contacts = 3; // @gotags: msg:"248323,omitempty" + optional int32 junk_include_contacts = 3; // @gotags: msg:"24832,omitempty" type:"3,omitempty" // Indicates whether messages identified as spam can be permanently deleted. - optional int32 junk_permanently_delete = 4; // @gotags: msg:"248343,omitempty" + optional int32 junk_permanently_delete = 4; // @gotags: msg:"24834,omitempty" type:"3,omitempty" // Indicated whether the phishing stamp on a message is to be ignored. - optional bool junk_phishing_enable_links = 5; // @gotags: msg:"2483911,omitempty" + optional bool junk_phishing_enable_links = 5; // @gotags: msg:"24839,omitempty" type:"11,omitempty" // Indicates how aggressively incoming email is to be sent to the Junk Email folder. - optional int32 junk_threshold = 6; // @gotags: msg:"248333,omitempty" + optional int32 junk_threshold = 6; // @gotags: msg:"24833,omitempty" type:"3,omitempty" } diff --git a/cmd/properties/protobufs/task.proto b/cmd/properties/protobufs/task.proto index ae09a59..002c652 100644 --- a/cmd/properties/protobufs/task.proto +++ b/cmd/properties/protobufs/task.proto @@ -21,81 +21,81 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Task { // Contains an index identifying one of a set of pre-defined text strings to be associated with the flag. - optional int32 flag_string = 1; // @gotags: msg:"2676483,omitempty" + optional int32 flag_string = 1; // @gotags: msg:"267648,omitempty" type:"3,omitempty" // Indicates whether a time-flagged Message object is complete. - optional double percent_complete = 3; // @gotags: msg:"2631705,omitempty" + optional double percent_complete = 3; // @gotags: msg:"263170,omitempty" type:"5,omitempty" // Indicates the acceptance state of the task. - optional int32 task_acceptance_state = 4; // @gotags: msg:"2632423,omitempty" + optional int32 task_acceptance_state = 4; // @gotags: msg:"263242,omitempty" type:"3,omitempty" // Indicates whether a task assignee has replied to a task request for this Task object. - optional bool task_accepted = 5; // @gotags: msg:"26317611,omitempty" + optional bool task_accepted = 5; // @gotags: msg:"263176,omitempty" type:"11,omitempty" // Indicates the number of minutes that the user actually spent working on a task. - optional int32 task_actual_effort = 6; // @gotags: msg:"2632003,omitempty" + optional int32 task_actual_effort = 6; // @gotags: msg:"263200,omitempty" type:"3,omitempty" // Specifies the name of the user that last assigned the task. - optional string task_assigner = 7; // @gotags: msg:"26323331,omitempty" + optional string task_assigner = 7; // @gotags: msg:"263233,omitempty" type:"31,omitempty" // Indicates that the task is complete. - optional bool task_complete = 9; // @gotags: msg:"26321211,omitempty" + optional bool task_complete = 9; // @gotags: msg:"263212,omitempty" type:"11,omitempty" // The client can set this property, but it has no impact on the Task-Related Objects Protocol and is ignored by the server. - optional int32 task_custom_flags = 10; // @gotags: msg:"2632733,omitempty" + optional int32 task_custom_flags = 10; // @gotags: msg:"263273,omitempty" type:"3,omitempty" // Specifies the date when the user completed work on the task. - optional int64 task_date_completed = 11; // @gotags: msg:"26318364,omitempty" + optional int64 task_date_completed = 11; // @gotags: msg:"263183,omitempty" type:"64,omitempty" // Indicates whether new occurrences remain to be generated. - optional bool task_dead_occurrence = 12; // @gotags: msg:"26317711,omitempty" + optional bool task_dead_occurrence = 12; // @gotags: msg:"263177,omitempty" type:"11,omitempty" // Specifies the date by which the user expects work on the task to be complete. - optional int64 task_due_date = 13; // @gotags: msg:"26317364,omitempty" + optional int64 task_due_date = 13; // @gotags: msg:"263173,omitempty" type:"64,omitempty" // Indicates the number of minutes that the user expects to work on a task. - optional int32 task_estimated_effort = 14; // @gotags: msg:"2632013,omitempty" + optional int32 task_estimated_effort = 14; // @gotags: msg:"263201,omitempty" type:"3,omitempty" // Indicates that the Task object was originally created by the action of the current user or user agent instead of by the processing of a task request. - optional bool taskf_creator = 15; // @gotags: msg:"26321411,omitempty" + optional bool taskf_creator = 15; // @gotags: msg:"263214,omitempty" type:"11,omitempty" // Indicates the accuracy of the PidLidTaskOwner property (section 2.328). - optional bool taskf_fix_offline = 16; // @gotags: msg:"26324411,omitempty" + optional bool taskf_fix_offline = 16; // @gotags: msg:"263244,omitempty" type:"11,omitempty" // Indicates whether the task includes a recurrence pattern. - optional bool taskf_recurring = 17; // @gotags: msg:"26323811,omitempty" + optional bool taskf_recurring = 17; // @gotags: msg:"263238,omitempty" type:"11,omitempty" // Indicates the type of change that was last made to the Task object. - optional int32 task_history = 19; // @gotags: msg:"2632103,omitempty" + optional int32 task_history = 19; // @gotags: msg:"263210,omitempty" type:"3,omitempty" // Contains the name of the user who most recently assigned the task, or the user to whom it was most recently assigned. - optional string task_last_delegate = 20; // @gotags: msg:"26323731,omitempty" + optional string task_last_delegate = 20; // @gotags: msg:"263237,omitempty" type:"31,omitempty" // Contains the date and time of the most recent change made to the Task object. - optional int64 task_last_update = 21; // @gotags: msg:"26320564,omitempty" + optional int64 task_last_update = 21; // @gotags: msg:"263205,omitempty" type:"64,omitempty" // Contains the name of the most recent user to have been the owner of the task. - optional string task_last_user = 22; // @gotags: msg:"26323431,omitempty" + optional string task_last_user = 22; // @gotags: msg:"263234,omitempty" type:"31,omitempty" // Specifies the assignment status of the embedded Task object. - optional int32 task_mode = 23; // @gotags: msg:"2673043,omitempty" + optional int32 task_mode = 23; // @gotags: msg:"267304,omitempty" type:"3,omitempty" // Provides optimization hints about the recipients of a Task object. - optional int32 task_multiple_recipients = 24; // @gotags: msg:"2632323,omitempty" + optional int32 task_multiple_recipients = 24; // @gotags: msg:"263232,omitempty" type:"3,omitempty" // Not used. The client can set this property, but it has no impact on the Task-Related Objects Protocol and is ignored by the server. - optional bool task_no_compute = 25; // @gotags: msg:"26323611,omitempty" + optional bool task_no_compute = 25; // @gotags: msg:"263236,omitempty" type:"11,omitempty" // Provides an aid to custom sorting of Task objects. - optional int32 task_ordinal = 26; // @gotags: msg:"2632353,omitempty" + optional int32 task_ordinal = 26; // @gotags: msg:"263235,omitempty" type:"3,omitempty" // Contains the name of the owner of the task. - optional string task_owner = 27; // @gotags: msg:"26321531,omitempty" + optional string task_owner = 27; // @gotags: msg:"263215,omitempty" type:"31,omitempty" // Indicates the role of the current user relative to the Task object. - optional int32 task_ownership = 28; // @gotags: msg:"2632413,omitempty" + optional int32 task_ownership = 28; // @gotags: msg:"263241,omitempty" type:"3,omitempty" // Indicates whether future instances of recurring tasks need reminders, even though the value of the PidLidReminderSet property (section 2.222) is 0x00. - optional bool task_reset_reminder = 30; // @gotags: msg:"26317511,omitempty" + optional bool task_reset_reminder = 30; // @gotags: msg:"263175,omitempty" type:"11,omitempty" // Not used. The client can set this property, but it has no impact on the Task-Related Objects Protocol and is ignored by the server. - optional string task_role = 31; // @gotags: msg:"26323931,omitempty" + optional string task_role = 31; // @gotags: msg:"263239,omitempty" type:"31,omitempty" // Specifies the date on which the user expects work on the task to begin. - optional int64 task_start_date = 32; // @gotags: msg:"26317264,omitempty" + optional int64 task_start_date = 32; // @gotags: msg:"263172,omitempty" type:"64,omitempty" // Indicates the current assignment state of the Task object. - optional int32 task_state = 33; // @gotags: msg:"2632033,omitempty" + optional int32 task_state = 33; // @gotags: msg:"263203,omitempty" type:"3,omitempty" // Specifies the status of a task. - optional int32 task_status = 34; // @gotags: msg:"2631693,omitempty" + optional int32 task_status = 34; // @gotags: msg:"263169,omitempty" type:"3,omitempty" // Indicates whether the task assignee has been requested to send an email message update upon completion of the assigned task. - optional bool task_status_on_complete = 35; // @gotags: msg:"26320911,omitempty" + optional bool task_status_on_complete = 35; // @gotags: msg:"263209,omitempty" type:"11,omitempty" // Indicates whether the task assignee has been requested to send a task update when the assigned Task object changes. - optional bool task_updates = 36; // @gotags: msg:"26321111,omitempty" + optional bool task_updates = 36; // @gotags: msg:"263211,omitempty" type:"11,omitempty" // Indicates which copy is the latest update of a Task object. - optional int32 task_version = 37; // @gotags: msg:"2632023,omitempty" + optional int32 task_version = 37; // @gotags: msg:"263202,omitempty" type:"3,omitempty" // This property is set by the client but is ignored by the server. - optional bool team_task = 38; // @gotags: msg:"26317111,omitempty" + optional bool team_task = 38; // @gotags: msg:"263171,omitempty" type:"11,omitempty" // Contains the current time, in UTC, which is used to determine the sort order of objects in a consolidated to-do list. - optional int64 to_do_ordinal_date = 39; // @gotags: msg:"26758464,omitempty" + optional int64 to_do_ordinal_date = 39; // @gotags: msg:"267584,omitempty" type:"64,omitempty" // Contains the numerals 0 through 9 that are used to break a tie when the PidLidToDoOrdinalDate property (section 2.344) is used to perform a sort of objects. - optional string to_do_sub_ordinal = 40; // @gotags: msg:"26758531,omitempty" + optional string to_do_sub_ordinal = 40; // @gotags: msg:"267585,omitempty" type:"31,omitempty" // Contains user-specifiable text to identify this Message object in a consolidated to-do list. - optional string to_do_title = 41; // @gotags: msg:"26758831,omitempty" + optional string to_do_title = 41; // @gotags: msg:"267588,omitempty" type:"31,omitempty" // Contains the value of the PidTagMessageDeliveryTime property (section 2.789) when modifying the PidLidFlagRequest property (section 2.136). - optional int64 valid_flag_string_proof = 42; // @gotags: msg:"26763164,omitempty" + optional int64 valid_flag_string_proof = 42; // @gotags: msg:"267631,omitempty" type:"64,omitempty" // Contains a positive number whose negative is less than or equal to the value of the PidLidTaskOrdinal property (section 2.327) of all of the Task objects in the folder. - optional int32 ordinal_most = 43; // @gotags: msg:"140503,omitempty" + optional int32 ordinal_most = 43; // @gotags: msg:"14050,omitempty" type:"3,omitempty" } diff --git a/cmd/properties/protobufs/voicemail.proto b/cmd/properties/protobufs/voicemail.proto index f2e18cf..2785e0a 100644 --- a/cmd/properties/protobufs/voicemail.proto +++ b/cmd/properties/protobufs/voicemail.proto @@ -37,15 +37,15 @@ message Voicemail { // Contains the name of the caller who left the attached voice message, as provided by the voice network's caller ID system. optional string x_voice_message_sender_name = 9; // Contains a unique identifier associated with the phone call. - optional string call_id = 10; // @gotags: msg:"2663031,omitempty" + optional string call_id = 10; // @gotags: msg:"26630,omitempty" type:"31,omitempty" // Contains the number of pages in a Fax object. - optional int32 fax_number_of_pages = 11; // @gotags: msg:"266283,omitempty" + optional int32 fax_number_of_pages = 11; // @gotags: msg:"26628,omitempty" type:"3,omitempty" // Contains the telephone number of the caller associated with a voice mail message. - optional string sender_telephone_number = 12; // @gotags: msg:"2662631,omitempty" + optional string sender_telephone_number = 12; // @gotags: msg:"26626,omitempty" type:"31,omitempty" // Contains a list of file names for the audio file attachments that are to be played as part of a message. - optional string voice_message_attachment_order = 13; // @gotags: msg:"2662931,omitempty" + optional string voice_message_attachment_order = 13; // @gotags: msg:"26629,omitempty" type:"31,omitempty" // Specifies the length of the attached audio message, in seconds. - optional int32 voice_message_duration = 14; // @gotags: msg:"266253,omitempty" + optional int32 voice_message_duration = 14; // @gotags: msg:"26625,omitempty" type:"3,omitempty" // Specifies the name of the caller who left the attached voice message, as provided by the voice network's caller ID system. - optional string voice_message_sender_name = 15; // @gotags: msg:"2662731,omitempty" + optional string voice_message_sender_name = 15; // @gotags: msg:"26627,omitempty" type:"31,omitempty" } diff --git a/pkg/properties/address_book.pb.go b/pkg/properties/address_book.pb.go index ab592e7..b9c668a 100644 --- a/pkg/properties/address_book.pb.go +++ b/pkg/properties/address_book.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: address_book.proto package properties @@ -44,95 +44,95 @@ type AddressBook struct { unknownFields protoimpl.UnknownFields // Contains the alias of an Address Book object, which is an alternative name by which the object can be identified. - Account *string `protobuf:"bytes,1,opt,name=account,proto3,oneof" json:"account,omitempty" msg:"1484831,omitempty"` + Account *string `protobuf:"bytes,1,opt,name=account,proto3,oneof" json:"account,omitempty" msg:"14848,omitempty" type:"31,omitempty"` // Contains the ID of a container on an NSPI server. - AddressBookContainerId *int32 `protobuf:"varint,3,opt,name=address_book_container_id,json=addressBookContainerId,proto3,oneof" json:"address_book_container_id,omitempty" msg:"655333,omitempty"` + AddressBookContainerId *int32 `protobuf:"varint,3,opt,name=address_book_container_id,json=addressBookContainerId,proto3,oneof" json:"address_book_container_id,omitempty" msg:"65533,omitempty" type:"3,omitempty"` // Specifies the maximum size, in bytes, of a message that a recipient can receive. - AddressBookDeliveryContentLength *int32 `protobuf:"varint,4,opt,name=address_book_delivery_content_length,json=addressBookDeliveryContentLength,proto3,oneof" json:"address_book_delivery_content_length,omitempty" msg:"328743,omitempty"` + AddressBookDeliveryContentLength *int32 `protobuf:"varint,4,opt,name=address_book_delivery_content_length,json=addressBookDeliveryContentLength,proto3,oneof" json:"address_book_delivery_content_length,omitempty" msg:"32874,omitempty" type:"3,omitempty"` // Contains the printable string version of the display name. - AddressBookDisplayNamePrintable *string `protobuf:"bytes,5,opt,name=address_book_display_name_printable,json=addressBookDisplayNamePrintable,proto3,oneof" json:"address_book_display_name_printable,omitempty" msg:"1484731,omitempty"` + AddressBookDisplayNamePrintable *string `protobuf:"bytes,5,opt,name=address_book_display_name_printable,json=addressBookDisplayNamePrintable,proto3,oneof" json:"address_book_display_name_printable,omitempty" msg:"14847,omitempty" type:"31,omitempty"` // Contains a value that indicates how to display an Address Book object in a table or as a recipient on a message. - AddressBookDisplayTypeExtended *int32 `protobuf:"varint,6,opt,name=address_book_display_type_extended,json=addressBookDisplayTypeExtended,proto3,oneof" json:"address_book_display_type_extended,omitempty" msg:"359873,omitempty"` + AddressBookDisplayTypeExtended *int32 `protobuf:"varint,6,opt,name=address_book_display_type_extended,json=addressBookDisplayTypeExtended,proto3,oneof" json:"address_book_display_type_extended,omitempty" msg:"35987,omitempty" type:"3,omitempty"` // Contains the number of external recipients in the distribution list. - AddressBookDistributionListExternalMemberCount *int32 `protobuf:"varint,7,opt,name=address_book_distribution_list_external_member_count,json=addressBookDistributionListExternalMemberCount,proto3,oneof" json:"address_book_distribution_list_external_member_count,omitempty" msg:"360673,omitempty"` + AddressBookDistributionListExternalMemberCount *int32 `protobuf:"varint,7,opt,name=address_book_distribution_list_external_member_count,json=addressBookDistributionListExternalMemberCount,proto3,oneof" json:"address_book_distribution_list_external_member_count,omitempty" msg:"36067,omitempty" type:"3,omitempty"` // Contains the total number of recipients in the distribution list. - AddressBookDistributionListMemberCount *int32 `protobuf:"varint,8,opt,name=address_book_distribution_list_member_count,json=addressBookDistributionListMemberCount,proto3,oneof" json:"address_book_distribution_list_member_count,omitempty" msg:"360663,omitempty"` + AddressBookDistributionListMemberCount *int32 `protobuf:"varint,8,opt,name=address_book_distribution_list_member_count,json=addressBookDistributionListMemberCount,proto3,oneof" json:"address_book_distribution_list_member_count,omitempty" msg:"36066,omitempty" type:"3,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute1 *string `protobuf:"bytes,12,opt,name=address_book_extension_attribute1,json=addressBookExtensionAttribute1,proto3,oneof" json:"address_book_extension_attribute1,omitempty" msg:"3281331,omitempty"` + AddressBookExtensionAttribute1 *string `protobuf:"bytes,12,opt,name=address_book_extension_attribute1,json=addressBookExtensionAttribute1,proto3,oneof" json:"address_book_extension_attribute1,omitempty" msg:"32813,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute10 *string `protobuf:"bytes,13,opt,name=address_book_extension_attribute10,json=addressBookExtensionAttribute10,proto3,oneof" json:"address_book_extension_attribute10,omitempty" msg:"3282231,omitempty"` + AddressBookExtensionAttribute10 *string `protobuf:"bytes,13,opt,name=address_book_extension_attribute10,json=addressBookExtensionAttribute10,proto3,oneof" json:"address_book_extension_attribute10,omitempty" msg:"32822,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute11 *string `protobuf:"bytes,14,opt,name=address_book_extension_attribute11,json=addressBookExtensionAttribute11,proto3,oneof" json:"address_book_extension_attribute11,omitempty" msg:"3592731,omitempty"` + AddressBookExtensionAttribute11 *string `protobuf:"bytes,14,opt,name=address_book_extension_attribute11,json=addressBookExtensionAttribute11,proto3,oneof" json:"address_book_extension_attribute11,omitempty" msg:"35927,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute12 *string `protobuf:"bytes,15,opt,name=address_book_extension_attribute12,json=addressBookExtensionAttribute12,proto3,oneof" json:"address_book_extension_attribute12,omitempty" msg:"3592831,omitempty"` + AddressBookExtensionAttribute12 *string `protobuf:"bytes,15,opt,name=address_book_extension_attribute12,json=addressBookExtensionAttribute12,proto3,oneof" json:"address_book_extension_attribute12,omitempty" msg:"35928,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute13 *string `protobuf:"bytes,16,opt,name=address_book_extension_attribute13,json=addressBookExtensionAttribute13,proto3,oneof" json:"address_book_extension_attribute13,omitempty" msg:"3592931,omitempty"` + AddressBookExtensionAttribute13 *string `protobuf:"bytes,16,opt,name=address_book_extension_attribute13,json=addressBookExtensionAttribute13,proto3,oneof" json:"address_book_extension_attribute13,omitempty" msg:"35929,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute14 *string `protobuf:"bytes,17,opt,name=address_book_extension_attribute14,json=addressBookExtensionAttribute14,proto3,oneof" json:"address_book_extension_attribute14,omitempty" msg:"3593631,omitempty"` + AddressBookExtensionAttribute14 *string `protobuf:"bytes,17,opt,name=address_book_extension_attribute14,json=addressBookExtensionAttribute14,proto3,oneof" json:"address_book_extension_attribute14,omitempty" msg:"35936,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute15 *string `protobuf:"bytes,18,opt,name=address_book_extension_attribute15,json=addressBookExtensionAttribute15,proto3,oneof" json:"address_book_extension_attribute15,omitempty" msg:"3593731,omitempty"` + AddressBookExtensionAttribute15 *string `protobuf:"bytes,18,opt,name=address_book_extension_attribute15,json=addressBookExtensionAttribute15,proto3,oneof" json:"address_book_extension_attribute15,omitempty" msg:"35937,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute2 *string `protobuf:"bytes,19,opt,name=address_book_extension_attribute2,json=addressBookExtensionAttribute2,proto3,oneof" json:"address_book_extension_attribute2,omitempty" msg:"3281431,omitempty"` + AddressBookExtensionAttribute2 *string `protobuf:"bytes,19,opt,name=address_book_extension_attribute2,json=addressBookExtensionAttribute2,proto3,oneof" json:"address_book_extension_attribute2,omitempty" msg:"32814,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute3 *string `protobuf:"bytes,20,opt,name=address_book_extension_attribute3,json=addressBookExtensionAttribute3,proto3,oneof" json:"address_book_extension_attribute3,omitempty" msg:"3281531,omitempty"` + AddressBookExtensionAttribute3 *string `protobuf:"bytes,20,opt,name=address_book_extension_attribute3,json=addressBookExtensionAttribute3,proto3,oneof" json:"address_book_extension_attribute3,omitempty" msg:"32815,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute4 *string `protobuf:"bytes,21,opt,name=address_book_extension_attribute4,json=addressBookExtensionAttribute4,proto3,oneof" json:"address_book_extension_attribute4,omitempty" msg:"3281631,omitempty"` + AddressBookExtensionAttribute4 *string `protobuf:"bytes,21,opt,name=address_book_extension_attribute4,json=addressBookExtensionAttribute4,proto3,oneof" json:"address_book_extension_attribute4,omitempty" msg:"32816,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute5 *string `protobuf:"bytes,22,opt,name=address_book_extension_attribute5,json=addressBookExtensionAttribute5,proto3,oneof" json:"address_book_extension_attribute5,omitempty" msg:"3281731,omitempty"` + AddressBookExtensionAttribute5 *string `protobuf:"bytes,22,opt,name=address_book_extension_attribute5,json=addressBookExtensionAttribute5,proto3,oneof" json:"address_book_extension_attribute5,omitempty" msg:"32817,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute6 *string `protobuf:"bytes,23,opt,name=address_book_extension_attribute6,json=addressBookExtensionAttribute6,proto3,oneof" json:"address_book_extension_attribute6,omitempty" msg:"3281831,omitempty"` + AddressBookExtensionAttribute6 *string `protobuf:"bytes,23,opt,name=address_book_extension_attribute6,json=addressBookExtensionAttribute6,proto3,oneof" json:"address_book_extension_attribute6,omitempty" msg:"32818,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute7 *string `protobuf:"bytes,24,opt,name=address_book_extension_attribute7,json=addressBookExtensionAttribute7,proto3,oneof" json:"address_book_extension_attribute7,omitempty" msg:"3281931,omitempty"` + AddressBookExtensionAttribute7 *string `protobuf:"bytes,24,opt,name=address_book_extension_attribute7,json=addressBookExtensionAttribute7,proto3,oneof" json:"address_book_extension_attribute7,omitempty" msg:"32819,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute8 *string `protobuf:"bytes,25,opt,name=address_book_extension_attribute8,json=addressBookExtensionAttribute8,proto3,oneof" json:"address_book_extension_attribute8,omitempty" msg:"3282031,omitempty"` + AddressBookExtensionAttribute8 *string `protobuf:"bytes,25,opt,name=address_book_extension_attribute8,json=addressBookExtensionAttribute8,proto3,oneof" json:"address_book_extension_attribute8,omitempty" msg:"32820,omitempty" type:"31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute9 *string `protobuf:"bytes,26,opt,name=address_book_extension_attribute9,json=addressBookExtensionAttribute9,proto3,oneof" json:"address_book_extension_attribute9,omitempty" msg:"3282131,omitempty"` + AddressBookExtensionAttribute9 *string `protobuf:"bytes,26,opt,name=address_book_extension_attribute9,json=addressBookExtensionAttribute9,proto3,oneof" json:"address_book_extension_attribute9,omitempty" msg:"32821,omitempty" type:"31,omitempty"` // This property is deprecated and is to be ignored. - AddressBookFolderPathname *string `protobuf:"bytes,27,opt,name=address_book_folder_pathname,json=addressBookFolderPathname,proto3,oneof" json:"address_book_folder_pathname,omitempty" msg:"3277231,omitempty"` + AddressBookFolderPathname *string `protobuf:"bytes,27,opt,name=address_book_folder_pathname,json=addressBookFolderPathname,proto3,oneof" json:"address_book_folder_pathname,omitempty" msg:"32772,omitempty" type:"31,omitempty"` // Indicates whether the distribution list represents a departmental group. - AddressBookHierarchicalIsHierarchicalGroup *bool `protobuf:"varint,30,opt,name=address_book_hierarchical_is_hierarchical_group,json=addressBookHierarchicalIsHierarchicalGroup,proto3,oneof" json:"address_book_hierarchical_is_hierarchical_group,omitempty" msg:"3606111,omitempty"` + AddressBookHierarchicalIsHierarchicalGroup *bool `protobuf:"varint,30,opt,name=address_book_hierarchical_is_hierarchical_group,json=addressBookHierarchicalIsHierarchicalGroup,proto3,oneof" json:"address_book_hierarchical_is_hierarchical_group,omitempty" msg:"36061,omitempty" type:"11,omitempty"` // Contains the distinguished name (DN) of either the root Department object or the root departmental group in the department hierarchy for the organization. - AddressBookHierarchicalRootDepartment *string `protobuf:"bytes,32,opt,name=address_book_hierarchical_root_department,json=addressBookHierarchicalRootDepartment,proto3,oneof" json:"address_book_hierarchical_root_department,omitempty" msg:"3599230,omitempty"` + AddressBookHierarchicalRootDepartment *string `protobuf:"bytes,32,opt,name=address_book_hierarchical_root_department,json=addressBookHierarchicalRootDepartment,proto3,oneof" json:"address_book_hierarchical_root_department,omitempty" msg:"35992,omitempty" type:"30,omitempty"` // Contains the DN expressed in the X500 DN format. This property is returned from a name service provider interface (NSPI) server as a PtypEmbeddedTable. Otherwise, the data type is PtypString8. - AddressBookHomeMessageDatabase *string `protobuf:"bytes,34,opt,name=address_book_home_message_database,json=addressBookHomeMessageDatabase,proto3,oneof" json:"address_book_home_message_database,omitempty" msg:"3277430,omitempty"` + AddressBookHomeMessageDatabase *string `protobuf:"bytes,34,opt,name=address_book_home_message_database,json=addressBookHomeMessageDatabase,proto3,oneof" json:"address_book_home_message_database,omitempty" msg:"32774,omitempty" type:"30,omitempty"` // Contains a Boolean value of TRUE if it is possible to create Address Book objects in that container, and FALSE otherwise. - AddressBookIsMaster *bool `protobuf:"varint,35,opt,name=address_book_is_master,json=addressBookIsMaster,proto3,oneof" json:"address_book_is_master,omitempty" msg:"6553111,omitempty"` + AddressBookIsMaster *bool `protobuf:"varint,35,opt,name=address_book_is_master,json=addressBookIsMaster,proto3,oneof" json:"address_book_is_master,omitempty" msg:"65531,omitempty" type:"11,omitempty"` // Lists all of the distribution lists for which the object is a member. This property is returned from an NSPI server as a PtypEmbeddedTable. Otherwise, the data type is PtypString8. - AddressBookIsMemberOfDistributionList *string `protobuf:"bytes,36,opt,name=address_book_is_member_of_distribution_list,json=addressBookIsMemberOfDistributionList,proto3,oneof" json:"address_book_is_member_of_distribution_list,omitempty" msg:"3277630,omitempty"` + AddressBookIsMemberOfDistributionList *string `protobuf:"bytes,36,opt,name=address_book_is_member_of_distribution_list,json=addressBookIsMemberOfDistributionList,proto3,oneof" json:"address_book_is_member_of_distribution_list,omitempty" msg:"32776,omitempty" type:"30,omitempty"` // Contains the DN of the mail user's manager. - AddressBookManagerDistinguishedName *string `protobuf:"bytes,39,opt,name=address_book_manager_distinguished_name,json=addressBookManagerDistinguishedName,proto3,oneof" json:"address_book_manager_distinguished_name,omitempty" msg:"3277331,omitempty"` + AddressBookManagerDistinguishedName *string `protobuf:"bytes,39,opt,name=address_book_manager_distinguished_name,json=addressBookManagerDistinguishedName,proto3,oneof" json:"address_book_manager_distinguished_name,omitempty" msg:"32773,omitempty" type:"31,omitempty"` // Indicates whether moderation is enabled for the mail user or distribution list. - AddressBookModerationEnabled *bool `protobuf:"varint,41,opt,name=address_book_moderation_enabled,json=addressBookModerationEnabled,proto3,oneof" json:"address_book_moderation_enabled,omitempty" msg:"3602111,omitempty"` + AddressBookModerationEnabled *bool `protobuf:"varint,41,opt,name=address_book_moderation_enabled,json=addressBookModerationEnabled,proto3,oneof" json:"address_book_moderation_enabled,omitempty" msg:"36021,omitempty" type:"11,omitempty"` // Contains the DN of the Address Book object. - AddressBookObjectDistinguishedName *string `protobuf:"bytes,43,opt,name=address_book_object_distinguished_name,json=addressBookObjectDistinguishedName,proto3,oneof" json:"address_book_object_distinguished_name,omitempty" msg:"3282831,omitempty"` + AddressBookObjectDistinguishedName *string `protobuf:"bytes,43,opt,name=address_book_object_distinguished_name,json=addressBookObjectDistinguishedName,proto3,oneof" json:"address_book_object_distinguished_name,omitempty" msg:"32828,omitempty" type:"31,omitempty"` // Contains the DN of the Organization object of the mail user's organization. - AddressBookOrganizationalUnitRootDistinguishedName *string `protobuf:"bytes,45,opt,name=address_book_organizational_unit_root_distinguished_name,json=addressBookOrganizationalUnitRootDistinguishedName,proto3,oneof" json:"address_book_organizational_unit_root_distinguished_name,omitempty" msg:"3600831,omitempty"` + AddressBookOrganizationalUnitRootDistinguishedName *string `protobuf:"bytes,45,opt,name=address_book_organizational_unit_root_distinguished_name,json=addressBookOrganizationalUnitRootDistinguishedName,proto3,oneof" json:"address_book_organizational_unit_root_distinguished_name,omitempty" msg:"36008,omitempty" type:"31,omitempty"` // Contains the phonetic representation of the PidTagCompanyName property (section 2.639). - AddressBookPhoneticCompanyName *string `protobuf:"bytes,49,opt,name=address_book_phonetic_company_name,json=addressBookPhoneticCompanyName,proto3,oneof" json:"address_book_phonetic_company_name,omitempty" msg:"3598531,omitempty"` + AddressBookPhoneticCompanyName *string `protobuf:"bytes,49,opt,name=address_book_phonetic_company_name,json=addressBookPhoneticCompanyName,proto3,oneof" json:"address_book_phonetic_company_name,omitempty" msg:"35985,omitempty" type:"31,omitempty"` // Contains the phonetic representation of the PidTagDepartmentName property (section 2.672). - AddressBookPhoneticDepartmentName *string `protobuf:"bytes,50,opt,name=address_book_phonetic_department_name,json=addressBookPhoneticDepartmentName,proto3,oneof" json:"address_book_phonetic_department_name,omitempty" msg:"3598431,omitempty"` + AddressBookPhoneticDepartmentName *string `protobuf:"bytes,50,opt,name=address_book_phonetic_department_name,json=addressBookPhoneticDepartmentName,proto3,oneof" json:"address_book_phonetic_department_name,omitempty" msg:"35984,omitempty" type:"31,omitempty"` // Contains the phonetic representation of the PidTagDisplayName property (section 2.676). - AddressBookPhoneticDisplayName *string `protobuf:"bytes,51,opt,name=address_book_phonetic_display_name,json=addressBookPhoneticDisplayName,proto3,oneof" json:"address_book_phonetic_display_name,omitempty" msg:"3598631,omitempty"` + AddressBookPhoneticDisplayName *string `protobuf:"bytes,51,opt,name=address_book_phonetic_display_name,json=addressBookPhoneticDisplayName,proto3,oneof" json:"address_book_phonetic_display_name,omitempty" msg:"35986,omitempty" type:"31,omitempty"` // Contains the phonetic representation of the PidTagGivenName property (section 2.714). - AddressBookPhoneticGivenName *string `protobuf:"bytes,52,opt,name=address_book_phonetic_given_name,json=addressBookPhoneticGivenName,proto3,oneof" json:"address_book_phonetic_given_name,omitempty" msg:"3598231,omitempty"` + AddressBookPhoneticGivenName *string `protobuf:"bytes,52,opt,name=address_book_phonetic_given_name,json=addressBookPhoneticGivenName,proto3,oneof" json:"address_book_phonetic_given_name,omitempty" msg:"35982,omitempty" type:"31,omitempty"` // Contains the phonetic representation of the PidTagSurname property (section 2.1036). - AddressBookPhoneticSurname *string `protobuf:"bytes,53,opt,name=address_book_phonetic_surname,json=addressBookPhoneticSurname,proto3,oneof" json:"address_book_phonetic_surname,omitempty" msg:"3598331,omitempty"` + AddressBookPhoneticSurname *string `protobuf:"bytes,53,opt,name=address_book_phonetic_surname,json=addressBookPhoneticSurname,proto3,oneof" json:"address_book_phonetic_surname,omitempty" msg:"35983,omitempty" type:"31,omitempty"` // Contains the maximum occupancy of the room. - AddressBookRoomCapacity *int32 `protobuf:"varint,57,opt,name=address_book_room_capacity,json=addressBookRoomCapacity,proto3,oneof" json:"address_book_room_capacity,omitempty" msg:"20553,omitempty"` + AddressBookRoomCapacity *int32 `protobuf:"varint,57,opt,name=address_book_room_capacity,json=addressBookRoomCapacity,proto3,oneof" json:"address_book_room_capacity,omitempty" msg:"2055,omitempty" type:"3,omitempty"` // Contains a description of the Resource object. - AddressBookRoomDescription *string `protobuf:"bytes,59,opt,name=address_book_room_description,json=addressBookRoomDescription,proto3,oneof" json:"address_book_room_description,omitempty" msg:"205731,omitempty"` + AddressBookRoomDescription *string `protobuf:"bytes,59,opt,name=address_book_room_description,json=addressBookRoomDescription,proto3,oneof" json:"address_book_room_description,omitempty" msg:"2057,omitempty" type:"31,omitempty"` // Contains a signed integer that specifies the seniority order of Address Book objects that represent members of a department and are referenced by a Department object or departmental group, with larger values specifying members that are more senior. - AddressBookSeniorityIndex *int32 `protobuf:"varint,61,opt,name=address_book_seniority_index,json=addressBookSeniorityIndex,proto3,oneof" json:"address_book_seniority_index,omitempty" msg:"360003,omitempty"` + AddressBookSeniorityIndex *int32 `protobuf:"varint,61,opt,name=address_book_seniority_index,json=addressBookSeniorityIndex,proto3,oneof" json:"address_book_seniority_index,omitempty" msg:"36000,omitempty" type:"3,omitempty"` // Contains the foreign system email address of an Address Book object. - AddressBookTargetAddress *string `protobuf:"bytes,62,opt,name=address_book_target_address,json=addressBookTargetAddress,proto3,oneof" json:"address_book_target_address,omitempty" msg:"3278531,omitempty"` + AddressBookTargetAddress *string `protobuf:"bytes,62,opt,name=address_book_target_address,json=addressBookTargetAddress,proto3,oneof" json:"address_book_target_address,omitempty" msg:"32785,omitempty" type:"31,omitempty"` // Contains a filter value used in ambiguous name resolution. - Anr *string `protobuf:"bytes,65,opt,name=anr,proto3,oneof" json:"anr,omitempty" msg:"1383631,omitempty"` + Anr *string `protobuf:"bytes,65,opt,name=anr,proto3,oneof" json:"anr,omitempty" msg:"13836,omitempty" type:"31,omitempty"` // Contains a bitmask of flags that describe capabilities of an address book container. - ContainerFlags *int32 `protobuf:"varint,66,opt,name=container_flags,json=containerFlags,proto3,oneof" json:"container_flags,omitempty" msg:"138243,omitempty"` + ContainerFlags *int32 `protobuf:"varint,66,opt,name=container_flags,json=containerFlags,proto3,oneof" json:"container_flags,omitempty" msg:"13824,omitempty" type:"3,omitempty"` // Contains an integer value that indicates how to display an Address Book object in a table or as an addressee on a message. - DisplayType *int32 `protobuf:"varint,67,opt,name=display_type,json=displayType,proto3,oneof" json:"display_type,omitempty" msg:"145923,omitempty"` + DisplayType *int32 `protobuf:"varint,67,opt,name=display_type,json=displayType,proto3,oneof" json:"display_type,omitempty" msg:"14592,omitempty" type:"3,omitempty"` // Contains an integer value that indicates how to display an Address Book object in a table or as a recipient on a message. - DisplayTypeEx *int32 `protobuf:"varint,68,opt,name=display_type_ex,json=displayTypeEx,proto3,oneof" json:"display_type_ex,omitempty" msg:"145973,omitempty"` + DisplayTypeEx *int32 `protobuf:"varint,68,opt,name=display_type_ex,json=displayTypeEx,proto3,oneof" json:"display_type_ex,omitempty" msg:"14597,omitempty" type:"3,omitempty"` } func (x *AddressBook) Reset() { diff --git a/pkg/properties/address_book.pb_gen.go b/pkg/properties/address_book.pb_gen.go index 75c32ec..c64264f 100644 --- a/pkg/properties/address_book.pb_gen.go +++ b/pkg/properties/address_book.pb_gen.go @@ -24,7 +24,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "1484831": + case "14848": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "655333": + case "65533": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "328743": + case "32874": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1484731": + case "14847": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "359873": + case "35987": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "360673": + case "36067": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "360663": + case "36066": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3281331": + case "32813": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3282231": + case "32822": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3592731": + case "35927": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3592831": + case "35928": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3592931": + case "35929": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3593631": + case "35936": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3593731": + case "35937": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3281431": + case "32814": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -294,7 +294,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3281531": + case "32815": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -312,7 +312,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3281631": + case "32816": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -330,7 +330,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3281731": + case "32817": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -348,7 +348,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3281831": + case "32818": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -366,7 +366,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3281931": + case "32819": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -384,7 +384,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3282031": + case "32820": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -402,7 +402,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3282131": + case "32821": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -420,7 +420,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3277231": + case "32772": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -438,7 +438,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3606111": + case "36061": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -456,7 +456,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3599230": + case "35992": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -474,7 +474,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3277430": + case "32774": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -492,7 +492,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "6553111": + case "65531": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -510,7 +510,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3277630": + case "32776": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -528,7 +528,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3277331": + case "32773": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -546,7 +546,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3602111": + case "36021": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -564,7 +564,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3282831": + case "32828": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -582,7 +582,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3600831": + case "36008": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -600,7 +600,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3598531": + case "35985": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -618,7 +618,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3598431": + case "35984": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -636,7 +636,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3598631": + case "35986": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -654,7 +654,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3598231": + case "35982": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -672,7 +672,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3598331": + case "35983": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -690,7 +690,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "20553": + case "2055": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -708,7 +708,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "205731": + case "2057": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -726,7 +726,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "360003": + case "36000": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -744,7 +744,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3278531": + case "32785": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -762,7 +762,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1383631": + case "13836": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -780,7 +780,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "138243": + case "13824": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -798,7 +798,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "145923": + case "14592": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -816,7 +816,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "145973": + case "14597": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1039,8 +1039,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // write "1484831" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x34, 0x38, 0x33, 0x31) + // write "14848" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x34, 0x38) if err != nil { return } @@ -1058,8 +1058,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // write "655333" - err = en.Append(0xa6, 0x36, 0x35, 0x35, 0x33, 0x33, 0x33) + // write "65533" + err = en.Append(0xa5, 0x36, 0x35, 0x35, 0x33, 0x33) if err != nil { return } @@ -1077,8 +1077,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // write "328743" - err = en.Append(0xa6, 0x33, 0x32, 0x38, 0x37, 0x34, 0x33) + // write "32874" + err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x37, 0x34) if err != nil { return } @@ -1096,8 +1096,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // write "1484731" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x34, 0x37, 0x33, 0x31) + // write "14847" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x34, 0x37) if err != nil { return } @@ -1115,8 +1115,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "359873" - err = en.Append(0xa6, 0x33, 0x35, 0x39, 0x38, 0x37, 0x33) + // write "35987" + err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x38, 0x37) if err != nil { return } @@ -1134,8 +1134,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // write "360673" - err = en.Append(0xa6, 0x33, 0x36, 0x30, 0x36, 0x37, 0x33) + // write "36067" + err = en.Append(0xa5, 0x33, 0x36, 0x30, 0x36, 0x37) if err != nil { return } @@ -1153,8 +1153,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // write "360663" - err = en.Append(0xa6, 0x33, 0x36, 0x30, 0x36, 0x36, 0x33) + // write "36066" + err = en.Append(0xa5, 0x33, 0x36, 0x30, 0x36, 0x36) if err != nil { return } @@ -1172,8 +1172,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // write "3281331" - err = en.Append(0xa7, 0x33, 0x32, 0x38, 0x31, 0x33, 0x33, 0x31) + // write "32813" + err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x33) if err != nil { return } @@ -1191,8 +1191,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // write "3282231" - err = en.Append(0xa7, 0x33, 0x32, 0x38, 0x32, 0x32, 0x33, 0x31) + // write "32822" + err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x32, 0x32) if err != nil { return } @@ -1210,8 +1210,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // write "3592731" - err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x32, 0x37, 0x33, 0x31) + // write "35927" + err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x32, 0x37) if err != nil { return } @@ -1229,8 +1229,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // write "3592831" - err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x32, 0x38, 0x33, 0x31) + // write "35928" + err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x32, 0x38) if err != nil { return } @@ -1248,8 +1248,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // write "3592931" - err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x32, 0x39, 0x33, 0x31) + // write "35929" + err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x32, 0x39) if err != nil { return } @@ -1267,8 +1267,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // write "3593631" - err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x33, 0x36, 0x33, 0x31) + // write "35936" + err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x33, 0x36) if err != nil { return } @@ -1286,8 +1286,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // write "3593731" - err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x33, 0x37, 0x33, 0x31) + // write "35937" + err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x33, 0x37) if err != nil { return } @@ -1305,8 +1305,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000) == 0 { // if not empty - // write "3281431" - err = en.Append(0xa7, 0x33, 0x32, 0x38, 0x31, 0x34, 0x33, 0x31) + // write "32814" + err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x34) if err != nil { return } @@ -1324,8 +1324,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8000) == 0 { // if not empty - // write "3281531" - err = en.Append(0xa7, 0x33, 0x32, 0x38, 0x31, 0x35, 0x33, 0x31) + // write "32815" + err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x35) if err != nil { return } @@ -1343,8 +1343,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10000) == 0 { // if not empty - // write "3281631" - err = en.Append(0xa7, 0x33, 0x32, 0x38, 0x31, 0x36, 0x33, 0x31) + // write "32816" + err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x36) if err != nil { return } @@ -1362,8 +1362,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20000) == 0 { // if not empty - // write "3281731" - err = en.Append(0xa7, 0x33, 0x32, 0x38, 0x31, 0x37, 0x33, 0x31) + // write "32817" + err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x37) if err != nil { return } @@ -1381,8 +1381,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40000) == 0 { // if not empty - // write "3281831" - err = en.Append(0xa7, 0x33, 0x32, 0x38, 0x31, 0x38, 0x33, 0x31) + // write "32818" + err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x38) if err != nil { return } @@ -1400,8 +1400,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80000) == 0 { // if not empty - // write "3281931" - err = en.Append(0xa7, 0x33, 0x32, 0x38, 0x31, 0x39, 0x33, 0x31) + // write "32819" + err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x39) if err != nil { return } @@ -1419,8 +1419,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100000) == 0 { // if not empty - // write "3282031" - err = en.Append(0xa7, 0x33, 0x32, 0x38, 0x32, 0x30, 0x33, 0x31) + // write "32820" + err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x32, 0x30) if err != nil { return } @@ -1438,8 +1438,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200000) == 0 { // if not empty - // write "3282131" - err = en.Append(0xa7, 0x33, 0x32, 0x38, 0x32, 0x31, 0x33, 0x31) + // write "32821" + err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x32, 0x31) if err != nil { return } @@ -1457,8 +1457,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400000) == 0 { // if not empty - // write "3277231" - err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x37, 0x32, 0x33, 0x31) + // write "32772" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x32) if err != nil { return } @@ -1476,8 +1476,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800000) == 0 { // if not empty - // write "3606111" - err = en.Append(0xa7, 0x33, 0x36, 0x30, 0x36, 0x31, 0x31, 0x31) + // write "36061" + err = en.Append(0xa5, 0x33, 0x36, 0x30, 0x36, 0x31) if err != nil { return } @@ -1495,8 +1495,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000000) == 0 { // if not empty - // write "3599230" - err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x39, 0x32, 0x33, 0x30) + // write "35992" + err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x39, 0x32) if err != nil { return } @@ -1514,8 +1514,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000000) == 0 { // if not empty - // write "3277430" - err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x37, 0x34, 0x33, 0x30) + // write "32774" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x34) if err != nil { return } @@ -1533,8 +1533,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000000) == 0 { // if not empty - // write "6553111" - err = en.Append(0xa7, 0x36, 0x35, 0x35, 0x33, 0x31, 0x31, 0x31) + // write "65531" + err = en.Append(0xa5, 0x36, 0x35, 0x35, 0x33, 0x31) if err != nil { return } @@ -1552,8 +1552,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8000000) == 0 { // if not empty - // write "3277630" - err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x37, 0x36, 0x33, 0x30) + // write "32776" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x36) if err != nil { return } @@ -1571,8 +1571,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10000000) == 0 { // if not empty - // write "3277331" - err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x37, 0x33, 0x33, 0x31) + // write "32773" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x33) if err != nil { return } @@ -1590,8 +1590,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20000000) == 0 { // if not empty - // write "3602111" - err = en.Append(0xa7, 0x33, 0x36, 0x30, 0x32, 0x31, 0x31, 0x31) + // write "36021" + err = en.Append(0xa5, 0x33, 0x36, 0x30, 0x32, 0x31) if err != nil { return } @@ -1609,8 +1609,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40000000) == 0 { // if not empty - // write "3282831" - err = en.Append(0xa7, 0x33, 0x32, 0x38, 0x32, 0x38, 0x33, 0x31) + // write "32828" + err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x32, 0x38) if err != nil { return } @@ -1628,8 +1628,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80000000) == 0 { // if not empty - // write "3600831" - err = en.Append(0xa7, 0x33, 0x36, 0x30, 0x30, 0x38, 0x33, 0x31) + // write "36008" + err = en.Append(0xa5, 0x33, 0x36, 0x30, 0x30, 0x38) if err != nil { return } @@ -1647,8 +1647,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100000000) == 0 { // if not empty - // write "3598531" - err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x38, 0x35, 0x33, 0x31) + // write "35985" + err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x38, 0x35) if err != nil { return } @@ -1666,8 +1666,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200000000) == 0 { // if not empty - // write "3598431" - err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x38, 0x34, 0x33, 0x31) + // write "35984" + err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x38, 0x34) if err != nil { return } @@ -1685,8 +1685,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400000000) == 0 { // if not empty - // write "3598631" - err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x38, 0x36, 0x33, 0x31) + // write "35986" + err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x38, 0x36) if err != nil { return } @@ -1704,8 +1704,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800000000) == 0 { // if not empty - // write "3598231" - err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x38, 0x32, 0x33, 0x31) + // write "35982" + err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x38, 0x32) if err != nil { return } @@ -1723,8 +1723,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000000000) == 0 { // if not empty - // write "3598331" - err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x38, 0x33, 0x33, 0x31) + // write "35983" + err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x38, 0x33) if err != nil { return } @@ -1742,8 +1742,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000000000) == 0 { // if not empty - // write "20553" - err = en.Append(0xa5, 0x32, 0x30, 0x35, 0x35, 0x33) + // write "2055" + err = en.Append(0xa4, 0x32, 0x30, 0x35, 0x35) if err != nil { return } @@ -1761,8 +1761,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000000000) == 0 { // if not empty - // write "205731" - err = en.Append(0xa6, 0x32, 0x30, 0x35, 0x37, 0x33, 0x31) + // write "2057" + err = en.Append(0xa4, 0x32, 0x30, 0x35, 0x37) if err != nil { return } @@ -1780,8 +1780,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8000000000) == 0 { // if not empty - // write "360003" - err = en.Append(0xa6, 0x33, 0x36, 0x30, 0x30, 0x30, 0x33) + // write "36000" + err = en.Append(0xa5, 0x33, 0x36, 0x30, 0x30, 0x30) if err != nil { return } @@ -1799,8 +1799,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10000000000) == 0 { // if not empty - // write "3278531" - err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x38, 0x35, 0x33, 0x31) + // write "32785" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x38, 0x35) if err != nil { return } @@ -1818,8 +1818,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20000000000) == 0 { // if not empty - // write "1383631" - err = en.Append(0xa7, 0x31, 0x33, 0x38, 0x33, 0x36, 0x33, 0x31) + // write "13836" + err = en.Append(0xa5, 0x31, 0x33, 0x38, 0x33, 0x36) if err != nil { return } @@ -1837,8 +1837,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40000000000) == 0 { // if not empty - // write "138243" - err = en.Append(0xa6, 0x31, 0x33, 0x38, 0x32, 0x34, 0x33) + // write "13824" + err = en.Append(0xa5, 0x31, 0x33, 0x38, 0x32, 0x34) if err != nil { return } @@ -1856,8 +1856,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80000000000) == 0 { // if not empty - // write "145923" - err = en.Append(0xa6, 0x31, 0x34, 0x35, 0x39, 0x32, 0x33) + // write "14592" + err = en.Append(0xa5, 0x31, 0x34, 0x35, 0x39, 0x32) if err != nil { return } @@ -1875,8 +1875,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100000000000) == 0 { // if not empty - // write "145973" - err = en.Append(0xa6, 0x31, 0x34, 0x35, 0x39, 0x37, 0x33) + // write "14597" + err = en.Append(0xa5, 0x31, 0x34, 0x35, 0x39, 0x37) if err != nil { return } @@ -2088,8 +2088,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // string "1484831" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x34, 0x38, 0x33, 0x31) + // string "14848" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x34, 0x38) if z.Account == nil { o = msgp.AppendNil(o) } else { @@ -2097,8 +2097,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // string "655333" - o = append(o, 0xa6, 0x36, 0x35, 0x35, 0x33, 0x33, 0x33) + // string "65533" + o = append(o, 0xa5, 0x36, 0x35, 0x35, 0x33, 0x33) if z.AddressBookContainerId == nil { o = msgp.AppendNil(o) } else { @@ -2106,8 +2106,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // string "328743" - o = append(o, 0xa6, 0x33, 0x32, 0x38, 0x37, 0x34, 0x33) + // string "32874" + o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x37, 0x34) if z.AddressBookDeliveryContentLength == nil { o = msgp.AppendNil(o) } else { @@ -2115,8 +2115,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // string "1484731" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x34, 0x37, 0x33, 0x31) + // string "14847" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x34, 0x37) if z.AddressBookDisplayNamePrintable == nil { o = msgp.AppendNil(o) } else { @@ -2124,8 +2124,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "359873" - o = append(o, 0xa6, 0x33, 0x35, 0x39, 0x38, 0x37, 0x33) + // string "35987" + o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x38, 0x37) if z.AddressBookDisplayTypeExtended == nil { o = msgp.AppendNil(o) } else { @@ -2133,8 +2133,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // string "360673" - o = append(o, 0xa6, 0x33, 0x36, 0x30, 0x36, 0x37, 0x33) + // string "36067" + o = append(o, 0xa5, 0x33, 0x36, 0x30, 0x36, 0x37) if z.AddressBookDistributionListExternalMemberCount == nil { o = msgp.AppendNil(o) } else { @@ -2142,8 +2142,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // string "360663" - o = append(o, 0xa6, 0x33, 0x36, 0x30, 0x36, 0x36, 0x33) + // string "36066" + o = append(o, 0xa5, 0x33, 0x36, 0x30, 0x36, 0x36) if z.AddressBookDistributionListMemberCount == nil { o = msgp.AppendNil(o) } else { @@ -2151,8 +2151,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // string "3281331" - o = append(o, 0xa7, 0x33, 0x32, 0x38, 0x31, 0x33, 0x33, 0x31) + // string "32813" + o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x33) if z.AddressBookExtensionAttribute1 == nil { o = msgp.AppendNil(o) } else { @@ -2160,8 +2160,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // string "3282231" - o = append(o, 0xa7, 0x33, 0x32, 0x38, 0x32, 0x32, 0x33, 0x31) + // string "32822" + o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x32, 0x32) if z.AddressBookExtensionAttribute10 == nil { o = msgp.AppendNil(o) } else { @@ -2169,8 +2169,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // string "3592731" - o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x32, 0x37, 0x33, 0x31) + // string "35927" + o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x32, 0x37) if z.AddressBookExtensionAttribute11 == nil { o = msgp.AppendNil(o) } else { @@ -2178,8 +2178,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // string "3592831" - o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x32, 0x38, 0x33, 0x31) + // string "35928" + o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x32, 0x38) if z.AddressBookExtensionAttribute12 == nil { o = msgp.AppendNil(o) } else { @@ -2187,8 +2187,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // string "3592931" - o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x32, 0x39, 0x33, 0x31) + // string "35929" + o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x32, 0x39) if z.AddressBookExtensionAttribute13 == nil { o = msgp.AppendNil(o) } else { @@ -2196,8 +2196,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // string "3593631" - o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x33, 0x36, 0x33, 0x31) + // string "35936" + o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x33, 0x36) if z.AddressBookExtensionAttribute14 == nil { o = msgp.AppendNil(o) } else { @@ -2205,8 +2205,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // string "3593731" - o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x33, 0x37, 0x33, 0x31) + // string "35937" + o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x33, 0x37) if z.AddressBookExtensionAttribute15 == nil { o = msgp.AppendNil(o) } else { @@ -2214,8 +2214,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000) == 0 { // if not empty - // string "3281431" - o = append(o, 0xa7, 0x33, 0x32, 0x38, 0x31, 0x34, 0x33, 0x31) + // string "32814" + o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x34) if z.AddressBookExtensionAttribute2 == nil { o = msgp.AppendNil(o) } else { @@ -2223,8 +2223,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8000) == 0 { // if not empty - // string "3281531" - o = append(o, 0xa7, 0x33, 0x32, 0x38, 0x31, 0x35, 0x33, 0x31) + // string "32815" + o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x35) if z.AddressBookExtensionAttribute3 == nil { o = msgp.AppendNil(o) } else { @@ -2232,8 +2232,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10000) == 0 { // if not empty - // string "3281631" - o = append(o, 0xa7, 0x33, 0x32, 0x38, 0x31, 0x36, 0x33, 0x31) + // string "32816" + o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x36) if z.AddressBookExtensionAttribute4 == nil { o = msgp.AppendNil(o) } else { @@ -2241,8 +2241,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20000) == 0 { // if not empty - // string "3281731" - o = append(o, 0xa7, 0x33, 0x32, 0x38, 0x31, 0x37, 0x33, 0x31) + // string "32817" + o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x37) if z.AddressBookExtensionAttribute5 == nil { o = msgp.AppendNil(o) } else { @@ -2250,8 +2250,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40000) == 0 { // if not empty - // string "3281831" - o = append(o, 0xa7, 0x33, 0x32, 0x38, 0x31, 0x38, 0x33, 0x31) + // string "32818" + o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x38) if z.AddressBookExtensionAttribute6 == nil { o = msgp.AppendNil(o) } else { @@ -2259,8 +2259,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80000) == 0 { // if not empty - // string "3281931" - o = append(o, 0xa7, 0x33, 0x32, 0x38, 0x31, 0x39, 0x33, 0x31) + // string "32819" + o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x39) if z.AddressBookExtensionAttribute7 == nil { o = msgp.AppendNil(o) } else { @@ -2268,8 +2268,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100000) == 0 { // if not empty - // string "3282031" - o = append(o, 0xa7, 0x33, 0x32, 0x38, 0x32, 0x30, 0x33, 0x31) + // string "32820" + o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x32, 0x30) if z.AddressBookExtensionAttribute8 == nil { o = msgp.AppendNil(o) } else { @@ -2277,8 +2277,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200000) == 0 { // if not empty - // string "3282131" - o = append(o, 0xa7, 0x33, 0x32, 0x38, 0x32, 0x31, 0x33, 0x31) + // string "32821" + o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x32, 0x31) if z.AddressBookExtensionAttribute9 == nil { o = msgp.AppendNil(o) } else { @@ -2286,8 +2286,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400000) == 0 { // if not empty - // string "3277231" - o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x37, 0x32, 0x33, 0x31) + // string "32772" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x32) if z.AddressBookFolderPathname == nil { o = msgp.AppendNil(o) } else { @@ -2295,8 +2295,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800000) == 0 { // if not empty - // string "3606111" - o = append(o, 0xa7, 0x33, 0x36, 0x30, 0x36, 0x31, 0x31, 0x31) + // string "36061" + o = append(o, 0xa5, 0x33, 0x36, 0x30, 0x36, 0x31) if z.AddressBookHierarchicalIsHierarchicalGroup == nil { o = msgp.AppendNil(o) } else { @@ -2304,8 +2304,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000000) == 0 { // if not empty - // string "3599230" - o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x39, 0x32, 0x33, 0x30) + // string "35992" + o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x39, 0x32) if z.AddressBookHierarchicalRootDepartment == nil { o = msgp.AppendNil(o) } else { @@ -2313,8 +2313,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000000) == 0 { // if not empty - // string "3277430" - o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x37, 0x34, 0x33, 0x30) + // string "32774" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x34) if z.AddressBookHomeMessageDatabase == nil { o = msgp.AppendNil(o) } else { @@ -2322,8 +2322,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000000) == 0 { // if not empty - // string "6553111" - o = append(o, 0xa7, 0x36, 0x35, 0x35, 0x33, 0x31, 0x31, 0x31) + // string "65531" + o = append(o, 0xa5, 0x36, 0x35, 0x35, 0x33, 0x31) if z.AddressBookIsMaster == nil { o = msgp.AppendNil(o) } else { @@ -2331,8 +2331,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8000000) == 0 { // if not empty - // string "3277630" - o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x37, 0x36, 0x33, 0x30) + // string "32776" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x36) if z.AddressBookIsMemberOfDistributionList == nil { o = msgp.AppendNil(o) } else { @@ -2340,8 +2340,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10000000) == 0 { // if not empty - // string "3277331" - o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x37, 0x33, 0x33, 0x31) + // string "32773" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x33) if z.AddressBookManagerDistinguishedName == nil { o = msgp.AppendNil(o) } else { @@ -2349,8 +2349,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20000000) == 0 { // if not empty - // string "3602111" - o = append(o, 0xa7, 0x33, 0x36, 0x30, 0x32, 0x31, 0x31, 0x31) + // string "36021" + o = append(o, 0xa5, 0x33, 0x36, 0x30, 0x32, 0x31) if z.AddressBookModerationEnabled == nil { o = msgp.AppendNil(o) } else { @@ -2358,8 +2358,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40000000) == 0 { // if not empty - // string "3282831" - o = append(o, 0xa7, 0x33, 0x32, 0x38, 0x32, 0x38, 0x33, 0x31) + // string "32828" + o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x32, 0x38) if z.AddressBookObjectDistinguishedName == nil { o = msgp.AppendNil(o) } else { @@ -2367,8 +2367,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80000000) == 0 { // if not empty - // string "3600831" - o = append(o, 0xa7, 0x33, 0x36, 0x30, 0x30, 0x38, 0x33, 0x31) + // string "36008" + o = append(o, 0xa5, 0x33, 0x36, 0x30, 0x30, 0x38) if z.AddressBookOrganizationalUnitRootDistinguishedName == nil { o = msgp.AppendNil(o) } else { @@ -2376,8 +2376,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100000000) == 0 { // if not empty - // string "3598531" - o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x38, 0x35, 0x33, 0x31) + // string "35985" + o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x38, 0x35) if z.AddressBookPhoneticCompanyName == nil { o = msgp.AppendNil(o) } else { @@ -2385,8 +2385,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200000000) == 0 { // if not empty - // string "3598431" - o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x38, 0x34, 0x33, 0x31) + // string "35984" + o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x38, 0x34) if z.AddressBookPhoneticDepartmentName == nil { o = msgp.AppendNil(o) } else { @@ -2394,8 +2394,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400000000) == 0 { // if not empty - // string "3598631" - o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x38, 0x36, 0x33, 0x31) + // string "35986" + o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x38, 0x36) if z.AddressBookPhoneticDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -2403,8 +2403,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800000000) == 0 { // if not empty - // string "3598231" - o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x38, 0x32, 0x33, 0x31) + // string "35982" + o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x38, 0x32) if z.AddressBookPhoneticGivenName == nil { o = msgp.AppendNil(o) } else { @@ -2412,8 +2412,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000000000) == 0 { // if not empty - // string "3598331" - o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x38, 0x33, 0x33, 0x31) + // string "35983" + o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x38, 0x33) if z.AddressBookPhoneticSurname == nil { o = msgp.AppendNil(o) } else { @@ -2421,8 +2421,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000000000) == 0 { // if not empty - // string "20553" - o = append(o, 0xa5, 0x32, 0x30, 0x35, 0x35, 0x33) + // string "2055" + o = append(o, 0xa4, 0x32, 0x30, 0x35, 0x35) if z.AddressBookRoomCapacity == nil { o = msgp.AppendNil(o) } else { @@ -2430,8 +2430,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000000000) == 0 { // if not empty - // string "205731" - o = append(o, 0xa6, 0x32, 0x30, 0x35, 0x37, 0x33, 0x31) + // string "2057" + o = append(o, 0xa4, 0x32, 0x30, 0x35, 0x37) if z.AddressBookRoomDescription == nil { o = msgp.AppendNil(o) } else { @@ -2439,8 +2439,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8000000000) == 0 { // if not empty - // string "360003" - o = append(o, 0xa6, 0x33, 0x36, 0x30, 0x30, 0x30, 0x33) + // string "36000" + o = append(o, 0xa5, 0x33, 0x36, 0x30, 0x30, 0x30) if z.AddressBookSeniorityIndex == nil { o = msgp.AppendNil(o) } else { @@ -2448,8 +2448,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10000000000) == 0 { // if not empty - // string "3278531" - o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x38, 0x35, 0x33, 0x31) + // string "32785" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x38, 0x35) if z.AddressBookTargetAddress == nil { o = msgp.AppendNil(o) } else { @@ -2457,8 +2457,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20000000000) == 0 { // if not empty - // string "1383631" - o = append(o, 0xa7, 0x31, 0x33, 0x38, 0x33, 0x36, 0x33, 0x31) + // string "13836" + o = append(o, 0xa5, 0x31, 0x33, 0x38, 0x33, 0x36) if z.Anr == nil { o = msgp.AppendNil(o) } else { @@ -2466,8 +2466,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40000000000) == 0 { // if not empty - // string "138243" - o = append(o, 0xa6, 0x31, 0x33, 0x38, 0x32, 0x34, 0x33) + // string "13824" + o = append(o, 0xa5, 0x31, 0x33, 0x38, 0x32, 0x34) if z.ContainerFlags == nil { o = msgp.AppendNil(o) } else { @@ -2475,8 +2475,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80000000000) == 0 { // if not empty - // string "145923" - o = append(o, 0xa6, 0x31, 0x34, 0x35, 0x39, 0x32, 0x33) + // string "14592" + o = append(o, 0xa5, 0x31, 0x34, 0x35, 0x39, 0x32) if z.DisplayType == nil { o = msgp.AppendNil(o) } else { @@ -2484,8 +2484,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100000000000) == 0 { // if not empty - // string "145973" - o = append(o, 0xa6, 0x31, 0x34, 0x35, 0x39, 0x37, 0x33) + // string "14597" + o = append(o, 0xa5, 0x31, 0x34, 0x35, 0x39, 0x37) if z.DisplayTypeEx == nil { o = msgp.AppendNil(o) } else { @@ -2513,7 +2513,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "1484831": + case "14848": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2530,7 +2530,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "655333": + case "65533": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2547,7 +2547,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "328743": + case "32874": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2564,7 +2564,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1484731": + case "14847": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2581,7 +2581,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "359873": + case "35987": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2598,7 +2598,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "360673": + case "36067": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2615,7 +2615,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "360663": + case "36066": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2632,7 +2632,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3281331": + case "32813": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2649,7 +2649,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3282231": + case "32822": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2666,7 +2666,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3592731": + case "35927": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2683,7 +2683,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3592831": + case "35928": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2700,7 +2700,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3592931": + case "35929": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2717,7 +2717,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3593631": + case "35936": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2734,7 +2734,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3593731": + case "35937": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2751,7 +2751,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3281431": + case "32814": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2768,7 +2768,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3281531": + case "32815": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2785,7 +2785,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3281631": + case "32816": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2802,7 +2802,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3281731": + case "32817": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2819,7 +2819,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3281831": + case "32818": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2836,7 +2836,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3281931": + case "32819": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2853,7 +2853,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3282031": + case "32820": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2870,7 +2870,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3282131": + case "32821": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2887,7 +2887,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3277231": + case "32772": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2904,7 +2904,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3606111": + case "36061": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2921,7 +2921,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3599230": + case "35992": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2938,7 +2938,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3277430": + case "32774": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2955,7 +2955,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "6553111": + case "65531": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2972,7 +2972,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3277630": + case "32776": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2989,7 +2989,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3277331": + case "32773": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3006,7 +3006,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3602111": + case "36021": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3023,7 +3023,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3282831": + case "32828": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3040,7 +3040,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3600831": + case "36008": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3057,7 +3057,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3598531": + case "35985": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3074,7 +3074,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3598431": + case "35984": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3091,7 +3091,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3598631": + case "35986": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3108,7 +3108,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3598231": + case "35982": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3125,7 +3125,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3598331": + case "35983": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3142,7 +3142,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "20553": + case "2055": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3159,7 +3159,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "205731": + case "2057": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3176,7 +3176,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "360003": + case "36000": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3193,7 +3193,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3278531": + case "32785": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3210,7 +3210,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1383631": + case "13836": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3227,7 +3227,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "138243": + case "13824": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3244,7 +3244,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "145923": + case "14592": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3261,7 +3261,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "145973": + case "14597": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3292,271 +3292,271 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *AddressBook) Msgsize() (s int) { - s = 3 + 8 + s = 3 + 6 if z.Account == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Account) } - s += 7 + s += 6 if z.AddressBookContainerId == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 6 if z.AddressBookDeliveryContentLength == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.AddressBookDisplayNamePrintable == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookDisplayNamePrintable) } - s += 7 + s += 6 if z.AddressBookDisplayTypeExtended == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 6 if z.AddressBookDistributionListExternalMemberCount == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 6 if z.AddressBookDistributionListMemberCount == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.AddressBookExtensionAttribute1 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute1) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute10 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute10) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute11 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute11) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute12 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute12) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute13 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute13) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute14 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute14) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute15 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute15) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute2 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute2) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute3 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute3) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute4 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute4) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute5 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute5) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute6 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute6) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute7 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute7) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute8 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute8) } - s += 8 + s += 6 if z.AddressBookExtensionAttribute9 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute9) } - s += 8 + s += 6 if z.AddressBookFolderPathname == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookFolderPathname) } - s += 8 + s += 6 if z.AddressBookHierarchicalIsHierarchicalGroup == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.AddressBookHierarchicalRootDepartment == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookHierarchicalRootDepartment) } - s += 8 + s += 6 if z.AddressBookHomeMessageDatabase == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookHomeMessageDatabase) } - s += 8 + s += 6 if z.AddressBookIsMaster == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.AddressBookIsMemberOfDistributionList == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookIsMemberOfDistributionList) } - s += 8 + s += 6 if z.AddressBookManagerDistinguishedName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookManagerDistinguishedName) } - s += 8 + s += 6 if z.AddressBookModerationEnabled == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.AddressBookObjectDistinguishedName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookObjectDistinguishedName) } - s += 8 + s += 6 if z.AddressBookOrganizationalUnitRootDistinguishedName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookOrganizationalUnitRootDistinguishedName) } - s += 8 + s += 6 if z.AddressBookPhoneticCompanyName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookPhoneticCompanyName) } - s += 8 + s += 6 if z.AddressBookPhoneticDepartmentName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookPhoneticDepartmentName) } - s += 8 + s += 6 if z.AddressBookPhoneticDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookPhoneticDisplayName) } - s += 8 + s += 6 if z.AddressBookPhoneticGivenName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookPhoneticGivenName) } - s += 8 + s += 6 if z.AddressBookPhoneticSurname == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookPhoneticSurname) } - s += 6 + s += 5 if z.AddressBookRoomCapacity == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 5 if z.AddressBookRoomDescription == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookRoomDescription) } - s += 7 + s += 6 if z.AddressBookSeniorityIndex == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.AddressBookTargetAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookTargetAddress) } - s += 8 + s += 6 if z.Anr == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Anr) } - s += 7 + s += 6 if z.ContainerFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 6 if z.DisplayType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 6 if z.DisplayTypeEx == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/appointment.pb.go b/pkg/properties/appointment.pb.go index 1e223d4..b16f34f 100644 --- a/pkg/properties/appointment.pb.go +++ b/pkg/properties/appointment.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: appointment.proto package properties @@ -44,244 +44,244 @@ type Appointment struct { unknownFields protoimpl.UnknownFields // Specifies a list of all the attendees except for the organizer, including resources and unsendable attendees. - AllAttendeesString *string `protobuf:"bytes,1,opt,name=all_attendees_string,json=allAttendeesString,proto3,oneof" json:"all_attendees_string,omitempty" msg:"26429631,omitempty"` + AllAttendeesString *string `protobuf:"bytes,1,opt,name=all_attendees_string,json=allAttendeesString,proto3,oneof" json:"all_attendees_string,omitempty" msg:"264296,omitempty" type:"31,omitempty"` // This property is set to TRUE. - AllowExternalCheck *bool `protobuf:"varint,2,opt,name=allow_external_check,json=allowExternalCheck,proto3,oneof" json:"allow_external_check,omitempty" msg:"26432611,omitempty"` + AllowExternalCheck *bool `protobuf:"varint,2,opt,name=allow_external_check,json=allowExternalCheck,proto3,oneof" json:"allow_external_check,omitempty" msg:"264326,omitempty" type:"11,omitempty"` // Specifies a bit field that describes the auxiliary state of the object. - AppointmentAuxiliaryFlags *int32 `protobuf:"varint,3,opt,name=appointment_auxiliary_flags,json=appointmentAuxiliaryFlags,proto3,oneof" json:"appointment_auxiliary_flags,omitempty" msg:"2641993,omitempty"` + AppointmentAuxiliaryFlags *int32 `protobuf:"varint,3,opt,name=appointment_auxiliary_flags,json=appointmentAuxiliaryFlags,proto3,oneof" json:"appointment_auxiliary_flags,omitempty" msg:"264199,omitempty" type:"3,omitempty"` // Specifies the color to be used when displaying the Calendar object. - AppointmentColor *int32 `protobuf:"varint,4,opt,name=appointment_color,json=appointmentColor,proto3,oneof" json:"appointment_color,omitempty" msg:"2642283,omitempty"` + AppointmentColor *int32 `protobuf:"varint,4,opt,name=appointment_color,json=appointmentColor,proto3,oneof" json:"appointment_color,omitempty" msg:"264228,omitempty" type:"3,omitempty"` // Indicates whether a Meeting Response object is a counter proposal. - AppointmentCounterProposal *bool `protobuf:"varint,5,opt,name=appointment_counter_proposal,json=appointmentCounterProposal,proto3,oneof" json:"appointment_counter_proposal,omitempty" msg:"26435911,omitempty"` + AppointmentCounterProposal *bool `protobuf:"varint,5,opt,name=appointment_counter_proposal,json=appointmentCounterProposal,proto3,oneof" json:"appointment_counter_proposal,omitempty" msg:"264359,omitempty" type:"11,omitempty"` // Specifies the length of the event, in minutes. - AppointmentDuration *int32 `protobuf:"varint,6,opt,name=appointment_duration,json=appointmentDuration,proto3,oneof" json:"appointment_duration,omitempty" msg:"2642273,omitempty"` + AppointmentDuration *int32 `protobuf:"varint,6,opt,name=appointment_duration,json=appointmentDuration,proto3,oneof" json:"appointment_duration,omitempty" msg:"264227,omitempty" type:"3,omitempty"` // Indicates the date that the appointment ends. - AppointmentEndDate *int64 `protobuf:"varint,7,opt,name=appointment_end_date,json=appointmentEndDate,proto3,oneof" json:"appointment_end_date,omitempty" msg:"26422564,omitempty"` + AppointmentEndDate *int64 `protobuf:"varint,7,opt,name=appointment_end_date,json=appointmentEndDate,proto3,oneof" json:"appointment_end_date,omitempty" msg:"264225,omitempty" type:"64,omitempty"` // Indicates the time that the appointment ends. - AppointmentEndTime *int64 `protobuf:"varint,8,opt,name=appointment_end_time,json=appointmentEndTime,proto3,oneof" json:"appointment_end_time,omitempty" msg:"26422464,omitempty"` + AppointmentEndTime *int64 `protobuf:"varint,8,opt,name=appointment_end_time,json=appointmentEndTime,proto3,oneof" json:"appointment_end_time,omitempty" msg:"264224,omitempty" type:"64,omitempty"` // Specifies the end date and time for the event. - AppointmentEndWhole *int64 `protobuf:"varint,9,opt,name=appointment_end_whole,json=appointmentEndWhole,proto3,oneof" json:"appointment_end_whole,omitempty" msg:"26420664,omitempty"` + AppointmentEndWhole *int64 `protobuf:"varint,9,opt,name=appointment_end_whole,json=appointmentEndWhole,proto3,oneof" json:"appointment_end_whole,omitempty" msg:"264206,omitempty" type:"64,omitempty"` // Indicates to the organizer the last sequence number that was sent to any attendee. - AppointmentLastSequence *int32 `protobuf:"varint,10,opt,name=appointment_last_sequence,json=appointmentLastSequence,proto3,oneof" json:"appointment_last_sequence,omitempty" msg:"2641953,omitempty"` + AppointmentLastSequence *int32 `protobuf:"varint,10,opt,name=appointment_last_sequence,json=appointmentLastSequence,proto3,oneof" json:"appointment_last_sequence,omitempty" msg:"264195,omitempty" type:"3,omitempty"` // Indicates the message class of the Meeting object to be generated from the Meeting Request object. - AppointmentMessageClass *string `protobuf:"bytes,11,opt,name=appointment_message_class,json=appointmentMessageClass,proto3,oneof" json:"appointment_message_class,omitempty" msg:"6831,omitempty"` + AppointmentMessageClass *string `protobuf:"bytes,11,opt,name=appointment_message_class,json=appointmentMessageClass,proto3,oneof" json:"appointment_message_class,omitempty" msg:"68,omitempty" type:"31,omitempty"` // Indicates whether attendees are not allowed to propose a new date and/or time for the meeting. - AppointmentNotAllowPropose *bool `protobuf:"varint,12,opt,name=appointment_not_allow_propose,json=appointmentNotAllowPropose,proto3,oneof" json:"appointment_not_allow_propose,omitempty" msg:"26436211,omitempty"` + AppointmentNotAllowPropose *bool `protobuf:"varint,12,opt,name=appointment_not_allow_propose,json=appointmentNotAllowPropose,proto3,oneof" json:"appointment_not_allow_propose,omitempty" msg:"264362,omitempty" type:"11,omitempty"` // Specifies the number of attendees who have sent counter proposals that have not been accepted or rejected by the organizer. - AppointmentProposalNumber *int32 `protobuf:"varint,13,opt,name=appointment_proposal_number,json=appointmentProposalNumber,proto3,oneof" json:"appointment_proposal_number,omitempty" msg:"2643613,omitempty"` + AppointmentProposalNumber *int32 `protobuf:"varint,13,opt,name=appointment_proposal_number,json=appointmentProposalNumber,proto3,oneof" json:"appointment_proposal_number,omitempty" msg:"264361,omitempty" type:"3,omitempty"` // Indicates the proposed value for the PidLidAppointmentDuration property (section 2.11) for a counter proposal. - AppointmentProposedDuration *int32 `protobuf:"varint,14,opt,name=appointment_proposed_duration,json=appointmentProposedDuration,proto3,oneof" json:"appointment_proposed_duration,omitempty" msg:"2643583,omitempty"` + AppointmentProposedDuration *int32 `protobuf:"varint,14,opt,name=appointment_proposed_duration,json=appointmentProposedDuration,proto3,oneof" json:"appointment_proposed_duration,omitempty" msg:"264358,omitempty" type:"3,omitempty"` // Specifies the proposed value for the PidLidAppointmentEndWhole property (section 2.14) for a counter proposal. - AppointmentProposedEndWhole *int64 `protobuf:"varint,15,opt,name=appointment_proposed_end_whole,json=appointmentProposedEndWhole,proto3,oneof" json:"appointment_proposed_end_whole,omitempty" msg:"26435364,omitempty"` + AppointmentProposedEndWhole *int64 `protobuf:"varint,15,opt,name=appointment_proposed_end_whole,json=appointmentProposedEndWhole,proto3,oneof" json:"appointment_proposed_end_whole,omitempty" msg:"264353,omitempty" type:"64,omitempty"` // Specifies the proposed value for the PidLidAppointmentStartWhole property (section 2.29) for a counter proposal. - AppointmentProposedStartWhole *int64 `protobuf:"varint,16,opt,name=appointment_proposed_start_whole,json=appointmentProposedStartWhole,proto3,oneof" json:"appointment_proposed_start_whole,omitempty" msg:"26435264,omitempty"` + AppointmentProposedStartWhole *int64 `protobuf:"varint,16,opt,name=appointment_proposed_start_whole,json=appointmentProposedStartWhole,proto3,oneof" json:"appointment_proposed_start_whole,omitempty" msg:"264352,omitempty" type:"64,omitempty"` // Specifies the user who last replied to the meeting request or meeting update. - AppointmentReplyName *string `protobuf:"bytes,18,opt,name=appointment_reply_name,json=appointmentReplyName,proto3,oneof" json:"appointment_reply_name,omitempty" msg:"26428831,omitempty"` + AppointmentReplyName *string `protobuf:"bytes,18,opt,name=appointment_reply_name,json=appointmentReplyName,proto3,oneof" json:"appointment_reply_name,omitempty" msg:"264288,omitempty" type:"31,omitempty"` // Specifies the date and time at which the attendee responded to a received meeting request or Meeting Update object. - AppointmentReplyTime *int64 `protobuf:"varint,19,opt,name=appointment_reply_time,json=appointmentReplyTime,proto3,oneof" json:"appointment_reply_time,omitempty" msg:"26425664,omitempty"` + AppointmentReplyTime *int64 `protobuf:"varint,19,opt,name=appointment_reply_time,json=appointmentReplyTime,proto3,oneof" json:"appointment_reply_time,omitempty" msg:"264256,omitempty" type:"64,omitempty"` // Specifies the sequence number of a Meeting object. - AppointmentSequence *int32 `protobuf:"varint,20,opt,name=appointment_sequence,json=appointmentSequence,proto3,oneof" json:"appointment_sequence,omitempty" msg:"2641933,omitempty"` + AppointmentSequence *int32 `protobuf:"varint,20,opt,name=appointment_sequence,json=appointmentSequence,proto3,oneof" json:"appointment_sequence,omitempty" msg:"264193,omitempty" type:"3,omitempty"` // Indicates the date and time at which the PidLidAppointmentSequence property (section 2.25) was last modified. - AppointmentSequenceTime *int64 `protobuf:"varint,21,opt,name=appointment_sequence_time,json=appointmentSequenceTime,proto3,oneof" json:"appointment_sequence_time,omitempty" msg:"26419464,omitempty"` + AppointmentSequenceTime *int64 `protobuf:"varint,21,opt,name=appointment_sequence_time,json=appointmentSequenceTime,proto3,oneof" json:"appointment_sequence_time,omitempty" msg:"264194,omitempty" type:"64,omitempty"` // Identifies the date that the appointment starts. - AppointmentStartDate *int64 `protobuf:"varint,22,opt,name=appointment_start_date,json=appointmentStartDate,proto3,oneof" json:"appointment_start_date,omitempty" msg:"26422664,omitempty"` + AppointmentStartDate *int64 `protobuf:"varint,22,opt,name=appointment_start_date,json=appointmentStartDate,proto3,oneof" json:"appointment_start_date,omitempty" msg:"264226,omitempty" type:"64,omitempty"` // Identifies the time that the appointment starts. - AppointmentStartTime *int64 `protobuf:"varint,23,opt,name=appointment_start_time,json=appointmentStartTime,proto3,oneof" json:"appointment_start_time,omitempty" msg:"26420764,omitempty"` + AppointmentStartTime *int64 `protobuf:"varint,23,opt,name=appointment_start_time,json=appointmentStartTime,proto3,oneof" json:"appointment_start_time,omitempty" msg:"264207,omitempty" type:"64,omitempty"` // Specifies the start date and time of the appointment. - AppointmentStartWhole *int64 `protobuf:"varint,24,opt,name=appointment_start_whole,json=appointmentStartWhole,proto3,oneof" json:"appointment_start_whole,omitempty" msg:"26420564,omitempty"` + AppointmentStartWhole *int64 `protobuf:"varint,24,opt,name=appointment_start_whole,json=appointmentStartWhole,proto3,oneof" json:"appointment_start_whole,omitempty" msg:"264205,omitempty" type:"64,omitempty"` // Specifies a bit field that describes the state of the object. - AppointmentStateFlags *int32 `protobuf:"varint,25,opt,name=appointment_state_flags,json=appointmentStateFlags,proto3,oneof" json:"appointment_state_flags,omitempty" msg:"2642313,omitempty"` + AppointmentStateFlags *int32 `protobuf:"varint,25,opt,name=appointment_state_flags,json=appointmentStateFlags,proto3,oneof" json:"appointment_state_flags,omitempty" msg:"264231,omitempty" type:"3,omitempty"` // Specifies whether the event is an all-day event. - AppointmentSubType *bool `protobuf:"varint,26,opt,name=appointment_sub_type,json=appointmentSubType,proto3,oneof" json:"appointment_sub_type,omitempty" msg:"26422911,omitempty"` + AppointmentSubType *bool `protobuf:"varint,26,opt,name=appointment_sub_type,json=appointmentSubType,proto3,oneof" json:"appointment_sub_type,omitempty" msg:"264229,omitempty" type:"11,omitempty"` // Indicates the time at which the appointment was last updated. - AppointmentUpdateTime *int64 `protobuf:"varint,31,opt,name=appointment_update_time,json=appointmentUpdateTime,proto3,oneof" json:"appointment_update_time,omitempty" msg:"26426264,omitempty"` + AppointmentUpdateTime *int64 `protobuf:"varint,31,opt,name=appointment_update_time,json=appointmentUpdateTime,proto3,oneof" json:"appointment_update_time,omitempty" msg:"264262,omitempty" type:"64,omitempty"` // Specifies the date and time at which the meeting-related object was sent. - AttendeeCriticalChange *int64 `protobuf:"varint,32,opt,name=attendee_critical_change,json=attendeeCriticalChange,proto3,oneof" json:"attendee_critical_change,omitempty" msg:"164,omitempty"` + AttendeeCriticalChange *int64 `protobuf:"varint,32,opt,name=attendee_critical_change,json=attendeeCriticalChange,proto3,oneof" json:"attendee_critical_change,omitempty" msg:"1,omitempty" type:"64,omitempty"` // Indicates whether the value of the PidLidLocation property (section 2.159) is set to the PidTagDisplayName property (section 2.676). - AutoFillLocation *bool `protobuf:"varint,33,opt,name=auto_fill_location,json=autoFillLocation,proto3,oneof" json:"auto_fill_location,omitempty" msg:"26429811,omitempty"` + AutoFillLocation *bool `protobuf:"varint,33,opt,name=auto_fill_location,json=autoFillLocation,proto3,oneof" json:"auto_fill_location,omitempty" msg:"264298,omitempty" type:"11,omitempty"` // Specifies whether to automatically start the conferencing application when a reminder for the start of a meeting is executed. - AutoStartCheck *bool `protobuf:"varint,34,opt,name=auto_start_check,json=autoStartCheck,proto3,oneof" json:"auto_start_check,omitempty" msg:"26432411,omitempty"` + AutoStartCheck *bool `protobuf:"varint,34,opt,name=auto_start_check,json=autoStartCheck,proto3,oneof" json:"auto_start_check,omitempty" msg:"264324,omitempty" type:"11,omitempty"` // Specifies the availability of a user for the event described by the object. - BusyStatus *int32 `protobuf:"varint,35,opt,name=busy_status,json=busyStatus,proto3,oneof" json:"busy_status,omitempty" msg:"2641973,omitempty"` + BusyStatus *int32 `protobuf:"varint,35,opt,name=busy_status,json=busyStatus,proto3,oneof" json:"busy_status,omitempty" msg:"264197,omitempty" type:"3,omitempty"` // Contains the value of the CalendarType field from the PidLidAppointmentRecur property (section 2.22). - CalendarType *int32 `protobuf:"varint,36,opt,name=calendar_type,json=calendarType,proto3,oneof" json:"calendar_type,omitempty" msg:"443,omitempty"` + CalendarType *int32 `protobuf:"varint,36,opt,name=calendar_type,json=calendarType,proto3,oneof" json:"calendar_type,omitempty" msg:"44,omitempty" type:"3,omitempty"` // Contains a list of all the sendable attendees who are also optional attendees. - CcAttendeesString *string `protobuf:"bytes,37,opt,name=cc_attendees_string,json=ccAttendeesString,proto3,oneof" json:"cc_attendees_string,omitempty" msg:"26430031,omitempty"` + CcAttendeesString *string `protobuf:"bytes,37,opt,name=cc_attendees_string,json=ccAttendeesString,proto3,oneof" json:"cc_attendees_string,omitempty" msg:"264300,omitempty" type:"31,omitempty"` // Specifies a bit field that indicates how the Meeting object has changed. - ChangeHighlight *int32 `protobuf:"varint,38,opt,name=change_highlight,json=changeHighlight,proto3,oneof" json:"change_highlight,omitempty" msg:"2641963,omitempty"` + ChangeHighlight *int32 `protobuf:"varint,38,opt,name=change_highlight,json=changeHighlight,proto3,oneof" json:"change_highlight,omitempty" msg:"264196,omitempty" type:"3,omitempty"` // Indicates what actions the user has taken on this Meeting object. - ClientIntent *int32 `protobuf:"varint,40,opt,name=client_intent,json=clientIntent,proto3,oneof" json:"client_intent,omitempty" msg:"373,omitempty"` + ClientIntent *int32 `protobuf:"varint,40,opt,name=client_intent,json=clientIntent,proto3,oneof" json:"client_intent,omitempty" msg:"37,omitempty" type:"3,omitempty"` // Specifies the end date and time of the event in UTC. - ClipEnd *int64 `protobuf:"varint,41,opt,name=clip_end,json=clipEnd,proto3,oneof" json:"clip_end,omitempty" msg:"26429464,omitempty"` + ClipEnd *int64 `protobuf:"varint,41,opt,name=clip_end,json=clipEnd,proto3,oneof" json:"clip_end,omitempty" msg:"264294,omitempty" type:"64,omitempty"` // Specifies the start date and time of the event in UTC. - ClipStart *int64 `protobuf:"varint,42,opt,name=clip_start,json=clipStart,proto3,oneof" json:"clip_start,omitempty" msg:"26429364,omitempty"` + ClipStart *int64 `protobuf:"varint,42,opt,name=clip_start,json=clipStart,proto3,oneof" json:"clip_start,omitempty" msg:"264293,omitempty" type:"64,omitempty"` // Specifies the document to be launched when the user joins the meeting. - CollaborateDoc *string `protobuf:"bytes,43,opt,name=collaborate_doc,json=collaborateDoc,proto3,oneof" json:"collaborate_doc,omitempty" msg:"26432731,omitempty"` + CollaborateDoc *string `protobuf:"bytes,43,opt,name=collaborate_doc,json=collaborateDoc,proto3,oneof" json:"collaborate_doc,omitempty" msg:"264327,omitempty" type:"31,omitempty"` // When set to TRUE (0x00000001), the PidLidConferencingCheck property indicates that the associated meeting is one of the following types: - ConferencingCheck *bool `protobuf:"varint,44,opt,name=conferencing_check,json=conferencingCheck,proto3,oneof" json:"conferencing_check,omitempty" msg:"26432011,omitempty"` + ConferencingCheck *bool `protobuf:"varint,44,opt,name=conferencing_check,json=conferencingCheck,proto3,oneof" json:"conferencing_check,omitempty" msg:"264320,omitempty" type:"11,omitempty"` // Specifies the type of the meeting. - ConferencingType *int32 `protobuf:"varint,45,opt,name=conferencing_type,json=conferencingType,proto3,oneof" json:"conferencing_type,omitempty" msg:"2643213,omitempty"` + ConferencingType *int32 `protobuf:"varint,45,opt,name=conferencing_type,json=conferencingType,proto3,oneof" json:"conferencing_type,omitempty" msg:"264321,omitempty" type:"3,omitempty"` // Identifies the day interval for the recurrence pattern. - DayInterval *int32 `protobuf:"varint,46,opt,name=day_interval,json=dayInterval,proto3,oneof" json:"day_interval,omitempty" msg:"332,omitempty"` + DayInterval *int32 `protobuf:"varint,46,opt,name=day_interval,json=dayInterval,proto3,oneof" json:"day_interval,omitempty" msg:"33,omitempty" type:"2,omitempty"` // Identifies the day of the month for the appointment or meeting. - DayOfMonth *int32 `protobuf:"varint,47,opt,name=day_of_month,json=dayOfMonth,proto3,oneof" json:"day_of_month,omitempty" msg:"327683,omitempty"` + DayOfMonth *int32 `protobuf:"varint,47,opt,name=day_of_month,json=dayOfMonth,proto3,oneof" json:"day_of_month,omitempty" msg:"32768,omitempty" type:"3,omitempty"` // Indicates whether a delegate responded to the meeting request. - DelegateMail *bool `protobuf:"varint,48,opt,name=delegate_mail,json=delegateMail,proto3,oneof" json:"delegate_mail,omitempty" msg:"911,omitempty"` + DelegateMail *bool `protobuf:"varint,48,opt,name=delegate_mail,json=delegateMail,proto3,oneof" json:"delegate_mail,omitempty" msg:"9,omitempty" type:"11,omitempty"` // Specifies the directory server to be used. - Directory *string `protobuf:"bytes,49,opt,name=directory,proto3,oneof" json:"directory,omitempty" msg:"26432231,omitempty"` + Directory *string `protobuf:"bytes,49,opt,name=directory,proto3,oneof" json:"directory,omitempty" msg:"264322,omitempty" type:"31,omitempty"` // Identifies the end date of the recurrence range. - EndRecurrenceDate *int32 `protobuf:"varint,50,opt,name=end_recurrence_date,json=endRecurrenceDate,proto3,oneof" json:"end_recurrence_date,omitempty" msg:"153,omitempty"` + EndRecurrenceDate *int32 `protobuf:"varint,50,opt,name=end_recurrence_date,json=endRecurrenceDate,proto3,oneof" json:"end_recurrence_date,omitempty" msg:"15,omitempty" type:"3,omitempty"` // Identifies the end time of the recurrence range. - EndRecurrenceTime *int32 `protobuf:"varint,51,opt,name=end_recurrence_time,json=endRecurrenceTime,proto3,oneof" json:"end_recurrence_time,omitempty" msg:"323,omitempty"` + EndRecurrenceTime *int32 `protobuf:"varint,51,opt,name=end_recurrence_time,json=endRecurrenceTime,proto3,oneof" json:"end_recurrence_time,omitempty" msg:"32,omitempty" type:"3,omitempty"` // Specifies the date and time, in UTC, within a recurrence pattern that an exception will replace. - ExceptionReplaceTime *int64 `protobuf:"varint,52,opt,name=exception_replace_time,json=exceptionReplaceTime,proto3,oneof" json:"exception_replace_time,omitempty" msg:"26426464,omitempty"` + ExceptionReplaceTime *int64 `protobuf:"varint,52,opt,name=exception_replace_time,json=exceptionReplaceTime,proto3,oneof" json:"exception_replace_time,omitempty" msg:"264264,omitempty" type:"64,omitempty"` // Indicates that the object is a Recurring Calendar object with one or more exceptions, and that at least one of the Exception Embedded Message objects has at least one RecipientRow structure, as described in [MS-OXCDATA] section 2.8.3. - FExceptionalAttendees *bool `protobuf:"varint,53,opt,name=f_exceptional_attendees,json=fExceptionalAttendees,proto3,oneof" json:"f_exceptional_attendees,omitempty" msg:"26426711,omitempty"` + FExceptionalAttendees *bool `protobuf:"varint,53,opt,name=f_exceptional_attendees,json=fExceptionalAttendees,proto3,oneof" json:"f_exceptional_attendees,omitempty" msg:"264267,omitempty" type:"11,omitempty"` // Indicates that the Exception Embedded Message object has a body that differs from the Recurring Calendar object. - FExceptionalBody *bool `protobuf:"varint,54,opt,name=f_exceptional_body,json=fExceptionalBody,proto3,oneof" json:"f_exceptional_body,omitempty" msg:"26419811,omitempty"` + FExceptionalBody *bool `protobuf:"varint,54,opt,name=f_exceptional_body,json=fExceptionalBody,proto3,oneof" json:"f_exceptional_body,omitempty" msg:"264198,omitempty" type:"11,omitempty"` // Indicates whether invitations have been sent for the meeting that this Meeting object represents. - FInvited *bool `protobuf:"varint,55,opt,name=f_invited,json=fInvited,proto3,oneof" json:"f_invited,omitempty" msg:"26426511,omitempty"` + FInvited *bool `protobuf:"varint,55,opt,name=f_invited,json=fInvited,proto3,oneof" json:"f_invited,omitempty" msg:"264265,omitempty" type:"11,omitempty"` // Indicates whether the Meeting Request object represents an exception to a recurring series, and whether it was forwarded (even when forwarded by the organizer) rather than being an invitation sent by the organizer. - ForwardInstance *bool `protobuf:"varint,56,opt,name=forward_instance,json=forwardInstance,proto3,oneof" json:"forward_instance,omitempty" msg:"26420211,omitempty"` + ForwardInstance *bool `protobuf:"varint,56,opt,name=forward_instance,json=forwardInstance,proto3,oneof" json:"forward_instance,omitempty" msg:"264202,omitempty" type:"11,omitempty"` // Indicates whether the Calendar folder from which the meeting was opened is another user's calendar. - FOthersAppointment *bool `protobuf:"varint,58,opt,name=f_others_appointment,json=fOthersAppointment,proto3,oneof" json:"f_others_appointment,omitempty" msg:"26427111,omitempty"` + FOthersAppointment *bool `protobuf:"varint,58,opt,name=f_others_appointment,json=fOthersAppointment,proto3,oneof" json:"f_others_appointment,omitempty" msg:"264271,omitempty" type:"11,omitempty"` // Identifies the day of the week for the appointment or meeting. - ICalendarDayOfWeekMask *int32 `protobuf:"varint,60,opt,name=i_calendar_day_of_week_mask,json=iCalendarDayOfWeekMask,proto3,oneof" json:"i_calendar_day_of_week_mask,omitempty" msg:"327693,omitempty"` + ICalendarDayOfWeekMask *int32 `protobuf:"varint,60,opt,name=i_calendar_day_of_week_mask,json=iCalendarDayOfWeekMask,proto3,oneof" json:"i_calendar_day_of_week_mask,omitempty" msg:"32769,omitempty" type:"3,omitempty"` // Contains the value of the PidLidBusyStatus property (section 2.47) on the Meeting object in the organizer's calendar at the time that the Meeting Request object or Meeting Update object was sent. - IntendedBusyStatus *int32 `protobuf:"varint,62,opt,name=intended_busy_status,json=intendedBusyStatus,proto3,oneof" json:"intended_busy_status,omitempty" msg:"2642603,omitempty"` + IntendedBusyStatus *int32 `protobuf:"varint,62,opt,name=intended_busy_status,json=intendedBusyStatus,proto3,oneof" json:"intended_busy_status,omitempty" msg:"264260,omitempty" type:"3,omitempty"` // Indicates whether the object represents an exception (including an orphan instance). - IsException *bool `protobuf:"varint,63,opt,name=is_exception,json=isException,proto3,oneof" json:"is_exception,omitempty" msg:"1011,omitempty"` + IsException *bool `protobuf:"varint,63,opt,name=is_exception,json=isException,proto3,oneof" json:"is_exception,omitempty" msg:"10,omitempty" type:"11,omitempty"` // Specifies whether the object is associated with a recurring series. - IsRecurring *bool `protobuf:"varint,64,opt,name=is_recurring,json=isRecurring,proto3,oneof" json:"is_recurring,omitempty" msg:"511,omitempty"` + IsRecurring *bool `protobuf:"varint,64,opt,name=is_recurring,json=isRecurring,proto3,oneof" json:"is_recurring,omitempty" msg:"5,omitempty" type:"11,omitempty"` // Indicates whether the user did not include any text in the body of the Meeting Response object. - IsSilent *bool `protobuf:"varint,65,opt,name=is_silent,json=isSilent,proto3,oneof" json:"is_silent,omitempty" msg:"411,omitempty"` + IsSilent *bool `protobuf:"varint,65,opt,name=is_silent,json=isSilent,proto3,oneof" json:"is_silent,omitempty" msg:"4,omitempty" type:"11,omitempty"` // Specifies the location of the event. - Location *string `protobuf:"bytes,66,opt,name=location,proto3,oneof" json:"location,omitempty" msg:"26420031,omitempty"` + Location *string `protobuf:"bytes,66,opt,name=location,proto3,oneof" json:"location,omitempty" msg:"264200,omitempty" type:"31,omitempty"` // Indicates the type of Meeting Request object or Meeting Update object. - MeetingType *int32 `protobuf:"varint,67,opt,name=meeting_type,json=meetingType,proto3,oneof" json:"meeting_type,omitempty" msg:"703,omitempty"` + MeetingType *int32 `protobuf:"varint,67,opt,name=meeting_type,json=meetingType,proto3,oneof" json:"meeting_type,omitempty" msg:"70,omitempty" type:"3,omitempty"` // Specifies the URL of the Meeting Workspace that is associated with a Calendar object. - MeetingWorkspaceUrl *string `protobuf:"bytes,68,opt,name=meeting_workspace_url,json=meetingWorkspaceUrl,proto3,oneof" json:"meeting_workspace_url,omitempty" msg:"26420131,omitempty"` + MeetingWorkspaceUrl *string `protobuf:"bytes,68,opt,name=meeting_workspace_url,json=meetingWorkspaceUrl,proto3,oneof" json:"meeting_workspace_url,omitempty" msg:"264201,omitempty" type:"31,omitempty"` // Indicates the monthly interval of the appointment or meeting. - MonthInterval *int32 `protobuf:"varint,69,opt,name=month_interval,json=monthInterval,proto3,oneof" json:"month_interval,omitempty" msg:"352,omitempty"` + MonthInterval *int32 `protobuf:"varint,69,opt,name=month_interval,json=monthInterval,proto3,oneof" json:"month_interval,omitempty" msg:"35,omitempty" type:"2,omitempty"` // Indicates the month of the year in which the appointment or meeting occurs. - MonthOfYear *int32 `protobuf:"varint,70,opt,name=month_of_year,json=monthOfYear,proto3,oneof" json:"month_of_year,omitempty" msg:"327743,omitempty"` + MonthOfYear *int32 `protobuf:"varint,70,opt,name=month_of_year,json=monthOfYear,proto3,oneof" json:"month_of_year,omitempty" msg:"32774,omitempty" type:"3,omitempty"` // Indicates the calculated month of the year in which the appointment or meeting occurs. - MonthOfYearMask *int32 `protobuf:"varint,71,opt,name=month_of_year_mask,json=monthOfYearMask,proto3,oneof" json:"month_of_year_mask,omitempty" msg:"393,omitempty"` + MonthOfYearMask *int32 `protobuf:"varint,71,opt,name=month_of_year_mask,json=monthOfYearMask,proto3,oneof" json:"month_of_year_mask,omitempty" msg:"39,omitempty" type:"3,omitempty"` // Specifies the URL to be launched when the user joins the meeting. - NetShowUrl *string `protobuf:"bytes,72,opt,name=net_show_url,json=netShowUrl,proto3,oneof" json:"net_show_url,omitempty" msg:"26432831,omitempty"` + NetShowUrl *string `protobuf:"bytes,72,opt,name=net_show_url,json=netShowUrl,proto3,oneof" json:"net_show_url,omitempty" msg:"264328,omitempty" type:"31,omitempty"` // Indicates whether the recurrence pattern has an end date. - NoEndDateFlag *bool `protobuf:"varint,73,opt,name=no_end_date_flag,json=noEndDateFlag,proto3,oneof" json:"no_end_date_flag,omitempty" msg:"3277911,omitempty"` + NoEndDateFlag *bool `protobuf:"varint,73,opt,name=no_end_date_flag,json=noEndDateFlag,proto3,oneof" json:"no_end_date_flag,omitempty" msg:"32779,omitempty" type:"11,omitempty"` // Contains a list of all of the unsendable attendees who are also resources. - NonSendableBcc *string `protobuf:"bytes,74,opt,name=non_sendable_bcc,json=nonSendableBcc,proto3,oneof" json:"non_sendable_bcc,omitempty" msg:"26736831,omitempty"` + NonSendableBcc *string `protobuf:"bytes,74,opt,name=non_sendable_bcc,json=nonSendableBcc,proto3,oneof" json:"non_sendable_bcc,omitempty" msg:"267368,omitempty" type:"31,omitempty"` // Contains a list of all of the unsendable attendees who are also optional attendees. - NonSendableCc *string `protobuf:"bytes,75,opt,name=non_sendable_cc,json=nonSendableCc,proto3,oneof" json:"non_sendable_cc,omitempty" msg:"26736731,omitempty"` + NonSendableCc *string `protobuf:"bytes,75,opt,name=non_sendable_cc,json=nonSendableCc,proto3,oneof" json:"non_sendable_cc,omitempty" msg:"267367,omitempty" type:"31,omitempty"` // Contains a list of all of the unsendable attendees who are also required attendees. - NonSendableTo *string `protobuf:"bytes,76,opt,name=non_sendable_to,json=nonSendableTo,proto3,oneof" json:"non_sendable_to,omitempty" msg:"26736631,omitempty"` + NonSendableTo *string `protobuf:"bytes,76,opt,name=non_sendable_to,json=nonSendableTo,proto3,oneof" json:"non_sendable_to,omitempty" msg:"267366,omitempty" type:"31,omitempty"` // Indicates the number of occurrences in the recurring appointment or meeting. - Occurrences *int32 `protobuf:"varint,77,opt,name=occurrences,proto3,oneof" json:"occurrences,omitempty" msg:"327733,omitempty"` + Occurrences *int32 `protobuf:"varint,77,opt,name=occurrences,proto3,oneof" json:"occurrences,omitempty" msg:"32773,omitempty" type:"3,omitempty"` // Indicates the original value of the PidLidLocation property (section 2.159) before a meeting update. - OldLocation *string `protobuf:"bytes,78,opt,name=old_location,json=oldLocation,proto3,oneof" json:"old_location,omitempty" msg:"7231,omitempty"` + OldLocation *string `protobuf:"bytes,78,opt,name=old_location,json=oldLocation,proto3,oneof" json:"old_location,omitempty" msg:"72,omitempty" type:"31,omitempty"` // Indicates the recurrence pattern for the appointment or meeting. - OldRecurrenceType *int32 `protobuf:"varint,79,opt,name=old_recurrence_type,json=oldRecurrenceType,proto3,oneof" json:"old_recurrence_type,omitempty" msg:"402,omitempty"` + OldRecurrenceType *int32 `protobuf:"varint,79,opt,name=old_recurrence_type,json=oldRecurrenceType,proto3,oneof" json:"old_recurrence_type,omitempty" msg:"40,omitempty" type:"2,omitempty"` // Indicates the original value of the PidLidAppointmentEndWhole property (section 2.14) before a meeting update. - OldWhenEndWhole *int64 `protobuf:"varint,80,opt,name=old_when_end_whole,json=oldWhenEndWhole,proto3,oneof" json:"old_when_end_whole,omitempty" msg:"7464,omitempty"` + OldWhenEndWhole *int64 `protobuf:"varint,80,opt,name=old_when_end_whole,json=oldWhenEndWhole,proto3,oneof" json:"old_when_end_whole,omitempty" msg:"74,omitempty" type:"64,omitempty"` // Indicates the original value of the PidLidAppointmentStartWhole property (section 2.29) before a meeting update. - OldWhenStartWhole *int64 `protobuf:"varint,81,opt,name=old_when_start_whole,json=oldWhenStartWhole,proto3,oneof" json:"old_when_start_whole,omitempty" msg:"7364,omitempty"` + OldWhenStartWhole *int64 `protobuf:"varint,81,opt,name=old_when_start_whole,json=oldWhenStartWhole,proto3,oneof" json:"old_when_start_whole,omitempty" msg:"73,omitempty" type:"64,omitempty"` // Specifies the password for a meeting on which the PidLidConferencingType property (section 2.66) has the value 0x00000002. - OnlinePassword *string `protobuf:"bytes,82,opt,name=online_password,json=onlinePassword,proto3,oneof" json:"online_password,omitempty" msg:"26432931,omitempty"` + OnlinePassword *string `protobuf:"bytes,82,opt,name=online_password,json=onlinePassword,proto3,oneof" json:"online_password,omitempty" msg:"264329,omitempty" type:"31,omitempty"` // Specifies optional attendees. - OptionalAttendees *string `protobuf:"bytes,83,opt,name=optional_attendees,json=optionalAttendees,proto3,oneof" json:"optional_attendees,omitempty" msg:"731,omitempty"` + OptionalAttendees *string `protobuf:"bytes,83,opt,name=optional_attendees,json=optionalAttendees,proto3,oneof" json:"optional_attendees,omitempty" msg:"7,omitempty" type:"31,omitempty"` // Specifies the email address of the organizer. - OrganizerAlias *string `protobuf:"bytes,84,opt,name=organizer_alias,json=organizerAlias,proto3,oneof" json:"organizer_alias,omitempty" msg:"26432331,omitempty"` + OrganizerAlias *string `protobuf:"bytes,84,opt,name=organizer_alias,json=organizerAlias,proto3,oneof" json:"organizer_alias,omitempty" msg:"264323,omitempty" type:"31,omitempty"` // Specifies the date and time at which a Meeting Request object was sent by the organizer. - OwnerCriticalChange *int64 `protobuf:"varint,86,opt,name=owner_critical_change,json=ownerCriticalChange,proto3,oneof" json:"owner_critical_change,omitempty" msg:"4264,omitempty"` + OwnerCriticalChange *int64 `protobuf:"varint,86,opt,name=owner_critical_change,json=ownerCriticalChange,proto3,oneof" json:"owner_critical_change,omitempty" msg:"42,omitempty" type:"64,omitempty"` // Indicates the name of the owner of the mailbox. - OwnerName *string `protobuf:"bytes,87,opt,name=owner_name,json=ownerName,proto3,oneof" json:"owner_name,omitempty" msg:"26427031,omitempty"` + OwnerName *string `protobuf:"bytes,87,opt,name=owner_name,json=ownerName,proto3,oneof" json:"owner_name,omitempty" msg:"264270,omitempty" type:"31,omitempty"` // Identifies the length, in minutes, of the appointment or meeting. - RecurrenceDuration *int32 `protobuf:"varint,88,opt,name=recurrence_duration,json=recurrenceDuration,proto3,oneof" json:"recurrence_duration,omitempty" msg:"327813,omitempty"` + RecurrenceDuration *int32 `protobuf:"varint,88,opt,name=recurrence_duration,json=recurrenceDuration,proto3,oneof" json:"recurrence_duration,omitempty" msg:"32781,omitempty" type:"3,omitempty"` // Specifies a description of the recurrence pattern of the Calendar object. - RecurrencePattern *string `protobuf:"bytes,89,opt,name=recurrence_pattern,json=recurrencePattern,proto3,oneof" json:"recurrence_pattern,omitempty" msg:"26429031,omitempty"` + RecurrencePattern *string `protobuf:"bytes,89,opt,name=recurrence_pattern,json=recurrencePattern,proto3,oneof" json:"recurrence_pattern,omitempty" msg:"264290,omitempty" type:"31,omitempty"` // Specifies the recurrence type of the recurring series. - RecurrenceType *int32 `protobuf:"varint,90,opt,name=recurrence_type,json=recurrenceType,proto3,oneof" json:"recurrence_type,omitempty" msg:"2642893,omitempty"` + RecurrenceType *int32 `protobuf:"varint,90,opt,name=recurrence_type,json=recurrenceType,proto3,oneof" json:"recurrence_type,omitempty" msg:"264289,omitempty" type:"3,omitempty"` // Specifies whether the object represents a recurring series. - Recurring *bool `protobuf:"varint,91,opt,name=recurring,proto3,oneof" json:"recurring,omitempty" msg:"26425911,omitempty"` + Recurring *bool `protobuf:"varint,91,opt,name=recurring,proto3,oneof" json:"recurring,omitempty" msg:"264259,omitempty" type:"11,omitempty"` // Specifies the interval, in minutes, between the time at which the reminder first becomes overdue and the start time of the Calendar object. - ReminderDelta *int32 `protobuf:"varint,92,opt,name=reminder_delta,json=reminderDelta,proto3,oneof" json:"reminder_delta,omitempty" msg:"2672653,omitempty"` + ReminderDelta *int32 `protobuf:"varint,92,opt,name=reminder_delta,json=reminderDelta,proto3,oneof" json:"reminder_delta,omitempty" msg:"267265,omitempty" type:"3,omitempty"` // Specifies the filename of the sound that a client is to play when the reminder for that object becomes overdue. - ReminderFileParameter *string `protobuf:"bytes,93,opt,name=reminder_file_parameter,json=reminderFileParameter,proto3,oneof" json:"reminder_file_parameter,omitempty" msg:"26731131,omitempty"` + ReminderFileParameter *string `protobuf:"bytes,93,opt,name=reminder_file_parameter,json=reminderFileParameter,proto3,oneof" json:"reminder_file_parameter,omitempty" msg:"267311,omitempty" type:"31,omitempty"` // Specifies whether the client is to respect the current values of the PidLidReminderPlaySound property (section 2.221) and the PidLidReminderFileParameter property (section 2.219), or use the default values for those properties. - ReminderOverride *bool `protobuf:"varint,94,opt,name=reminder_override,json=reminderOverride,proto3,oneof" json:"reminder_override,omitempty" msg:"26730811,omitempty"` + ReminderOverride *bool `protobuf:"varint,94,opt,name=reminder_override,json=reminderOverride,proto3,oneof" json:"reminder_override,omitempty" msg:"267308,omitempty" type:"11,omitempty"` // Specifies whether the client is to play a sound when the reminder becomes overdue. - ReminderPlaySound *bool `protobuf:"varint,95,opt,name=reminder_play_sound,json=reminderPlaySound,proto3,oneof" json:"reminder_play_sound,omitempty" msg:"26731011,omitempty"` + ReminderPlaySound *bool `protobuf:"varint,95,opt,name=reminder_play_sound,json=reminderPlaySound,proto3,oneof" json:"reminder_play_sound,omitempty" msg:"267310,omitempty" type:"11,omitempty"` // Specifies whether a reminder is set on the object. - ReminderSet *bool `protobuf:"varint,96,opt,name=reminder_set,json=reminderSet,proto3,oneof" json:"reminder_set,omitempty" msg:"26726711,omitempty"` + ReminderSet *bool `protobuf:"varint,96,opt,name=reminder_set,json=reminderSet,proto3,oneof" json:"reminder_set,omitempty" msg:"267267,omitempty" type:"11,omitempty"` // Specifies the point in time when a reminder transitions from pending to overdue. - ReminderSignalTime *int64 `protobuf:"varint,97,opt,name=reminder_signal_time,json=reminderSignalTime,proto3,oneof" json:"reminder_signal_time,omitempty" msg:"26745664,omitempty"` + ReminderSignalTime *int64 `protobuf:"varint,97,opt,name=reminder_signal_time,json=reminderSignalTime,proto3,oneof" json:"reminder_signal_time,omitempty" msg:"267456,omitempty" type:"64,omitempty"` // Specifies the initial signal time for objects that are not Calendar objects. - ReminderTime *int64 `protobuf:"varint,98,opt,name=reminder_time,json=reminderTime,proto3,oneof" json:"reminder_time,omitempty" msg:"26726664,omitempty"` + ReminderTime *int64 `protobuf:"varint,98,opt,name=reminder_time,json=reminderTime,proto3,oneof" json:"reminder_time,omitempty" msg:"267266,omitempty" type:"64,omitempty"` // Indicates the time and date of the reminder for the appointment or meeting. - ReminderTimeDate *int64 `protobuf:"varint,99,opt,name=reminder_time_date,json=reminderTimeDate,proto3,oneof" json:"reminder_time_date,omitempty" msg:"26726964,omitempty"` + ReminderTimeDate *int64 `protobuf:"varint,99,opt,name=reminder_time_date,json=reminderTimeDate,proto3,oneof" json:"reminder_time_date,omitempty" msg:"267269,omitempty" type:"64,omitempty"` // Indicates the time of the reminder for the appointment or meeting. - ReminderTimeTime *int64 `protobuf:"varint,100,opt,name=reminder_time_time,json=reminderTimeTime,proto3,oneof" json:"reminder_time_time,omitempty" msg:"26726864,omitempty"` + ReminderTimeTime *int64 `protobuf:"varint,100,opt,name=reminder_time_time,json=reminderTimeTime,proto3,oneof" json:"reminder_time_time,omitempty" msg:"267268,omitempty" type:"64,omitempty"` // This property is not set and, if set, is ignored. - ReminderType *int32 `protobuf:"varint,101,opt,name=reminder_type,json=reminderType,proto3,oneof" json:"reminder_type,omitempty" msg:"2673093,omitempty"` + ReminderType *int32 `protobuf:"varint,101,opt,name=reminder_type,json=reminderType,proto3,oneof" json:"reminder_type,omitempty" msg:"267309,omitempty" type:"3,omitempty"` // Identifies required attendees for the appointment or meeting. - RequiredAttendees *string `protobuf:"bytes,102,opt,name=required_attendees,json=requiredAttendees,proto3,oneof" json:"required_attendees,omitempty" msg:"631,omitempty"` + RequiredAttendees *string `protobuf:"bytes,102,opt,name=required_attendees,json=requiredAttendees,proto3,oneof" json:"required_attendees,omitempty" msg:"6,omitempty" type:"31,omitempty"` // Identifies resource attendees for the appointment or meeting. - ResourceAttendees *string `protobuf:"bytes,103,opt,name=resource_attendees,json=resourceAttendees,proto3,oneof" json:"resource_attendees,omitempty" msg:"831,omitempty"` + ResourceAttendees *string `protobuf:"bytes,103,opt,name=resource_attendees,json=resourceAttendees,proto3,oneof" json:"resource_attendees,omitempty" msg:"8,omitempty" type:"31,omitempty"` // Specifies the response status of an attendee. - ResponseStatus *int32 `protobuf:"varint,104,opt,name=response_status,json=responseStatus,proto3,oneof" json:"response_status,omitempty" msg:"2642323,omitempty"` + ResponseStatus *int32 `protobuf:"varint,104,opt,name=response_status,json=responseStatus,proto3,oneof" json:"response_status,omitempty" msg:"264232,omitempty" type:"3,omitempty"` // Indicates whether the Meeting Request object or Meeting Update object has been processed. - ServerProcessed *bool `protobuf:"varint,105,opt,name=server_processed,json=serverProcessed,proto3,oneof" json:"server_processed,omitempty" msg:"26766011,omitempty"` + ServerProcessed *bool `protobuf:"varint,105,opt,name=server_processed,json=serverProcessed,proto3,oneof" json:"server_processed,omitempty" msg:"267660,omitempty" type:"11,omitempty"` // Indicates what processing actions have been taken on this Meeting Request object or Meeting Update object. - ServerProcessingActions *int32 `protobuf:"varint,106,opt,name=server_processing_actions,json=serverProcessingActions,proto3,oneof" json:"server_processing_actions,omitempty" msg:"2676613,omitempty"` + ServerProcessingActions *int32 `protobuf:"varint,106,opt,name=server_processing_actions,json=serverProcessingActions,proto3,oneof" json:"server_processing_actions,omitempty" msg:"267661,omitempty" type:"3,omitempty"` // Indicates that the original MIME message contained a single MIME part. - SingleBodyiCal *bool `protobuf:"varint,107,opt,name=single_bodyi_cal,json=singleBodyiCal,proto3,oneof" json:"single_bodyi_cal,omitempty" msg:"26442711,omitempty"` + SingleBodyiCal *bool `protobuf:"varint,107,opt,name=single_bodyi_cal,json=singleBodyiCal,proto3,oneof" json:"single_bodyi_cal,omitempty" msg:"264427,omitempty" type:"11,omitempty"` // Identifies the start date of the recurrence pattern. - StartRecurrenceDate *int32 `protobuf:"varint,108,opt,name=start_recurrence_date,json=startRecurrenceDate,proto3,oneof" json:"start_recurrence_date,omitempty" msg:"133,omitempty"` + StartRecurrenceDate *int32 `protobuf:"varint,108,opt,name=start_recurrence_date,json=startRecurrenceDate,proto3,oneof" json:"start_recurrence_date,omitempty" msg:"13,omitempty" type:"3,omitempty"` // Identifies the start time of the recurrence pattern. - StartRecurrenceTime *int32 `protobuf:"varint,109,opt,name=start_recurrence_time,json=startRecurrenceTime,proto3,oneof" json:"start_recurrence_time,omitempty" msg:"143,omitempty"` + StartRecurrenceTime *int32 `protobuf:"varint,109,opt,name=start_recurrence_time,json=startRecurrenceTime,proto3,oneof" json:"start_recurrence_time,omitempty" msg:"14,omitempty" type:"3,omitempty"` // Specifies information about the time zone of a recurring meeting. - TimeZone *int32 `protobuf:"varint,110,opt,name=time_zone,json=timeZone,proto3,oneof" json:"time_zone,omitempty" msg:"123,omitempty"` + TimeZone *int32 `protobuf:"varint,110,opt,name=time_zone,json=timeZone,proto3,oneof" json:"time_zone,omitempty" msg:"12,omitempty" type:"3,omitempty"` // Specifies a human-readable description of the time zone that is represented by the data in the PidLidTimeZoneStruct property (section 2.342). - TimeZoneDescription *string `protobuf:"bytes,111,opt,name=time_zone_description,json=timeZoneDescription,proto3,oneof" json:"time_zone_description,omitempty" msg:"26429231,omitempty"` + TimeZoneDescription *string `protobuf:"bytes,111,opt,name=time_zone_description,json=timeZoneDescription,proto3,oneof" json:"time_zone_description,omitempty" msg:"264292,omitempty" type:"31,omitempty"` // Contains a list of all of the sendable attendees who are also required attendees. - ToAttendeesString *string `protobuf:"bytes,113,opt,name=to_attendees_string,json=toAttendeesString,proto3,oneof" json:"to_attendees_string,omitempty" msg:"26429931,omitempty"` + ToAttendeesString *string `protobuf:"bytes,113,opt,name=to_attendees_string,json=toAttendeesString,proto3,oneof" json:"to_attendees_string,omitempty" msg:"264299,omitempty" type:"31,omitempty"` // Identifies the number of weeks that occur between each meeting. - WeekInterval *int32 `protobuf:"varint,114,opt,name=week_interval,json=weekInterval,proto3,oneof" json:"week_interval,omitempty" msg:"342,omitempty"` + WeekInterval *int32 `protobuf:"varint,114,opt,name=week_interval,json=weekInterval,proto3,oneof" json:"week_interval,omitempty" msg:"34,omitempty" type:"2,omitempty"` // Contains the value of the PidLidLocation property (section 2.159) from the associated Meeting object. - Where *string `protobuf:"bytes,115,opt,name=where,proto3,oneof" json:"where,omitempty" msg:"231,omitempty"` + Where *string `protobuf:"bytes,115,opt,name=where,proto3,oneof" json:"where,omitempty" msg:"2,omitempty" type:"31,omitempty"` // Indicates the yearly interval of the appointment or meeting. - YearInterval *int32 `protobuf:"varint,116,opt,name=year_interval,json=yearInterval,proto3,oneof" json:"year_interval,omitempty" msg:"362,omitempty"` + YearInterval *int32 `protobuf:"varint,116,opt,name=year_interval,json=yearInterval,proto3,oneof" json:"year_interval,omitempty" msg:"36,omitempty" type:"2,omitempty"` LocationUrl *string `protobuf:"bytes,117,opt,name=location_url,json=locationUrl,proto3,oneof" json:"location_url,omitempty"` // Specifies whether to allow the meeting to be forwarded. MeetingDoNotForward *bool `protobuf:"varint,118,opt,name=meeting_do_not_forward,json=meetingDoNotForward,proto3,oneof" json:"meeting_do_not_forward,omitempty"` // Specifies the end time, in UTC, of the publishing range. - FreeBusyPublishEnd *int32 `protobuf:"varint,119,opt,name=free_busy_publish_end,json=freeBusyPublishEnd,proto3,oneof" json:"free_busy_publish_end,omitempty" msg:"266963,omitempty"` + FreeBusyPublishEnd *int32 `protobuf:"varint,119,opt,name=free_busy_publish_end,json=freeBusyPublishEnd,proto3,oneof" json:"free_busy_publish_end,omitempty" msg:"26696,omitempty" type:"3,omitempty"` // Specifies the start time, in UTC, of the publishing range. - FreeBusyPublishStart *int32 `protobuf:"varint,120,opt,name=free_busy_publish_start,json=freeBusyPublishStart,proto3,oneof" json:"free_busy_publish_start,omitempty" msg:"266953,omitempty"` + FreeBusyPublishStart *int32 `protobuf:"varint,120,opt,name=free_busy_publish_start,json=freeBusyPublishStart,proto3,oneof" json:"free_busy_publish_start,omitempty" msg:"26695,omitempty" type:"3,omitempty"` // Specifies the time, in UTC, that the data was published. - FreeBusyRangeTimestamp *int64 `protobuf:"varint,121,opt,name=free_busy_range_timestamp,json=freeBusyRangeTimestamp,proto3,oneof" json:"free_busy_range_timestamp,omitempty" msg:"2672864,omitempty"` + FreeBusyRangeTimestamp *int64 `protobuf:"varint,121,opt,name=free_busy_range_timestamp,json=freeBusyRangeTimestamp,proto3,oneof" json:"free_busy_range_timestamp,omitempty" msg:"26728,omitempty" type:"64,omitempty"` // Contains the date and time, in UTC, when an appointment or meeting ends. - ICalendarEndTime *int64 `protobuf:"varint,122,opt,name=i_calendar_end_time,json=iCalendarEndTime,proto3,oneof" json:"i_calendar_end_time,omitempty" msg:"429264,omitempty"` + ICalendarEndTime *int64 `protobuf:"varint,122,opt,name=i_calendar_end_time,json=iCalendarEndTime,proto3,oneof" json:"i_calendar_end_time,omitempty" msg:"4292,omitempty" type:"64,omitempty"` // Contains the date and time, in UTC, for the activation of the next reminder. - ICalendarReminderNextTime *int64 `protobuf:"varint,123,opt,name=i_calendar_reminder_next_time,json=iCalendarReminderNextTime,proto3,oneof" json:"i_calendar_reminder_next_time,omitempty" msg:"429864,omitempty"` + ICalendarReminderNextTime *int64 `protobuf:"varint,123,opt,name=i_calendar_reminder_next_time,json=iCalendarReminderNextTime,proto3,oneof" json:"i_calendar_reminder_next_time,omitempty" msg:"4298,omitempty" type:"64,omitempty"` // Indicates whether a client has already processed a received task communication. - Processed *bool `protobuf:"varint,124,opt,name=processed,proto3,oneof" json:"processed,omitempty" msg:"3200111,omitempty"` + Processed *bool `protobuf:"varint,124,opt,name=processed,proto3,oneof" json:"processed,omitempty" msg:"32001,omitempty" type:"11,omitempty"` // Indicates whether a client or server is to automatically respond to all meeting requests for the attendee or resource. - ScheduleInfoAutoAcceptAppointments *bool `protobuf:"varint,126,opt,name=schedule_info_auto_accept_appointments,json=scheduleInfoAutoAcceptAppointments,proto3,oneof" json:"schedule_info_auto_accept_appointments,omitempty" msg:"2673311,omitempty"` + ScheduleInfoAutoAcceptAppointments *bool `protobuf:"varint,126,opt,name=schedule_info_auto_accept_appointments,json=scheduleInfoAutoAcceptAppointments,proto3,oneof" json:"schedule_info_auto_accept_appointments,omitempty" msg:"26733,omitempty" type:"11,omitempty"` // Indicates whether the delegator wants to receive copies of the meeting-related objects that are sent to the delegate. - ScheduleInfoDelegatorWantsCopy *bool `protobuf:"varint,130,opt,name=schedule_info_delegator_wants_copy,json=scheduleInfoDelegatorWantsCopy,proto3,oneof" json:"schedule_info_delegator_wants_copy,omitempty" msg:"2669011,omitempty"` + ScheduleInfoDelegatorWantsCopy *bool `protobuf:"varint,130,opt,name=schedule_info_delegator_wants_copy,json=scheduleInfoDelegatorWantsCopy,proto3,oneof" json:"schedule_info_delegator_wants_copy,omitempty" msg:"26690,omitempty" type:"11,omitempty"` // Indicates whether the delegator wants to receive informational updates. - ScheduleInfoDelegatorWantsInfo *bool `protobuf:"varint,131,opt,name=schedule_info_delegator_wants_info,json=scheduleInfoDelegatorWantsInfo,proto3,oneof" json:"schedule_info_delegator_wants_info,omitempty" msg:"2669911,omitempty"` + ScheduleInfoDelegatorWantsInfo *bool `protobuf:"varint,131,opt,name=schedule_info_delegator_wants_info,json=scheduleInfoDelegatorWantsInfo,proto3,oneof" json:"schedule_info_delegator_wants_info,omitempty" msg:"26699,omitempty" type:"11,omitempty"` // Indicates whether a client or server, when automatically responding to meeting requests, is to decline Meeting Request objects that overlap with previously scheduled events. - ScheduleInfoDisallowOverlappingAppts *bool `protobuf:"varint,132,opt,name=schedule_info_disallow_overlapping_appts,json=scheduleInfoDisallowOverlappingAppts,proto3,oneof" json:"schedule_info_disallow_overlapping_appts,omitempty" msg:"2673511,omitempty"` + ScheduleInfoDisallowOverlappingAppts *bool `protobuf:"varint,132,opt,name=schedule_info_disallow_overlapping_appts,json=scheduleInfoDisallowOverlappingAppts,proto3,oneof" json:"schedule_info_disallow_overlapping_appts,omitempty" msg:"26735,omitempty" type:"11,omitempty"` // Indicates whether a client or server, when automatically responding to meeting requests, is to decline Meeting Request objects that represent a recurring series. - ScheduleInfoDisallowRecurringAppts *bool `protobuf:"varint,133,opt,name=schedule_info_disallow_recurring_appts,json=scheduleInfoDisallowRecurringAppts,proto3,oneof" json:"schedule_info_disallow_recurring_appts,omitempty" msg:"2673411,omitempty"` + ScheduleInfoDisallowRecurringAppts *bool `protobuf:"varint,133,opt,name=schedule_info_disallow_recurring_appts,json=scheduleInfoDisallowRecurringAppts,proto3,oneof" json:"schedule_info_disallow_recurring_appts,omitempty" msg:"26734,omitempty" type:"11,omitempty"` // Contains a value set to TRUE by the client, regardless of user input. - ScheduleInfoDontMailDelegates *bool `protobuf:"varint,134,opt,name=schedule_info_dont_mail_delegates,json=scheduleInfoDontMailDelegates,proto3,oneof" json:"schedule_info_dont_mail_delegates,omitempty" msg:"2669111,omitempty"` + ScheduleInfoDontMailDelegates *bool `protobuf:"varint,134,opt,name=schedule_info_dont_mail_delegates,json=scheduleInfoDontMailDelegates,proto3,oneof" json:"schedule_info_dont_mail_delegates,omitempty" msg:"26691,omitempty" type:"11,omitempty"` // Set to 0x00000000 when sending and is ignored on receipt. - ScheduleInfoResourceType *int32 `protobuf:"varint,144,opt,name=schedule_info_resource_type,json=scheduleInfoResourceType,proto3,oneof" json:"schedule_info_resource_type,omitempty" msg:"266893,omitempty"` + ScheduleInfoResourceType *int32 `protobuf:"varint,144,opt,name=schedule_info_resource_type,json=scheduleInfoResourceType,proto3,oneof" json:"schedule_info_resource_type,omitempty" msg:"26689,omitempty" type:"3,omitempty"` } func (x *Appointment) Reset() { diff --git a/pkg/properties/appointment.pb_gen.go b/pkg/properties/appointment.pb_gen.go index 4eaa553..af7d343 100644 --- a/pkg/properties/appointment.pb_gen.go +++ b/pkg/properties/appointment.pb_gen.go @@ -24,7 +24,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "26429631": + case "264296": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26432611": + case "264326": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2641993": + case "264199": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2642283": + case "264228": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26435911": + case "264359": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2642273": + case "264227": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26422564": + case "264225": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26422464": + case "264224": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26420664": + case "264206": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2641953": + case "264195": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "6831": + case "68": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26436211": + case "264362": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2643613": + case "264361": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2643583": + case "264358": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26435364": + case "264353": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -294,7 +294,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26435264": + case "264352": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -312,7 +312,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26428831": + case "264288": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -330,7 +330,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26425664": + case "264256": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -348,7 +348,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2641933": + case "264193": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -366,7 +366,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26419464": + case "264194": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -384,7 +384,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26422664": + case "264226": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -402,7 +402,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26420764": + case "264207": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -420,7 +420,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26420564": + case "264205": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -438,7 +438,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2642313": + case "264231": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -456,7 +456,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26422911": + case "264229": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -474,7 +474,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26426264": + case "264262": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -492,7 +492,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "164": + case "1": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -510,7 +510,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26429811": + case "264298": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -528,7 +528,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26432411": + case "264324": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -546,7 +546,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2641973": + case "264197": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -564,7 +564,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "443": + case "44": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -582,7 +582,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26430031": + case "264300": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -600,7 +600,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2641963": + case "264196": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -618,7 +618,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "373": + case "37": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -636,7 +636,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26429464": + case "264294": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -654,7 +654,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26429364": + case "264293": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -672,7 +672,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26432731": + case "264327": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -690,7 +690,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26432011": + case "264320": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -708,7 +708,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2643213": + case "264321": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -726,7 +726,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "332": + case "33": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -744,7 +744,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "327683": + case "32768": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -762,7 +762,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "911": + case "9": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -780,7 +780,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26432231": + case "264322": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -798,7 +798,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "153": + case "15": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -816,7 +816,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "323": + case "32": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -834,7 +834,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26426464": + case "264264": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -852,7 +852,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26426711": + case "264267": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -870,7 +870,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26419811": + case "264198": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -888,7 +888,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26426511": + case "264265": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -906,7 +906,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26420211": + case "264202": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -924,7 +924,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26427111": + case "264271": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -942,7 +942,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "327693": + case "32769": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -960,7 +960,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2642603": + case "264260": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -978,7 +978,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1011": + case "10": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -996,7 +996,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "511": + case "5": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1014,7 +1014,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "411": + case "4": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1032,7 +1032,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26420031": + case "264200": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1050,7 +1050,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "703": + case "70": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1068,7 +1068,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26420131": + case "264201": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1086,7 +1086,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "352": + case "35": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1104,7 +1104,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "327743": + case "32774": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1122,7 +1122,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "393": + case "39": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1140,7 +1140,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26432831": + case "264328": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1158,7 +1158,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3277911": + case "32779": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1176,7 +1176,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26736831": + case "267368": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1194,7 +1194,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26736731": + case "267367": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1212,7 +1212,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26736631": + case "267366": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1230,7 +1230,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "327733": + case "32773": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1248,7 +1248,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "7231": + case "72": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1266,7 +1266,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "402": + case "40": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1284,7 +1284,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "7464": + case "74": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1302,7 +1302,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "7364": + case "73": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1320,7 +1320,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26432931": + case "264329": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1338,7 +1338,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "731": + case "7": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1356,7 +1356,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26432331": + case "264323": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1374,7 +1374,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4264": + case "42": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1392,7 +1392,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26427031": + case "264270": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1410,7 +1410,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "327813": + case "32781": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1428,7 +1428,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26429031": + case "264290": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1446,7 +1446,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2642893": + case "264289": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1464,7 +1464,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26425911": + case "264259": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1482,7 +1482,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2672653": + case "267265": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1500,7 +1500,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26731131": + case "267311": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1518,7 +1518,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26730811": + case "267308": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1536,7 +1536,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26731011": + case "267310": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1554,7 +1554,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26726711": + case "267267": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1572,7 +1572,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26745664": + case "267456": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1590,7 +1590,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26726664": + case "267266": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1608,7 +1608,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26726964": + case "267269": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1626,7 +1626,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26726864": + case "267268": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1644,7 +1644,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2673093": + case "267309": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1662,7 +1662,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "631": + case "6": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1680,7 +1680,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "831": + case "8": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1698,7 +1698,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2642323": + case "264232": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1716,7 +1716,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26766011": + case "267660": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1734,7 +1734,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2676613": + case "267661": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1752,7 +1752,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26442711": + case "264427": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1770,7 +1770,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "133": + case "13": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1788,7 +1788,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "143": + case "14": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1806,7 +1806,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "123": + case "12": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1824,7 +1824,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26429231": + case "264292": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1842,7 +1842,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26429931": + case "264299": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1860,7 +1860,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "342": + case "34": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1878,7 +1878,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "231": + case "2": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1896,7 +1896,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "362": + case "36": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1950,7 +1950,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "266963": + case "26696": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1968,7 +1968,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "266953": + case "26695": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1986,7 +1986,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2672864": + case "26728": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2004,7 +2004,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "429264": + case "4292": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2022,7 +2022,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "429864": + case "4298": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2040,7 +2040,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3200111": + case "32001": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2058,7 +2058,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2673311": + case "26733": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2076,7 +2076,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2669011": + case "26690": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2094,7 +2094,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2669911": + case "26699": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2112,7 +2112,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2673511": + case "26735": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2130,7 +2130,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2673411": + case "26734": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2148,7 +2148,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2669111": + case "26691": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2166,7 +2166,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "266893": + case "26689": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2681,8 +2681,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // write "26429631" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x36, 0x33, 0x31) + // write "264296" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x36) if err != nil { return } @@ -2700,8 +2700,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // write "26432611" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x36, 0x31, 0x31) + // write "264326" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x36) if err != nil { return } @@ -2719,8 +2719,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // write "2641993" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x31, 0x39, 0x39, 0x33) + // write "264199" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x39) if err != nil { return } @@ -2738,8 +2738,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // write "2642283" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x32, 0x32, 0x38, 0x33) + // write "264228" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x38) if err != nil { return } @@ -2757,8 +2757,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // write "26435911" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x35, 0x39, 0x31, 0x31) + // write "264359" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x39) if err != nil { return } @@ -2776,8 +2776,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // write "2642273" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x32, 0x32, 0x37, 0x33) + // write "264227" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x37) if err != nil { return } @@ -2795,8 +2795,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // write "26422564" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x32, 0x35, 0x36, 0x34) + // write "264225" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x35) if err != nil { return } @@ -2814,8 +2814,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // write "26422464" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x32, 0x34, 0x36, 0x34) + // write "264224" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x34) if err != nil { return } @@ -2833,8 +2833,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // write "26420664" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x30, 0x36, 0x36, 0x34) + // write "264206" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x36) if err != nil { return } @@ -2852,8 +2852,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // write "2641953" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x31, 0x39, 0x35, 0x33) + // write "264195" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x35) if err != nil { return } @@ -2871,8 +2871,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // write "6831" - err = en.Append(0xa4, 0x36, 0x38, 0x33, 0x31) + // write "68" + err = en.Append(0xa2, 0x36, 0x38) if err != nil { return } @@ -2890,8 +2890,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // write "26436211" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x36, 0x32, 0x31, 0x31) + // write "264362" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x36, 0x32) if err != nil { return } @@ -2909,8 +2909,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // write "2643613" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x33, 0x36, 0x31, 0x33) + // write "264361" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x36, 0x31) if err != nil { return } @@ -2928,8 +2928,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // write "2643583" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x33, 0x35, 0x38, 0x33) + // write "264358" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x38) if err != nil { return } @@ -2947,8 +2947,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // write "26435364" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x35, 0x33, 0x36, 0x34) + // write "264353" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x33) if err != nil { return } @@ -2966,8 +2966,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000) == 0 { // if not empty - // write "26435264" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x35, 0x32, 0x36, 0x34) + // write "264352" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x32) if err != nil { return } @@ -2985,8 +2985,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000) == 0 { // if not empty - // write "26428831" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x38, 0x38, 0x33, 0x31) + // write "264288" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x38, 0x38) if err != nil { return } @@ -3004,8 +3004,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000) == 0 { // if not empty - // write "26425664" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x35, 0x36, 0x36, 0x34) + // write "264256" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x35, 0x36) if err != nil { return } @@ -3023,8 +3023,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000) == 0 { // if not empty - // write "2641933" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x31, 0x39, 0x33, 0x33) + // write "264193" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x33) if err != nil { return } @@ -3042,8 +3042,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000) == 0 { // if not empty - // write "26419464" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x34, 0x36, 0x34) + // write "264194" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x34) if err != nil { return } @@ -3061,8 +3061,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000) == 0 { // if not empty - // write "26422664" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x32, 0x36, 0x36, 0x34) + // write "264226" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x36) if err != nil { return } @@ -3080,8 +3080,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000) == 0 { // if not empty - // write "26420764" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x30, 0x37, 0x36, 0x34) + // write "264207" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x37) if err != nil { return } @@ -3099,8 +3099,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000) == 0 { // if not empty - // write "26420564" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x30, 0x35, 0x36, 0x34) + // write "264205" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x35) if err != nil { return } @@ -3118,8 +3118,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000) == 0 { // if not empty - // write "2642313" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x32, 0x33, 0x31, 0x33) + // write "264231" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x33, 0x31) if err != nil { return } @@ -3137,8 +3137,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000) == 0 { // if not empty - // write "26422911" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x32, 0x39, 0x31, 0x31) + // write "264229" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x39) if err != nil { return } @@ -3156,8 +3156,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // write "26426264" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x36, 0x32, 0x36, 0x34) + // write "264262" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x32) if err != nil { return } @@ -3175,8 +3175,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // write "164" - err = en.Append(0xa3, 0x31, 0x36, 0x34) + // write "1" + err = en.Append(0xa1, 0x31) if err != nil { return } @@ -3194,8 +3194,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // write "26429811" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x38, 0x31, 0x31) + // write "264298" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x38) if err != nil { return } @@ -3213,8 +3213,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // write "26432411" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x34, 0x31, 0x31) + // write "264324" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x34) if err != nil { return } @@ -3232,8 +3232,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // write "2641973" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x31, 0x39, 0x37, 0x33) + // write "264197" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x37) if err != nil { return } @@ -3251,8 +3251,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // write "443" - err = en.Append(0xa3, 0x34, 0x34, 0x33) + // write "44" + err = en.Append(0xa2, 0x34, 0x34) if err != nil { return } @@ -3270,8 +3270,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // write "26430031" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x30, 0x30, 0x33, 0x31) + // write "264300" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x30, 0x30) if err != nil { return } @@ -3289,8 +3289,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // write "2641963" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x31, 0x39, 0x36, 0x33) + // write "264196" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x36) if err != nil { return } @@ -3308,8 +3308,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // write "373" - err = en.Append(0xa3, 0x33, 0x37, 0x33) + // write "37" + err = en.Append(0xa2, 0x33, 0x37) if err != nil { return } @@ -3327,8 +3327,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // write "26429464" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x34, 0x36, 0x34) + // write "264294" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x34) if err != nil { return } @@ -3346,8 +3346,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // write "26429364" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x33, 0x36, 0x34) + // write "264293" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x33) if err != nil { return } @@ -3365,8 +3365,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // write "26432731" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x37, 0x33, 0x31) + // write "264327" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x37) if err != nil { return } @@ -3384,8 +3384,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // write "26432011" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x30, 0x31, 0x31) + // write "264320" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x30) if err != nil { return } @@ -3403,8 +3403,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // write "2643213" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x33, 0x32, 0x31, 0x33) + // write "264321" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x31) if err != nil { return } @@ -3422,8 +3422,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // write "332" - err = en.Append(0xa3, 0x33, 0x33, 0x32) + // write "33" + err = en.Append(0xa2, 0x33, 0x33) if err != nil { return } @@ -3441,8 +3441,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // write "327683" - err = en.Append(0xa6, 0x33, 0x32, 0x37, 0x36, 0x38, 0x33) + // write "32768" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x36, 0x38) if err != nil { return } @@ -3460,8 +3460,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // write "911" - err = en.Append(0xa3, 0x39, 0x31, 0x31) + // write "9" + err = en.Append(0xa1, 0x39) if err != nil { return } @@ -3479,8 +3479,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // write "26432231" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x32, 0x33, 0x31) + // write "264322" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x32) if err != nil { return } @@ -3498,8 +3498,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // write "153" - err = en.Append(0xa3, 0x31, 0x35, 0x33) + // write "15" + err = en.Append(0xa2, 0x31, 0x35) if err != nil { return } @@ -3517,8 +3517,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // write "323" - err = en.Append(0xa3, 0x33, 0x32, 0x33) + // write "32" + err = en.Append(0xa2, 0x33, 0x32) if err != nil { return } @@ -3536,8 +3536,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // write "26426464" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x36, 0x34, 0x36, 0x34) + // write "264264" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x34) if err != nil { return } @@ -3555,8 +3555,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // write "26426711" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x36, 0x37, 0x31, 0x31) + // write "264267" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x37) if err != nil { return } @@ -3574,8 +3574,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // write "26419811" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x38, 0x31, 0x31) + // write "264198" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x38) if err != nil { return } @@ -3593,8 +3593,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // write "26426511" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x36, 0x35, 0x31, 0x31) + // write "264265" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x35) if err != nil { return } @@ -3612,8 +3612,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // write "26420211" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x30, 0x32, 0x31, 0x31) + // write "264202" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x32) if err != nil { return } @@ -3631,8 +3631,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // write "26427111" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x37, 0x31, 0x31, 0x31) + // write "264271" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x37, 0x31) if err != nil { return } @@ -3650,8 +3650,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // write "327693" - err = en.Append(0xa6, 0x33, 0x32, 0x37, 0x36, 0x39, 0x33) + // write "32769" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x36, 0x39) if err != nil { return } @@ -3669,8 +3669,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // write "2642603" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x32, 0x36, 0x30, 0x33) + // write "264260" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x30) if err != nil { return } @@ -3688,8 +3688,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // write "1011" - err = en.Append(0xa4, 0x31, 0x30, 0x31, 0x31) + // write "10" + err = en.Append(0xa2, 0x31, 0x30) if err != nil { return } @@ -3707,8 +3707,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // write "511" - err = en.Append(0xa3, 0x35, 0x31, 0x31) + // write "5" + err = en.Append(0xa1, 0x35) if err != nil { return } @@ -3726,8 +3726,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000000) == 0 { // if not empty - // write "411" - err = en.Append(0xa3, 0x34, 0x31, 0x31) + // write "4" + err = en.Append(0xa1, 0x34) if err != nil { return } @@ -3745,8 +3745,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000000) == 0 { // if not empty - // write "26420031" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x30, 0x30, 0x33, 0x31) + // write "264200" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x30) if err != nil { return } @@ -3764,8 +3764,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000000) == 0 { // if not empty - // write "703" - err = en.Append(0xa3, 0x37, 0x30, 0x33) + // write "70" + err = en.Append(0xa2, 0x37, 0x30) if err != nil { return } @@ -3783,8 +3783,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000000) == 0 { // if not empty - // write "26420131" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x30, 0x31, 0x33, 0x31) + // write "264201" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x31) if err != nil { return } @@ -3802,8 +3802,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000000) == 0 { // if not empty - // write "352" - err = en.Append(0xa3, 0x33, 0x35, 0x32) + // write "35" + err = en.Append(0xa2, 0x33, 0x35) if err != nil { return } @@ -3821,8 +3821,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000000000) == 0 { // if not empty - // write "327743" - err = en.Append(0xa6, 0x33, 0x32, 0x37, 0x37, 0x34, 0x33) + // write "32774" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x34) if err != nil { return } @@ -3840,8 +3840,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000000000) == 0 { // if not empty - // write "393" - err = en.Append(0xa3, 0x33, 0x39, 0x33) + // write "39" + err = en.Append(0xa2, 0x33, 0x39) if err != nil { return } @@ -3859,8 +3859,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000000) == 0 { // if not empty - // write "26432831" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x38, 0x33, 0x31) + // write "264328" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x38) if err != nil { return } @@ -3878,8 +3878,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000000) == 0 { // if not empty - // write "3277911" - err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x37, 0x39, 0x31, 0x31) + // write "32779" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x39) if err != nil { return } @@ -3897,8 +3897,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1) == 0 { // if not empty - // write "26736831" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x36, 0x38, 0x33, 0x31) + // write "267368" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x38) if err != nil { return } @@ -3916,8 +3916,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2) == 0 { // if not empty - // write "26736731" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x36, 0x37, 0x33, 0x31) + // write "267367" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x37) if err != nil { return } @@ -3935,8 +3935,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4) == 0 { // if not empty - // write "26736631" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x36, 0x36, 0x33, 0x31) + // write "267366" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x36) if err != nil { return } @@ -3954,8 +3954,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8) == 0 { // if not empty - // write "327733" - err = en.Append(0xa6, 0x33, 0x32, 0x37, 0x37, 0x33, 0x33) + // write "32773" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x33) if err != nil { return } @@ -3973,8 +3973,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10) == 0 { // if not empty - // write "7231" - err = en.Append(0xa4, 0x37, 0x32, 0x33, 0x31) + // write "72" + err = en.Append(0xa2, 0x37, 0x32) if err != nil { return } @@ -3992,8 +3992,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20) == 0 { // if not empty - // write "402" - err = en.Append(0xa3, 0x34, 0x30, 0x32) + // write "40" + err = en.Append(0xa2, 0x34, 0x30) if err != nil { return } @@ -4011,8 +4011,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40) == 0 { // if not empty - // write "7464" - err = en.Append(0xa4, 0x37, 0x34, 0x36, 0x34) + // write "74" + err = en.Append(0xa2, 0x37, 0x34) if err != nil { return } @@ -4030,8 +4030,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80) == 0 { // if not empty - // write "7364" - err = en.Append(0xa4, 0x37, 0x33, 0x36, 0x34) + // write "73" + err = en.Append(0xa2, 0x37, 0x33) if err != nil { return } @@ -4049,8 +4049,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100) == 0 { // if not empty - // write "26432931" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x39, 0x33, 0x31) + // write "264329" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x39) if err != nil { return } @@ -4068,8 +4068,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200) == 0 { // if not empty - // write "731" - err = en.Append(0xa3, 0x37, 0x33, 0x31) + // write "7" + err = en.Append(0xa1, 0x37) if err != nil { return } @@ -4087,8 +4087,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400) == 0 { // if not empty - // write "26432331" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x33, 0x33, 0x31) + // write "264323" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x33) if err != nil { return } @@ -4106,8 +4106,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800) == 0 { // if not empty - // write "4264" - err = en.Append(0xa4, 0x34, 0x32, 0x36, 0x34) + // write "42" + err = en.Append(0xa2, 0x34, 0x32) if err != nil { return } @@ -4125,8 +4125,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000) == 0 { // if not empty - // write "26427031" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x37, 0x30, 0x33, 0x31) + // write "264270" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x37, 0x30) if err != nil { return } @@ -4144,8 +4144,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000) == 0 { // if not empty - // write "327813" - err = en.Append(0xa6, 0x33, 0x32, 0x37, 0x38, 0x31, 0x33) + // write "32781" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x38, 0x31) if err != nil { return } @@ -4163,8 +4163,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000) == 0 { // if not empty - // write "26429031" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x30, 0x33, 0x31) + // write "264290" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x30) if err != nil { return } @@ -4182,8 +4182,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000) == 0 { // if not empty - // write "2642893" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x32, 0x38, 0x39, 0x33) + // write "264289" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x38, 0x39) if err != nil { return } @@ -4201,8 +4201,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000) == 0 { // if not empty - // write "26425911" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x35, 0x39, 0x31, 0x31) + // write "264259" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x35, 0x39) if err != nil { return } @@ -4220,8 +4220,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000) == 0 { // if not empty - // write "2672653" - err = en.Append(0xa7, 0x32, 0x36, 0x37, 0x32, 0x36, 0x35, 0x33) + // write "267265" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x35) if err != nil { return } @@ -4239,8 +4239,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000) == 0 { // if not empty - // write "26731131" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x31, 0x31, 0x33, 0x31) + // write "267311" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x31, 0x31) if err != nil { return } @@ -4258,8 +4258,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000) == 0 { // if not empty - // write "26730811" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x30, 0x38, 0x31, 0x31) + // write "267308" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x38) if err != nil { return } @@ -4277,8 +4277,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000) == 0 { // if not empty - // write "26731011" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x31, 0x30, 0x31, 0x31) + // write "267310" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x31, 0x30) if err != nil { return } @@ -4296,8 +4296,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000) == 0 { // if not empty - // write "26726711" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x32, 0x36, 0x37, 0x31, 0x31) + // write "267267" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x37) if err != nil { return } @@ -4315,8 +4315,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000) == 0 { // if not empty - // write "26745664" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x34, 0x35, 0x36, 0x36, 0x34) + // write "267456" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x34, 0x35, 0x36) if err != nil { return } @@ -4334,8 +4334,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000) == 0 { // if not empty - // write "26726664" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x32, 0x36, 0x36, 0x36, 0x34) + // write "267266" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x36) if err != nil { return } @@ -4353,8 +4353,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000) == 0 { // if not empty - // write "26726964" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x32, 0x36, 0x39, 0x36, 0x34) + // write "267269" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x39) if err != nil { return } @@ -4372,8 +4372,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000) == 0 { // if not empty - // write "26726864" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x32, 0x36, 0x38, 0x36, 0x34) + // write "267268" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x38) if err != nil { return } @@ -4391,8 +4391,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000) == 0 { // if not empty - // write "2673093" - err = en.Append(0xa7, 0x32, 0x36, 0x37, 0x33, 0x30, 0x39, 0x33) + // write "267309" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x39) if err != nil { return } @@ -4410,8 +4410,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000) == 0 { // if not empty - // write "631" - err = en.Append(0xa3, 0x36, 0x33, 0x31) + // write "6" + err = en.Append(0xa1, 0x36) if err != nil { return } @@ -4429,8 +4429,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000) == 0 { // if not empty - // write "831" - err = en.Append(0xa3, 0x38, 0x33, 0x31) + // write "8" + err = en.Append(0xa1, 0x38) if err != nil { return } @@ -4448,8 +4448,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000) == 0 { // if not empty - // write "2642323" - err = en.Append(0xa7, 0x32, 0x36, 0x34, 0x32, 0x33, 0x32, 0x33) + // write "264232" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x33, 0x32) if err != nil { return } @@ -4467,8 +4467,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000) == 0 { // if not empty - // write "26766011" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x36, 0x36, 0x30, 0x31, 0x31) + // write "267660" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x36, 0x30) if err != nil { return } @@ -4486,8 +4486,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000) == 0 { // if not empty - // write "2676613" - err = en.Append(0xa7, 0x32, 0x36, 0x37, 0x36, 0x36, 0x31, 0x33) + // write "267661" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x36, 0x31) if err != nil { return } @@ -4505,8 +4505,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000) == 0 { // if not empty - // write "26442711" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x34, 0x32, 0x37, 0x31, 0x31) + // write "264427" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x34, 0x32, 0x37) if err != nil { return } @@ -4524,8 +4524,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000000) == 0 { // if not empty - // write "133" - err = en.Append(0xa3, 0x31, 0x33, 0x33) + // write "13" + err = en.Append(0xa2, 0x31, 0x33) if err != nil { return } @@ -4543,8 +4543,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000000) == 0 { // if not empty - // write "143" - err = en.Append(0xa3, 0x31, 0x34, 0x33) + // write "14" + err = en.Append(0xa2, 0x31, 0x34) if err != nil { return } @@ -4562,8 +4562,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000000) == 0 { // if not empty - // write "123" - err = en.Append(0xa3, 0x31, 0x32, 0x33) + // write "12" + err = en.Append(0xa2, 0x31, 0x32) if err != nil { return } @@ -4581,8 +4581,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000000) == 0 { // if not empty - // write "26429231" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x32, 0x33, 0x31) + // write "264292" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x32) if err != nil { return } @@ -4600,8 +4600,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000000) == 0 { // if not empty - // write "26429931" - err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x39, 0x33, 0x31) + // write "264299" + err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x39) if err != nil { return } @@ -4619,8 +4619,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000000) == 0 { // if not empty - // write "342" - err = en.Append(0xa3, 0x33, 0x34, 0x32) + // write "34" + err = en.Append(0xa2, 0x33, 0x34) if err != nil { return } @@ -4638,8 +4638,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000000) == 0 { // if not empty - // write "231" - err = en.Append(0xa3, 0x32, 0x33, 0x31) + // write "2" + err = en.Append(0xa1, 0x32) if err != nil { return } @@ -4657,8 +4657,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000000) == 0 { // if not empty - // write "362" - err = en.Append(0xa3, 0x33, 0x36, 0x32) + // write "36" + err = en.Append(0xa2, 0x33, 0x36) if err != nil { return } @@ -4710,8 +4710,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000000) == 0 { // if not empty - // write "266963" - err = en.Append(0xa6, 0x32, 0x36, 0x36, 0x39, 0x36, 0x33) + // write "26696" + err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x39, 0x36) if err != nil { return } @@ -4729,8 +4729,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000000) == 0 { // if not empty - // write "266953" - err = en.Append(0xa6, 0x32, 0x36, 0x36, 0x39, 0x35, 0x33) + // write "26695" + err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x39, 0x35) if err != nil { return } @@ -4748,8 +4748,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000000000) == 0 { // if not empty - // write "2672864" - err = en.Append(0xa7, 0x32, 0x36, 0x37, 0x32, 0x38, 0x36, 0x34) + // write "26728" + err = en.Append(0xa5, 0x32, 0x36, 0x37, 0x32, 0x38) if err != nil { return } @@ -4767,8 +4767,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000000000) == 0 { // if not empty - // write "429264" - err = en.Append(0xa6, 0x34, 0x32, 0x39, 0x32, 0x36, 0x34) + // write "4292" + err = en.Append(0xa4, 0x34, 0x32, 0x39, 0x32) if err != nil { return } @@ -4786,8 +4786,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000000000) == 0 { // if not empty - // write "429864" - err = en.Append(0xa6, 0x34, 0x32, 0x39, 0x38, 0x36, 0x34) + // write "4298" + err = en.Append(0xa4, 0x34, 0x32, 0x39, 0x38) if err != nil { return } @@ -4805,8 +4805,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000000000) == 0 { // if not empty - // write "3200111" - err = en.Append(0xa7, 0x33, 0x32, 0x30, 0x30, 0x31, 0x31, 0x31) + // write "32001" + err = en.Append(0xa5, 0x33, 0x32, 0x30, 0x30, 0x31) if err != nil { return } @@ -4824,8 +4824,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000000000) == 0 { // if not empty - // write "2673311" - err = en.Append(0xa7, 0x32, 0x36, 0x37, 0x33, 0x33, 0x31, 0x31) + // write "26733" + err = en.Append(0xa5, 0x32, 0x36, 0x37, 0x33, 0x33) if err != nil { return } @@ -4843,8 +4843,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000000000) == 0 { // if not empty - // write "2669011" - err = en.Append(0xa7, 0x32, 0x36, 0x36, 0x39, 0x30, 0x31, 0x31) + // write "26690" + err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x39, 0x30) if err != nil { return } @@ -4862,8 +4862,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000000000) == 0 { // if not empty - // write "2669911" - err = en.Append(0xa7, 0x32, 0x36, 0x36, 0x39, 0x39, 0x31, 0x31) + // write "26699" + err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x39, 0x39) if err != nil { return } @@ -4881,8 +4881,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000000000) == 0 { // if not empty - // write "2673511" - err = en.Append(0xa7, 0x32, 0x36, 0x37, 0x33, 0x35, 0x31, 0x31) + // write "26735" + err = en.Append(0xa5, 0x32, 0x36, 0x37, 0x33, 0x35) if err != nil { return } @@ -4900,8 +4900,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000000000) == 0 { // if not empty - // write "2673411" - err = en.Append(0xa7, 0x32, 0x36, 0x37, 0x33, 0x34, 0x31, 0x31) + // write "26734" + err = en.Append(0xa5, 0x32, 0x36, 0x37, 0x33, 0x34) if err != nil { return } @@ -4919,8 +4919,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000000000) == 0 { // if not empty - // write "2669111" - err = en.Append(0xa7, 0x32, 0x36, 0x36, 0x39, 0x31, 0x31, 0x31) + // write "26691" + err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x39, 0x31) if err != nil { return } @@ -4938,8 +4938,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000000000) == 0 { // if not empty - // write "266893" - err = en.Append(0xa6, 0x32, 0x36, 0x36, 0x38, 0x39, 0x33) + // write "26689" + err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x38, 0x39) if err != nil { return } @@ -5443,8 +5443,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // string "26429631" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x36, 0x33, 0x31) + // string "264296" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x36) if z.AllAttendeesString == nil { o = msgp.AppendNil(o) } else { @@ -5452,8 +5452,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // string "26432611" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x36, 0x31, 0x31) + // string "264326" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x36) if z.AllowExternalCheck == nil { o = msgp.AppendNil(o) } else { @@ -5461,8 +5461,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // string "2641993" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x31, 0x39, 0x39, 0x33) + // string "264199" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x39) if z.AppointmentAuxiliaryFlags == nil { o = msgp.AppendNil(o) } else { @@ -5470,8 +5470,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // string "2642283" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x32, 0x32, 0x38, 0x33) + // string "264228" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x38) if z.AppointmentColor == nil { o = msgp.AppendNil(o) } else { @@ -5479,8 +5479,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // string "26435911" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x35, 0x39, 0x31, 0x31) + // string "264359" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x39) if z.AppointmentCounterProposal == nil { o = msgp.AppendNil(o) } else { @@ -5488,8 +5488,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // string "2642273" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x32, 0x32, 0x37, 0x33) + // string "264227" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x37) if z.AppointmentDuration == nil { o = msgp.AppendNil(o) } else { @@ -5497,8 +5497,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // string "26422564" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x32, 0x35, 0x36, 0x34) + // string "264225" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x35) if z.AppointmentEndDate == nil { o = msgp.AppendNil(o) } else { @@ -5506,8 +5506,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // string "26422464" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x32, 0x34, 0x36, 0x34) + // string "264224" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x34) if z.AppointmentEndTime == nil { o = msgp.AppendNil(o) } else { @@ -5515,8 +5515,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // string "26420664" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x30, 0x36, 0x36, 0x34) + // string "264206" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x36) if z.AppointmentEndWhole == nil { o = msgp.AppendNil(o) } else { @@ -5524,8 +5524,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // string "2641953" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x31, 0x39, 0x35, 0x33) + // string "264195" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x35) if z.AppointmentLastSequence == nil { o = msgp.AppendNil(o) } else { @@ -5533,8 +5533,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // string "6831" - o = append(o, 0xa4, 0x36, 0x38, 0x33, 0x31) + // string "68" + o = append(o, 0xa2, 0x36, 0x38) if z.AppointmentMessageClass == nil { o = msgp.AppendNil(o) } else { @@ -5542,8 +5542,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // string "26436211" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x36, 0x32, 0x31, 0x31) + // string "264362" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x36, 0x32) if z.AppointmentNotAllowPropose == nil { o = msgp.AppendNil(o) } else { @@ -5551,8 +5551,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // string "2643613" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x33, 0x36, 0x31, 0x33) + // string "264361" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x36, 0x31) if z.AppointmentProposalNumber == nil { o = msgp.AppendNil(o) } else { @@ -5560,8 +5560,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // string "2643583" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x33, 0x35, 0x38, 0x33) + // string "264358" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x38) if z.AppointmentProposedDuration == nil { o = msgp.AppendNil(o) } else { @@ -5569,8 +5569,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // string "26435364" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x35, 0x33, 0x36, 0x34) + // string "264353" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x33) if z.AppointmentProposedEndWhole == nil { o = msgp.AppendNil(o) } else { @@ -5578,8 +5578,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000) == 0 { // if not empty - // string "26435264" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x35, 0x32, 0x36, 0x34) + // string "264352" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x32) if z.AppointmentProposedStartWhole == nil { o = msgp.AppendNil(o) } else { @@ -5587,8 +5587,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000) == 0 { // if not empty - // string "26428831" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x38, 0x38, 0x33, 0x31) + // string "264288" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x38, 0x38) if z.AppointmentReplyName == nil { o = msgp.AppendNil(o) } else { @@ -5596,8 +5596,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000) == 0 { // if not empty - // string "26425664" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x35, 0x36, 0x36, 0x34) + // string "264256" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x35, 0x36) if z.AppointmentReplyTime == nil { o = msgp.AppendNil(o) } else { @@ -5605,8 +5605,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000) == 0 { // if not empty - // string "2641933" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x31, 0x39, 0x33, 0x33) + // string "264193" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x33) if z.AppointmentSequence == nil { o = msgp.AppendNil(o) } else { @@ -5614,8 +5614,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000) == 0 { // if not empty - // string "26419464" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x34, 0x36, 0x34) + // string "264194" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x34) if z.AppointmentSequenceTime == nil { o = msgp.AppendNil(o) } else { @@ -5623,8 +5623,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000) == 0 { // if not empty - // string "26422664" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x32, 0x36, 0x36, 0x34) + // string "264226" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x36) if z.AppointmentStartDate == nil { o = msgp.AppendNil(o) } else { @@ -5632,8 +5632,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000) == 0 { // if not empty - // string "26420764" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x30, 0x37, 0x36, 0x34) + // string "264207" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x37) if z.AppointmentStartTime == nil { o = msgp.AppendNil(o) } else { @@ -5641,8 +5641,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000) == 0 { // if not empty - // string "26420564" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x30, 0x35, 0x36, 0x34) + // string "264205" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x35) if z.AppointmentStartWhole == nil { o = msgp.AppendNil(o) } else { @@ -5650,8 +5650,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000) == 0 { // if not empty - // string "2642313" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x32, 0x33, 0x31, 0x33) + // string "264231" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x33, 0x31) if z.AppointmentStateFlags == nil { o = msgp.AppendNil(o) } else { @@ -5659,8 +5659,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000) == 0 { // if not empty - // string "26422911" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x32, 0x39, 0x31, 0x31) + // string "264229" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x39) if z.AppointmentSubType == nil { o = msgp.AppendNil(o) } else { @@ -5668,8 +5668,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // string "26426264" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x36, 0x32, 0x36, 0x34) + // string "264262" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x32) if z.AppointmentUpdateTime == nil { o = msgp.AppendNil(o) } else { @@ -5677,8 +5677,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // string "164" - o = append(o, 0xa3, 0x31, 0x36, 0x34) + // string "1" + o = append(o, 0xa1, 0x31) if z.AttendeeCriticalChange == nil { o = msgp.AppendNil(o) } else { @@ -5686,8 +5686,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // string "26429811" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x38, 0x31, 0x31) + // string "264298" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x38) if z.AutoFillLocation == nil { o = msgp.AppendNil(o) } else { @@ -5695,8 +5695,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // string "26432411" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x34, 0x31, 0x31) + // string "264324" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x34) if z.AutoStartCheck == nil { o = msgp.AppendNil(o) } else { @@ -5704,8 +5704,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // string "2641973" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x31, 0x39, 0x37, 0x33) + // string "264197" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x37) if z.BusyStatus == nil { o = msgp.AppendNil(o) } else { @@ -5713,8 +5713,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // string "443" - o = append(o, 0xa3, 0x34, 0x34, 0x33) + // string "44" + o = append(o, 0xa2, 0x34, 0x34) if z.CalendarType == nil { o = msgp.AppendNil(o) } else { @@ -5722,8 +5722,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // string "26430031" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x30, 0x30, 0x33, 0x31) + // string "264300" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x30, 0x30) if z.CcAttendeesString == nil { o = msgp.AppendNil(o) } else { @@ -5731,8 +5731,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // string "2641963" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x31, 0x39, 0x36, 0x33) + // string "264196" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x36) if z.ChangeHighlight == nil { o = msgp.AppendNil(o) } else { @@ -5740,8 +5740,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // string "373" - o = append(o, 0xa3, 0x33, 0x37, 0x33) + // string "37" + o = append(o, 0xa2, 0x33, 0x37) if z.ClientIntent == nil { o = msgp.AppendNil(o) } else { @@ -5749,8 +5749,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // string "26429464" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x34, 0x36, 0x34) + // string "264294" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x34) if z.ClipEnd == nil { o = msgp.AppendNil(o) } else { @@ -5758,8 +5758,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // string "26429364" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x33, 0x36, 0x34) + // string "264293" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x33) if z.ClipStart == nil { o = msgp.AppendNil(o) } else { @@ -5767,8 +5767,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // string "26432731" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x37, 0x33, 0x31) + // string "264327" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x37) if z.CollaborateDoc == nil { o = msgp.AppendNil(o) } else { @@ -5776,8 +5776,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // string "26432011" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x30, 0x31, 0x31) + // string "264320" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x30) if z.ConferencingCheck == nil { o = msgp.AppendNil(o) } else { @@ -5785,8 +5785,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // string "2643213" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x33, 0x32, 0x31, 0x33) + // string "264321" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x31) if z.ConferencingType == nil { o = msgp.AppendNil(o) } else { @@ -5794,8 +5794,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // string "332" - o = append(o, 0xa3, 0x33, 0x33, 0x32) + // string "33" + o = append(o, 0xa2, 0x33, 0x33) if z.DayInterval == nil { o = msgp.AppendNil(o) } else { @@ -5803,8 +5803,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // string "327683" - o = append(o, 0xa6, 0x33, 0x32, 0x37, 0x36, 0x38, 0x33) + // string "32768" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x36, 0x38) if z.DayOfMonth == nil { o = msgp.AppendNil(o) } else { @@ -5812,8 +5812,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // string "911" - o = append(o, 0xa3, 0x39, 0x31, 0x31) + // string "9" + o = append(o, 0xa1, 0x39) if z.DelegateMail == nil { o = msgp.AppendNil(o) } else { @@ -5821,8 +5821,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // string "26432231" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x32, 0x33, 0x31) + // string "264322" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x32) if z.Directory == nil { o = msgp.AppendNil(o) } else { @@ -5830,8 +5830,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // string "153" - o = append(o, 0xa3, 0x31, 0x35, 0x33) + // string "15" + o = append(o, 0xa2, 0x31, 0x35) if z.EndRecurrenceDate == nil { o = msgp.AppendNil(o) } else { @@ -5839,8 +5839,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // string "323" - o = append(o, 0xa3, 0x33, 0x32, 0x33) + // string "32" + o = append(o, 0xa2, 0x33, 0x32) if z.EndRecurrenceTime == nil { o = msgp.AppendNil(o) } else { @@ -5848,8 +5848,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // string "26426464" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x36, 0x34, 0x36, 0x34) + // string "264264" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x34) if z.ExceptionReplaceTime == nil { o = msgp.AppendNil(o) } else { @@ -5857,8 +5857,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // string "26426711" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x36, 0x37, 0x31, 0x31) + // string "264267" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x37) if z.FExceptionalAttendees == nil { o = msgp.AppendNil(o) } else { @@ -5866,8 +5866,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // string "26419811" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x38, 0x31, 0x31) + // string "264198" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x38) if z.FExceptionalBody == nil { o = msgp.AppendNil(o) } else { @@ -5875,8 +5875,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // string "26426511" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x36, 0x35, 0x31, 0x31) + // string "264265" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x35) if z.FInvited == nil { o = msgp.AppendNil(o) } else { @@ -5884,8 +5884,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // string "26420211" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x30, 0x32, 0x31, 0x31) + // string "264202" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x32) if z.ForwardInstance == nil { o = msgp.AppendNil(o) } else { @@ -5893,8 +5893,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // string "26427111" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x37, 0x31, 0x31, 0x31) + // string "264271" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x37, 0x31) if z.FOthersAppointment == nil { o = msgp.AppendNil(o) } else { @@ -5902,8 +5902,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // string "327693" - o = append(o, 0xa6, 0x33, 0x32, 0x37, 0x36, 0x39, 0x33) + // string "32769" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x36, 0x39) if z.ICalendarDayOfWeekMask == nil { o = msgp.AppendNil(o) } else { @@ -5911,8 +5911,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // string "2642603" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x32, 0x36, 0x30, 0x33) + // string "264260" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x30) if z.IntendedBusyStatus == nil { o = msgp.AppendNil(o) } else { @@ -5920,8 +5920,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // string "1011" - o = append(o, 0xa4, 0x31, 0x30, 0x31, 0x31) + // string "10" + o = append(o, 0xa2, 0x31, 0x30) if z.IsException == nil { o = msgp.AppendNil(o) } else { @@ -5929,8 +5929,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // string "511" - o = append(o, 0xa3, 0x35, 0x31, 0x31) + // string "5" + o = append(o, 0xa1, 0x35) if z.IsRecurring == nil { o = msgp.AppendNil(o) } else { @@ -5938,8 +5938,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000000) == 0 { // if not empty - // string "411" - o = append(o, 0xa3, 0x34, 0x31, 0x31) + // string "4" + o = append(o, 0xa1, 0x34) if z.IsSilent == nil { o = msgp.AppendNil(o) } else { @@ -5947,8 +5947,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000000) == 0 { // if not empty - // string "26420031" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x30, 0x30, 0x33, 0x31) + // string "264200" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x30) if z.Location == nil { o = msgp.AppendNil(o) } else { @@ -5956,8 +5956,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000000) == 0 { // if not empty - // string "703" - o = append(o, 0xa3, 0x37, 0x30, 0x33) + // string "70" + o = append(o, 0xa2, 0x37, 0x30) if z.MeetingType == nil { o = msgp.AppendNil(o) } else { @@ -5965,8 +5965,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000000) == 0 { // if not empty - // string "26420131" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x30, 0x31, 0x33, 0x31) + // string "264201" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x31) if z.MeetingWorkspaceUrl == nil { o = msgp.AppendNil(o) } else { @@ -5974,8 +5974,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000000) == 0 { // if not empty - // string "352" - o = append(o, 0xa3, 0x33, 0x35, 0x32) + // string "35" + o = append(o, 0xa2, 0x33, 0x35) if z.MonthInterval == nil { o = msgp.AppendNil(o) } else { @@ -5983,8 +5983,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000000000) == 0 { // if not empty - // string "327743" - o = append(o, 0xa6, 0x33, 0x32, 0x37, 0x37, 0x34, 0x33) + // string "32774" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x34) if z.MonthOfYear == nil { o = msgp.AppendNil(o) } else { @@ -5992,8 +5992,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000000000) == 0 { // if not empty - // string "393" - o = append(o, 0xa3, 0x33, 0x39, 0x33) + // string "39" + o = append(o, 0xa2, 0x33, 0x39) if z.MonthOfYearMask == nil { o = msgp.AppendNil(o) } else { @@ -6001,8 +6001,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000000000) == 0 { // if not empty - // string "26432831" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x38, 0x33, 0x31) + // string "264328" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x38) if z.NetShowUrl == nil { o = msgp.AppendNil(o) } else { @@ -6010,8 +6010,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000000) == 0 { // if not empty - // string "3277911" - o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x37, 0x39, 0x31, 0x31) + // string "32779" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x39) if z.NoEndDateFlag == nil { o = msgp.AppendNil(o) } else { @@ -6019,8 +6019,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1) == 0 { // if not empty - // string "26736831" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x36, 0x38, 0x33, 0x31) + // string "267368" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x38) if z.NonSendableBcc == nil { o = msgp.AppendNil(o) } else { @@ -6028,8 +6028,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2) == 0 { // if not empty - // string "26736731" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x36, 0x37, 0x33, 0x31) + // string "267367" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x37) if z.NonSendableCc == nil { o = msgp.AppendNil(o) } else { @@ -6037,8 +6037,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4) == 0 { // if not empty - // string "26736631" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x36, 0x36, 0x33, 0x31) + // string "267366" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x36) if z.NonSendableTo == nil { o = msgp.AppendNil(o) } else { @@ -6046,8 +6046,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8) == 0 { // if not empty - // string "327733" - o = append(o, 0xa6, 0x33, 0x32, 0x37, 0x37, 0x33, 0x33) + // string "32773" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x33) if z.Occurrences == nil { o = msgp.AppendNil(o) } else { @@ -6055,8 +6055,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10) == 0 { // if not empty - // string "7231" - o = append(o, 0xa4, 0x37, 0x32, 0x33, 0x31) + // string "72" + o = append(o, 0xa2, 0x37, 0x32) if z.OldLocation == nil { o = msgp.AppendNil(o) } else { @@ -6064,8 +6064,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20) == 0 { // if not empty - // string "402" - o = append(o, 0xa3, 0x34, 0x30, 0x32) + // string "40" + o = append(o, 0xa2, 0x34, 0x30) if z.OldRecurrenceType == nil { o = msgp.AppendNil(o) } else { @@ -6073,8 +6073,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40) == 0 { // if not empty - // string "7464" - o = append(o, 0xa4, 0x37, 0x34, 0x36, 0x34) + // string "74" + o = append(o, 0xa2, 0x37, 0x34) if z.OldWhenEndWhole == nil { o = msgp.AppendNil(o) } else { @@ -6082,8 +6082,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80) == 0 { // if not empty - // string "7364" - o = append(o, 0xa4, 0x37, 0x33, 0x36, 0x34) + // string "73" + o = append(o, 0xa2, 0x37, 0x33) if z.OldWhenStartWhole == nil { o = msgp.AppendNil(o) } else { @@ -6091,8 +6091,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100) == 0 { // if not empty - // string "26432931" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x39, 0x33, 0x31) + // string "264329" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x39) if z.OnlinePassword == nil { o = msgp.AppendNil(o) } else { @@ -6100,8 +6100,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200) == 0 { // if not empty - // string "731" - o = append(o, 0xa3, 0x37, 0x33, 0x31) + // string "7" + o = append(o, 0xa1, 0x37) if z.OptionalAttendees == nil { o = msgp.AppendNil(o) } else { @@ -6109,8 +6109,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400) == 0 { // if not empty - // string "26432331" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x33, 0x33, 0x31) + // string "264323" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x33) if z.OrganizerAlias == nil { o = msgp.AppendNil(o) } else { @@ -6118,8 +6118,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800) == 0 { // if not empty - // string "4264" - o = append(o, 0xa4, 0x34, 0x32, 0x36, 0x34) + // string "42" + o = append(o, 0xa2, 0x34, 0x32) if z.OwnerCriticalChange == nil { o = msgp.AppendNil(o) } else { @@ -6127,8 +6127,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000) == 0 { // if not empty - // string "26427031" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x37, 0x30, 0x33, 0x31) + // string "264270" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x37, 0x30) if z.OwnerName == nil { o = msgp.AppendNil(o) } else { @@ -6136,8 +6136,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000) == 0 { // if not empty - // string "327813" - o = append(o, 0xa6, 0x33, 0x32, 0x37, 0x38, 0x31, 0x33) + // string "32781" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x38, 0x31) if z.RecurrenceDuration == nil { o = msgp.AppendNil(o) } else { @@ -6145,8 +6145,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000) == 0 { // if not empty - // string "26429031" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x30, 0x33, 0x31) + // string "264290" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x30) if z.RecurrencePattern == nil { o = msgp.AppendNil(o) } else { @@ -6154,8 +6154,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000) == 0 { // if not empty - // string "2642893" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x32, 0x38, 0x39, 0x33) + // string "264289" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x38, 0x39) if z.RecurrenceType == nil { o = msgp.AppendNil(o) } else { @@ -6163,8 +6163,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000) == 0 { // if not empty - // string "26425911" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x35, 0x39, 0x31, 0x31) + // string "264259" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x35, 0x39) if z.Recurring == nil { o = msgp.AppendNil(o) } else { @@ -6172,8 +6172,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000) == 0 { // if not empty - // string "2672653" - o = append(o, 0xa7, 0x32, 0x36, 0x37, 0x32, 0x36, 0x35, 0x33) + // string "267265" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x35) if z.ReminderDelta == nil { o = msgp.AppendNil(o) } else { @@ -6181,8 +6181,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000) == 0 { // if not empty - // string "26731131" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x31, 0x31, 0x33, 0x31) + // string "267311" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x31, 0x31) if z.ReminderFileParameter == nil { o = msgp.AppendNil(o) } else { @@ -6190,8 +6190,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000) == 0 { // if not empty - // string "26730811" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x30, 0x38, 0x31, 0x31) + // string "267308" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x38) if z.ReminderOverride == nil { o = msgp.AppendNil(o) } else { @@ -6199,8 +6199,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000) == 0 { // if not empty - // string "26731011" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x31, 0x30, 0x31, 0x31) + // string "267310" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x31, 0x30) if z.ReminderPlaySound == nil { o = msgp.AppendNil(o) } else { @@ -6208,8 +6208,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000) == 0 { // if not empty - // string "26726711" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x32, 0x36, 0x37, 0x31, 0x31) + // string "267267" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x37) if z.ReminderSet == nil { o = msgp.AppendNil(o) } else { @@ -6217,8 +6217,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000) == 0 { // if not empty - // string "26745664" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x34, 0x35, 0x36, 0x36, 0x34) + // string "267456" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x34, 0x35, 0x36) if z.ReminderSignalTime == nil { o = msgp.AppendNil(o) } else { @@ -6226,8 +6226,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000) == 0 { // if not empty - // string "26726664" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x32, 0x36, 0x36, 0x36, 0x34) + // string "267266" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x36) if z.ReminderTime == nil { o = msgp.AppendNil(o) } else { @@ -6235,8 +6235,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000) == 0 { // if not empty - // string "26726964" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x32, 0x36, 0x39, 0x36, 0x34) + // string "267269" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x39) if z.ReminderTimeDate == nil { o = msgp.AppendNil(o) } else { @@ -6244,8 +6244,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000) == 0 { // if not empty - // string "26726864" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x32, 0x36, 0x38, 0x36, 0x34) + // string "267268" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x38) if z.ReminderTimeTime == nil { o = msgp.AppendNil(o) } else { @@ -6253,8 +6253,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000) == 0 { // if not empty - // string "2673093" - o = append(o, 0xa7, 0x32, 0x36, 0x37, 0x33, 0x30, 0x39, 0x33) + // string "267309" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x39) if z.ReminderType == nil { o = msgp.AppendNil(o) } else { @@ -6262,8 +6262,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000) == 0 { // if not empty - // string "631" - o = append(o, 0xa3, 0x36, 0x33, 0x31) + // string "6" + o = append(o, 0xa1, 0x36) if z.RequiredAttendees == nil { o = msgp.AppendNil(o) } else { @@ -6271,8 +6271,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000) == 0 { // if not empty - // string "831" - o = append(o, 0xa3, 0x38, 0x33, 0x31) + // string "8" + o = append(o, 0xa1, 0x38) if z.ResourceAttendees == nil { o = msgp.AppendNil(o) } else { @@ -6280,8 +6280,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000) == 0 { // if not empty - // string "2642323" - o = append(o, 0xa7, 0x32, 0x36, 0x34, 0x32, 0x33, 0x32, 0x33) + // string "264232" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x33, 0x32) if z.ResponseStatus == nil { o = msgp.AppendNil(o) } else { @@ -6289,8 +6289,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000) == 0 { // if not empty - // string "26766011" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x36, 0x36, 0x30, 0x31, 0x31) + // string "267660" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x36, 0x30) if z.ServerProcessed == nil { o = msgp.AppendNil(o) } else { @@ -6298,8 +6298,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000) == 0 { // if not empty - // string "2676613" - o = append(o, 0xa7, 0x32, 0x36, 0x37, 0x36, 0x36, 0x31, 0x33) + // string "267661" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x36, 0x31) if z.ServerProcessingActions == nil { o = msgp.AppendNil(o) } else { @@ -6307,8 +6307,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000) == 0 { // if not empty - // string "26442711" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x34, 0x32, 0x37, 0x31, 0x31) + // string "264427" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x34, 0x32, 0x37) if z.SingleBodyiCal == nil { o = msgp.AppendNil(o) } else { @@ -6316,8 +6316,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000000) == 0 { // if not empty - // string "133" - o = append(o, 0xa3, 0x31, 0x33, 0x33) + // string "13" + o = append(o, 0xa2, 0x31, 0x33) if z.StartRecurrenceDate == nil { o = msgp.AppendNil(o) } else { @@ -6325,8 +6325,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000000) == 0 { // if not empty - // string "143" - o = append(o, 0xa3, 0x31, 0x34, 0x33) + // string "14" + o = append(o, 0xa2, 0x31, 0x34) if z.StartRecurrenceTime == nil { o = msgp.AppendNil(o) } else { @@ -6334,8 +6334,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000000) == 0 { // if not empty - // string "123" - o = append(o, 0xa3, 0x31, 0x32, 0x33) + // string "12" + o = append(o, 0xa2, 0x31, 0x32) if z.TimeZone == nil { o = msgp.AppendNil(o) } else { @@ -6343,8 +6343,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000000) == 0 { // if not empty - // string "26429231" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x32, 0x33, 0x31) + // string "264292" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x32) if z.TimeZoneDescription == nil { o = msgp.AppendNil(o) } else { @@ -6352,8 +6352,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000000) == 0 { // if not empty - // string "26429931" - o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x39, 0x39, 0x33, 0x31) + // string "264299" + o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x39) if z.ToAttendeesString == nil { o = msgp.AppendNil(o) } else { @@ -6361,8 +6361,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000000) == 0 { // if not empty - // string "342" - o = append(o, 0xa3, 0x33, 0x34, 0x32) + // string "34" + o = append(o, 0xa2, 0x33, 0x34) if z.WeekInterval == nil { o = msgp.AppendNil(o) } else { @@ -6370,8 +6370,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000000) == 0 { // if not empty - // string "231" - o = append(o, 0xa3, 0x32, 0x33, 0x31) + // string "2" + o = append(o, 0xa1, 0x32) if z.Where == nil { o = msgp.AppendNil(o) } else { @@ -6379,8 +6379,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000000) == 0 { // if not empty - // string "362" - o = append(o, 0xa3, 0x33, 0x36, 0x32) + // string "36" + o = append(o, 0xa2, 0x33, 0x36) if z.YearInterval == nil { o = msgp.AppendNil(o) } else { @@ -6402,8 +6402,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.AppendBool(o, *z.MeetingDoNotForward) } if (zb0001Mask[1] & 0x80000000000) == 0 { // if not empty - // string "266963" - o = append(o, 0xa6, 0x32, 0x36, 0x36, 0x39, 0x36, 0x33) + // string "26696" + o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x39, 0x36) if z.FreeBusyPublishEnd == nil { o = msgp.AppendNil(o) } else { @@ -6411,8 +6411,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000000) == 0 { // if not empty - // string "266953" - o = append(o, 0xa6, 0x32, 0x36, 0x36, 0x39, 0x35, 0x33) + // string "26695" + o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x39, 0x35) if z.FreeBusyPublishStart == nil { o = msgp.AppendNil(o) } else { @@ -6420,8 +6420,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000000000) == 0 { // if not empty - // string "2672864" - o = append(o, 0xa7, 0x32, 0x36, 0x37, 0x32, 0x38, 0x36, 0x34) + // string "26728" + o = append(o, 0xa5, 0x32, 0x36, 0x37, 0x32, 0x38) if z.FreeBusyRangeTimestamp == nil { o = msgp.AppendNil(o) } else { @@ -6429,8 +6429,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000000000) == 0 { // if not empty - // string "429264" - o = append(o, 0xa6, 0x34, 0x32, 0x39, 0x32, 0x36, 0x34) + // string "4292" + o = append(o, 0xa4, 0x34, 0x32, 0x39, 0x32) if z.ICalendarEndTime == nil { o = msgp.AppendNil(o) } else { @@ -6438,8 +6438,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000000000) == 0 { // if not empty - // string "429864" - o = append(o, 0xa6, 0x34, 0x32, 0x39, 0x38, 0x36, 0x34) + // string "4298" + o = append(o, 0xa4, 0x34, 0x32, 0x39, 0x38) if z.ICalendarReminderNextTime == nil { o = msgp.AppendNil(o) } else { @@ -6447,8 +6447,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000000000) == 0 { // if not empty - // string "3200111" - o = append(o, 0xa7, 0x33, 0x32, 0x30, 0x30, 0x31, 0x31, 0x31) + // string "32001" + o = append(o, 0xa5, 0x33, 0x32, 0x30, 0x30, 0x31) if z.Processed == nil { o = msgp.AppendNil(o) } else { @@ -6456,8 +6456,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000000000) == 0 { // if not empty - // string "2673311" - o = append(o, 0xa7, 0x32, 0x36, 0x37, 0x33, 0x33, 0x31, 0x31) + // string "26733" + o = append(o, 0xa5, 0x32, 0x36, 0x37, 0x33, 0x33) if z.ScheduleInfoAutoAcceptAppointments == nil { o = msgp.AppendNil(o) } else { @@ -6465,8 +6465,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000000000) == 0 { // if not empty - // string "2669011" - o = append(o, 0xa7, 0x32, 0x36, 0x36, 0x39, 0x30, 0x31, 0x31) + // string "26690" + o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x39, 0x30) if z.ScheduleInfoDelegatorWantsCopy == nil { o = msgp.AppendNil(o) } else { @@ -6474,8 +6474,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000000000) == 0 { // if not empty - // string "2669911" - o = append(o, 0xa7, 0x32, 0x36, 0x36, 0x39, 0x39, 0x31, 0x31) + // string "26699" + o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x39, 0x39) if z.ScheduleInfoDelegatorWantsInfo == nil { o = msgp.AppendNil(o) } else { @@ -6483,8 +6483,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000000000) == 0 { // if not empty - // string "2673511" - o = append(o, 0xa7, 0x32, 0x36, 0x37, 0x33, 0x35, 0x31, 0x31) + // string "26735" + o = append(o, 0xa5, 0x32, 0x36, 0x37, 0x33, 0x35) if z.ScheduleInfoDisallowOverlappingAppts == nil { o = msgp.AppendNil(o) } else { @@ -6492,8 +6492,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000000000) == 0 { // if not empty - // string "2673411" - o = append(o, 0xa7, 0x32, 0x36, 0x37, 0x33, 0x34, 0x31, 0x31) + // string "26734" + o = append(o, 0xa5, 0x32, 0x36, 0x37, 0x33, 0x34) if z.ScheduleInfoDisallowRecurringAppts == nil { o = msgp.AppendNil(o) } else { @@ -6501,8 +6501,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000000000) == 0 { // if not empty - // string "2669111" - o = append(o, 0xa7, 0x32, 0x36, 0x36, 0x39, 0x31, 0x31, 0x31) + // string "26691" + o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x39, 0x31) if z.ScheduleInfoDontMailDelegates == nil { o = msgp.AppendNil(o) } else { @@ -6510,8 +6510,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000000000) == 0 { // if not empty - // string "266893" - o = append(o, 0xa6, 0x32, 0x36, 0x36, 0x38, 0x39, 0x33) + // string "26689" + o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x38, 0x39) if z.ScheduleInfoResourceType == nil { o = msgp.AppendNil(o) } else { @@ -6539,7 +6539,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "26429631": + case "264296": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6556,7 +6556,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26432611": + case "264326": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6573,7 +6573,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2641993": + case "264199": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6590,7 +6590,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2642283": + case "264228": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6607,7 +6607,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26435911": + case "264359": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6624,7 +6624,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2642273": + case "264227": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6641,7 +6641,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26422564": + case "264225": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6658,7 +6658,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26422464": + case "264224": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6675,7 +6675,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26420664": + case "264206": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6692,7 +6692,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2641953": + case "264195": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6709,7 +6709,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "6831": + case "68": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6726,7 +6726,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26436211": + case "264362": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6743,7 +6743,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2643613": + case "264361": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6760,7 +6760,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2643583": + case "264358": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6777,7 +6777,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26435364": + case "264353": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6794,7 +6794,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26435264": + case "264352": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6811,7 +6811,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26428831": + case "264288": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6828,7 +6828,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26425664": + case "264256": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6845,7 +6845,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2641933": + case "264193": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6862,7 +6862,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26419464": + case "264194": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6879,7 +6879,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26422664": + case "264226": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6896,7 +6896,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26420764": + case "264207": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6913,7 +6913,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26420564": + case "264205": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6930,7 +6930,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2642313": + case "264231": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6947,7 +6947,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26422911": + case "264229": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6964,7 +6964,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26426264": + case "264262": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6981,7 +6981,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "164": + case "1": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6998,7 +6998,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26429811": + case "264298": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7015,7 +7015,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26432411": + case "264324": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7032,7 +7032,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2641973": + case "264197": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7049,7 +7049,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "443": + case "44": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7066,7 +7066,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26430031": + case "264300": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7083,7 +7083,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2641963": + case "264196": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7100,7 +7100,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "373": + case "37": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7117,7 +7117,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26429464": + case "264294": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7134,7 +7134,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26429364": + case "264293": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7151,7 +7151,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26432731": + case "264327": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7168,7 +7168,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26432011": + case "264320": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7185,7 +7185,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2643213": + case "264321": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7202,7 +7202,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "332": + case "33": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7219,7 +7219,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "327683": + case "32768": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7236,7 +7236,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "911": + case "9": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7253,7 +7253,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26432231": + case "264322": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7270,7 +7270,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "153": + case "15": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7287,7 +7287,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "323": + case "32": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7304,7 +7304,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26426464": + case "264264": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7321,7 +7321,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26426711": + case "264267": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7338,7 +7338,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26419811": + case "264198": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7355,7 +7355,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26426511": + case "264265": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7372,7 +7372,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26420211": + case "264202": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7389,7 +7389,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26427111": + case "264271": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7406,7 +7406,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "327693": + case "32769": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7423,7 +7423,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2642603": + case "264260": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7440,7 +7440,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1011": + case "10": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7457,7 +7457,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "511": + case "5": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7474,7 +7474,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "411": + case "4": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7491,7 +7491,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26420031": + case "264200": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7508,7 +7508,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "703": + case "70": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7525,7 +7525,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26420131": + case "264201": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7542,7 +7542,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "352": + case "35": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7559,7 +7559,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "327743": + case "32774": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7576,7 +7576,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "393": + case "39": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7593,7 +7593,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26432831": + case "264328": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7610,7 +7610,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3277911": + case "32779": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7627,7 +7627,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26736831": + case "267368": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7644,7 +7644,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26736731": + case "267367": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7661,7 +7661,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26736631": + case "267366": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7678,7 +7678,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "327733": + case "32773": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7695,7 +7695,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "7231": + case "72": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7712,7 +7712,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "402": + case "40": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7729,7 +7729,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "7464": + case "74": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7746,7 +7746,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "7364": + case "73": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7763,7 +7763,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26432931": + case "264329": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7780,7 +7780,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "731": + case "7": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7797,7 +7797,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26432331": + case "264323": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7814,7 +7814,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4264": + case "42": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7831,7 +7831,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26427031": + case "264270": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7848,7 +7848,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "327813": + case "32781": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7865,7 +7865,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26429031": + case "264290": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7882,7 +7882,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2642893": + case "264289": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7899,7 +7899,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26425911": + case "264259": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7916,7 +7916,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2672653": + case "267265": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7933,7 +7933,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26731131": + case "267311": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7950,7 +7950,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26730811": + case "267308": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7967,7 +7967,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26731011": + case "267310": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7984,7 +7984,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26726711": + case "267267": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8001,7 +8001,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26745664": + case "267456": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8018,7 +8018,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26726664": + case "267266": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8035,7 +8035,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26726964": + case "267269": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8052,7 +8052,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26726864": + case "267268": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8069,7 +8069,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2673093": + case "267309": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8086,7 +8086,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "631": + case "6": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8103,7 +8103,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "831": + case "8": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8120,7 +8120,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2642323": + case "264232": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8137,7 +8137,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26766011": + case "267660": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8154,7 +8154,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2676613": + case "267661": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8171,7 +8171,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26442711": + case "264427": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8188,7 +8188,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "133": + case "13": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8205,7 +8205,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "143": + case "14": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8222,7 +8222,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "123": + case "12": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8239,7 +8239,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26429231": + case "264292": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8256,7 +8256,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26429931": + case "264299": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8273,7 +8273,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "342": + case "34": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8290,7 +8290,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "231": + case "2": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8307,7 +8307,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "362": + case "36": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8358,7 +8358,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "266963": + case "26696": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8375,7 +8375,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "266953": + case "26695": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8392,7 +8392,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2672864": + case "26728": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8409,7 +8409,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "429264": + case "4292": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8426,7 +8426,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "429864": + case "4298": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8443,7 +8443,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3200111": + case "32001": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8460,7 +8460,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2673311": + case "26733": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8477,7 +8477,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2669011": + case "26690": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8494,7 +8494,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2669911": + case "26699": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8511,7 +8511,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2673511": + case "26735": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8528,7 +8528,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2673411": + case "26734": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8545,7 +8545,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2669111": + case "26691": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8562,7 +8562,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "266893": + case "26689": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8593,631 +8593,631 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Appointment) Msgsize() (s int) { - s = 3 + 9 + s = 3 + 7 if z.AllAttendeesString == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AllAttendeesString) } - s += 9 + s += 7 if z.AllowExternalCheck == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 7 if z.AppointmentAuxiliaryFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.AppointmentColor == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.AppointmentCounterProposal == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 7 if z.AppointmentDuration == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.AppointmentEndDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.AppointmentEndTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.AppointmentEndWhole == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.AppointmentLastSequence == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 3 if z.AppointmentMessageClass == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AppointmentMessageClass) } - s += 9 + s += 7 if z.AppointmentNotAllowPropose == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 7 if z.AppointmentProposalNumber == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.AppointmentProposedDuration == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.AppointmentProposedEndWhole == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.AppointmentProposedStartWhole == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.AppointmentReplyName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AppointmentReplyName) } - s += 9 + s += 7 if z.AppointmentReplyTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.AppointmentSequence == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.AppointmentSequenceTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.AppointmentStartDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.AppointmentStartTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.AppointmentStartWhole == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.AppointmentStateFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.AppointmentSubType == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.AppointmentUpdateTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 4 + s += 2 if z.AttendeeCriticalChange == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.AutoFillLocation == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.AutoStartCheck == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 7 if z.BusyStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 3 if z.CalendarType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.CcAttendeesString == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CcAttendeesString) } - s += 8 + s += 7 if z.ChangeHighlight == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 3 if z.ClientIntent == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.ClipEnd == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.ClipStart == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.CollaborateDoc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CollaborateDoc) } - s += 9 + s += 7 if z.ConferencingCheck == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 7 if z.ConferencingType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 3 if z.DayInterval == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 6 if z.DayOfMonth == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 2 if z.DelegateMail == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.Directory == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Directory) } - s += 4 + s += 3 if z.EndRecurrenceDate == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 3 if z.EndRecurrenceTime == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.ExceptionReplaceTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.FExceptionalAttendees == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.FExceptionalBody == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.FInvited == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.ForwardInstance == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.FOthersAppointment == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 6 if z.ICalendarDayOfWeekMask == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.IntendedBusyStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 3 if z.IsException == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 4 + s += 2 if z.IsRecurring == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 4 + s += 2 if z.IsSilent == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.Location == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Location) } - s += 4 + s += 3 if z.MeetingType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.MeetingWorkspaceUrl == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.MeetingWorkspaceUrl) } - s += 4 + s += 3 if z.MonthInterval == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 6 if z.MonthOfYear == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 3 if z.MonthOfYearMask == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.NetShowUrl == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.NetShowUrl) } - s += 8 + s += 6 if z.NoEndDateFlag == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.NonSendableBcc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.NonSendableBcc) } - s += 9 + s += 7 if z.NonSendableCc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.NonSendableCc) } - s += 9 + s += 7 if z.NonSendableTo == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.NonSendableTo) } - s += 7 + s += 6 if z.Occurrences == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 3 if z.OldLocation == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OldLocation) } - s += 4 + s += 3 if z.OldRecurrenceType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 3 if z.OldWhenEndWhole == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 5 + s += 3 if z.OldWhenStartWhole == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.OnlinePassword == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OnlinePassword) } - s += 4 + s += 2 if z.OptionalAttendees == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OptionalAttendees) } - s += 9 + s += 7 if z.OrganizerAlias == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OrganizerAlias) } - s += 5 + s += 3 if z.OwnerCriticalChange == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.OwnerName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OwnerName) } - s += 7 + s += 6 if z.RecurrenceDuration == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.RecurrencePattern == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.RecurrencePattern) } - s += 8 + s += 7 if z.RecurrenceType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.Recurring == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 7 if z.ReminderDelta == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.ReminderFileParameter == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReminderFileParameter) } - s += 9 + s += 7 if z.ReminderOverride == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.ReminderPlaySound == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.ReminderSet == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.ReminderSignalTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.ReminderTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.ReminderTimeDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.ReminderTimeTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.ReminderType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 2 if z.RequiredAttendees == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.RequiredAttendees) } - s += 4 + s += 2 if z.ResourceAttendees == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ResourceAttendees) } - s += 8 + s += 7 if z.ResponseStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.ServerProcessed == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 7 if z.ServerProcessingActions == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.SingleBodyiCal == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 4 + s += 3 if z.StartRecurrenceDate == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 3 if z.StartRecurrenceTime == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 3 if z.TimeZone == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.TimeZoneDescription == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TimeZoneDescription) } - s += 9 + s += 7 if z.ToAttendeesString == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ToAttendeesString) } - s += 4 + s += 3 if z.WeekInterval == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 2 if z.Where == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Where) } - s += 4 + s += 3 if z.YearInterval == nil { s += msgp.NilSize } else { @@ -9235,79 +9235,79 @@ func (z *Appointment) Msgsize() (s int) { } else { s += msgp.BoolSize } - s += 7 + s += 6 if z.FreeBusyPublishEnd == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 6 if z.FreeBusyPublishStart == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.FreeBusyRangeTimestamp == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 5 if z.ICalendarEndTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 5 if z.ICalendarReminderNextTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 6 if z.Processed == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.ScheduleInfoAutoAcceptAppointments == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.ScheduleInfoDelegatorWantsCopy == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.ScheduleInfoDelegatorWantsInfo == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.ScheduleInfoDisallowOverlappingAppts == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.ScheduleInfoDisallowRecurringAppts == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.ScheduleInfoDontMailDelegates == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 6 if z.ScheduleInfoResourceType == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/attachment.pb.go b/pkg/properties/attachment.pb.go index 3cdc443..50c24a2 100644 --- a/pkg/properties/attachment.pb.go +++ b/pkg/properties/attachment.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: attachment.proto package properties @@ -52,43 +52,43 @@ type Attachment struct { // Contains the provider type data associated with a web reference attachment. AttachmentProviderType *string `protobuf:"bytes,5,opt,name=attachment_provider_type,json=attachmentProviderType,proto3,oneof" json:"attachment_provider_type,omitempty"` // Contains the base of a relative URI. - AttachContentBase *string `protobuf:"bytes,7,opt,name=attach_content_base,json=attachContentBase,proto3,oneof" json:"attach_content_base,omitempty" msg:"1409731,omitempty"` + AttachContentBase *string `protobuf:"bytes,7,opt,name=attach_content_base,json=attachContentBase,proto3,oneof" json:"attach_content_base,omitempty" msg:"14097,omitempty" type:"31,omitempty"` // Contains a content identifier unique to the Message object that matches a corresponding "cid:" URI schema reference in the HTML body of the Message object. - AttachContentId *string `protobuf:"bytes,8,opt,name=attach_content_id,json=attachContentId,proto3,oneof" json:"attach_content_id,omitempty" msg:"1409831,omitempty"` + AttachContentId *string `protobuf:"bytes,8,opt,name=attach_content_id,json=attachContentId,proto3,oneof" json:"attach_content_id,omitempty" msg:"14098,omitempty" type:"31,omitempty"` // Contains a relative or full URI that matches a corresponding reference in the HTML body of a Message object. - AttachContentLocation *string `protobuf:"bytes,9,opt,name=attach_content_location,json=attachContentLocation,proto3,oneof" json:"attach_content_location,omitempty" msg:"1409931,omitempty"` + AttachContentLocation *string `protobuf:"bytes,9,opt,name=attach_content_location,json=attachContentLocation,proto3,oneof" json:"attach_content_location,omitempty" msg:"14099,omitempty" type:"31,omitempty"` // Contains a file name extension that indicates the document type of an attachment. - AttachExtension *string `protobuf:"bytes,13,opt,name=attach_extension,json=attachExtension,proto3,oneof" json:"attach_extension,omitempty" msg:"1408331,omitempty"` + AttachExtension *string `protobuf:"bytes,13,opt,name=attach_extension,json=attachExtension,proto3,oneof" json:"attach_extension,omitempty" msg:"14083,omitempty" type:"31,omitempty"` // Contains the 8.3 name of the PidTagAttachLongFilename property (section 2.595). - AttachFilename *string `protobuf:"bytes,14,opt,name=attach_filename,json=attachFilename,proto3,oneof" json:"attach_filename,omitempty" msg:"1408431,omitempty"` + AttachFilename *string `protobuf:"bytes,14,opt,name=attach_filename,json=attachFilename,proto3,oneof" json:"attach_filename,omitempty" msg:"14084,omitempty" type:"31,omitempty"` // Indicates which body formats might reference this attachment when rendering data. - AttachFlags *int32 `protobuf:"varint,15,opt,name=attach_flags,json=attachFlags,proto3,oneof" json:"attach_flags,omitempty" msg:"141003,omitempty"` + AttachFlags *int32 `protobuf:"varint,15,opt,name=attach_flags,json=attachFlags,proto3,oneof" json:"attach_flags,omitempty" msg:"14100,omitempty" type:"3,omitempty"` // Contains the full filename and extension of the Attachment object. - AttachLongFilename *string `protobuf:"bytes,16,opt,name=attach_long_filename,json=attachLongFilename,proto3,oneof" json:"attach_long_filename,omitempty" msg:"1408731,omitempty"` + AttachLongFilename *string `protobuf:"bytes,16,opt,name=attach_long_filename,json=attachLongFilename,proto3,oneof" json:"attach_long_filename,omitempty" msg:"14087,omitempty" type:"31,omitempty"` // Contains the fully-qualified path and file name with extension. - AttachLongPathname *string `protobuf:"bytes,17,opt,name=attach_long_pathname,json=attachLongPathname,proto3,oneof" json:"attach_long_pathname,omitempty" msg:"1409331,omitempty"` + AttachLongPathname *string `protobuf:"bytes,17,opt,name=attach_long_pathname,json=attachLongPathname,proto3,oneof" json:"attach_long_pathname,omitempty" msg:"14093,omitempty" type:"31,omitempty"` // Indicates that a contact photo attachment is attached to a Contact object. - AttachmentContactPhoto *bool `protobuf:"varint,18,opt,name=attachment_contact_photo,json=attachmentContactPhoto,proto3,oneof" json:"attachment_contact_photo,omitempty" msg:"3276711,omitempty"` + AttachmentContactPhoto *bool `protobuf:"varint,18,opt,name=attachment_contact_photo,json=attachmentContactPhoto,proto3,oneof" json:"attachment_contact_photo,omitempty" msg:"32767,omitempty" type:"11,omitempty"` // Indicates special handling for an Attachment object. - AttachmentFlags *int32 `protobuf:"varint,19,opt,name=attachment_flags,json=attachmentFlags,proto3,oneof" json:"attachment_flags,omitempty" msg:"327653,omitempty"` + AttachmentFlags *int32 `protobuf:"varint,19,opt,name=attachment_flags,json=attachmentFlags,proto3,oneof" json:"attachment_flags,omitempty" msg:"32765,omitempty" type:"3,omitempty"` // Indicates whether an Attachment object is hidden from the end user. - AttachmentHidden *bool `protobuf:"varint,20,opt,name=attachment_hidden,json=attachmentHidden,proto3,oneof" json:"attachment_hidden,omitempty" msg:"3276611,omitempty"` + AttachmentHidden *bool `protobuf:"varint,20,opt,name=attachment_hidden,json=attachmentHidden,proto3,oneof" json:"attachment_hidden,omitempty" msg:"32766,omitempty" type:"11,omitempty"` // Contains the type of Message object to which an attachment is linked. - AttachmentLinkId *int32 `protobuf:"varint,21,opt,name=attachment_link_id,json=attachmentLinkId,proto3,oneof" json:"attachment_link_id,omitempty" msg:"327623,omitempty"` + AttachmentLinkId *int32 `protobuf:"varint,21,opt,name=attachment_link_id,json=attachmentLinkId,proto3,oneof" json:"attachment_link_id,omitempty" msg:"32762,omitempty" type:"3,omitempty"` // Represents the way the contents of an attachment are accessed. - AttachMethod *int32 `protobuf:"varint,22,opt,name=attach_method,json=attachMethod,proto3,oneof" json:"attach_method,omitempty" msg:"140853,omitempty"` + AttachMethod *int32 `protobuf:"varint,22,opt,name=attach_method,json=attachMethod,proto3,oneof" json:"attach_method,omitempty" msg:"14085,omitempty" type:"3,omitempty"` // Contains a content-type MIME header. - AttachMimeTag *string `protobuf:"bytes,23,opt,name=attach_mime_tag,json=attachMimeTag,proto3,oneof" json:"attach_mime_tag,omitempty" msg:"1409431,omitempty"` + AttachMimeTag *string `protobuf:"bytes,23,opt,name=attach_mime_tag,json=attachMimeTag,proto3,oneof" json:"attach_mime_tag,omitempty" msg:"14094,omitempty" type:"31,omitempty"` // Identifies the Attachment object within its Message object. - AttachNumber *int32 `protobuf:"varint,24,opt,name=attach_number,json=attachNumber,proto3,oneof" json:"attach_number,omitempty" msg:"36173,omitempty"` + AttachNumber *int32 `protobuf:"varint,24,opt,name=attach_number,json=attachNumber,proto3,oneof" json:"attach_number,omitempty" msg:"3617,omitempty" type:"3,omitempty"` // Contains the 8.3 name of the PidTagAttachLongPathname property (section 2.596). - AttachPathname *string `protobuf:"bytes,25,opt,name=attach_pathname,json=attachPathname,proto3,oneof" json:"attach_pathname,omitempty" msg:"1408831,omitempty"` + AttachPathname *string `protobuf:"bytes,25,opt,name=attach_pathname,json=attachPathname,proto3,oneof" json:"attach_pathname,omitempty" msg:"14088,omitempty" type:"31,omitempty"` // Contains the size, in bytes, consumed by the Attachment object on the server. - AttachSize *int32 `protobuf:"varint,27,opt,name=attach_size,json=attachSize,proto3,oneof" json:"attach_size,omitempty" msg:"36163,omitempty"` + AttachSize *int32 `protobuf:"varint,27,opt,name=attach_size,json=attachSize,proto3,oneof" json:"attach_size,omitempty" msg:"3616,omitempty" type:"3,omitempty"` // Contains the name of an attachment file, modified so that it can be correlated with TNEF messages. - AttachTransportName *string `protobuf:"bytes,29,opt,name=attach_transport_name,json=attachTransportName,proto3,oneof" json:"attach_transport_name,omitempty" msg:"1409231,omitempty"` + AttachTransportName *string `protobuf:"bytes,29,opt,name=attach_transport_name,json=attachTransportName,proto3,oneof" json:"attach_transport_name,omitempty" msg:"14092,omitempty" type:"31,omitempty"` // Specifies the character set of an attachment received via MIME with the content-type of text. - TextAttachmentCharset *string `protobuf:"bytes,31,opt,name=text_attachment_charset,json=textAttachmentCharset,proto3,oneof" json:"text_attachment_charset,omitempty" msg:"1410731,omitempty"` + TextAttachmentCharset *string `protobuf:"bytes,31,opt,name=text_attachment_charset,json=textAttachmentCharset,proto3,oneof" json:"text_attachment_charset,omitempty" msg:"14107,omitempty" type:"31,omitempty"` } func (x *Attachment) Reset() { diff --git a/pkg/properties/attachment.pb_gen.go b/pkg/properties/attachment.pb_gen.go index 9de4bdc..e155139 100644 --- a/pkg/properties/attachment.pb_gen.go +++ b/pkg/properties/attachment.pb_gen.go @@ -96,7 +96,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1409731": + case "14097": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1409831": + case "14098": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1409931": + case "14099": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1408331": + case "14083": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1408431": + case "14084": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "141003": + case "14100": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1408731": + case "14087": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1409331": + case "14093": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3276711": + case "32767": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "327653": + case "32765": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3276611": + case "32766": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -294,7 +294,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "327623": + case "32762": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -312,7 +312,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "140853": + case "14085": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -330,7 +330,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1409431": + case "14094": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -348,7 +348,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "36173": + case "3617": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -366,7 +366,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1408831": + case "14088": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -384,7 +384,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "36163": + case "3616": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -402,7 +402,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1409231": + case "14092": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -420,7 +420,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1410731": + case "14107": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -607,8 +607,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "1409731" - err = en.Append(0xa7, 0x31, 0x34, 0x30, 0x39, 0x37, 0x33, 0x31) + // write "14097" + err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x39, 0x37) if err != nil { return } @@ -626,8 +626,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // write "1409831" - err = en.Append(0xa7, 0x31, 0x34, 0x30, 0x39, 0x38, 0x33, 0x31) + // write "14098" + err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x39, 0x38) if err != nil { return } @@ -645,8 +645,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // write "1409931" - err = en.Append(0xa7, 0x31, 0x34, 0x30, 0x39, 0x39, 0x33, 0x31) + // write "14099" + err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x39, 0x39) if err != nil { return } @@ -664,8 +664,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // write "1408331" - err = en.Append(0xa7, 0x31, 0x34, 0x30, 0x38, 0x33, 0x33, 0x31) + // write "14083" + err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x38, 0x33) if err != nil { return } @@ -683,8 +683,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // write "1408431" - err = en.Append(0xa7, 0x31, 0x34, 0x30, 0x38, 0x34, 0x33, 0x31) + // write "14084" + err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x38, 0x34) if err != nil { return } @@ -702,8 +702,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // write "141003" - err = en.Append(0xa6, 0x31, 0x34, 0x31, 0x30, 0x30, 0x33) + // write "14100" + err = en.Append(0xa5, 0x31, 0x34, 0x31, 0x30, 0x30) if err != nil { return } @@ -721,8 +721,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // write "1408731" - err = en.Append(0xa7, 0x31, 0x34, 0x30, 0x38, 0x37, 0x33, 0x31) + // write "14087" + err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x38, 0x37) if err != nil { return } @@ -740,8 +740,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // write "1409331" - err = en.Append(0xa7, 0x31, 0x34, 0x30, 0x39, 0x33, 0x33, 0x31) + // write "14093" + err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x39, 0x33) if err != nil { return } @@ -759,8 +759,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // write "3276711" - err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x36, 0x37, 0x31, 0x31) + // write "32767" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x36, 0x37) if err != nil { return } @@ -778,8 +778,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // write "327653" - err = en.Append(0xa6, 0x33, 0x32, 0x37, 0x36, 0x35, 0x33) + // write "32765" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x36, 0x35) if err != nil { return } @@ -797,8 +797,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000) == 0 { // if not empty - // write "3276611" - err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x36, 0x36, 0x31, 0x31) + // write "32766" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x36, 0x36) if err != nil { return } @@ -816,8 +816,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8000) == 0 { // if not empty - // write "327623" - err = en.Append(0xa6, 0x33, 0x32, 0x37, 0x36, 0x32, 0x33) + // write "32762" + err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x36, 0x32) if err != nil { return } @@ -835,8 +835,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10000) == 0 { // if not empty - // write "140853" - err = en.Append(0xa6, 0x31, 0x34, 0x30, 0x38, 0x35, 0x33) + // write "14085" + err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x38, 0x35) if err != nil { return } @@ -854,8 +854,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20000) == 0 { // if not empty - // write "1409431" - err = en.Append(0xa7, 0x31, 0x34, 0x30, 0x39, 0x34, 0x33, 0x31) + // write "14094" + err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x39, 0x34) if err != nil { return } @@ -873,8 +873,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40000) == 0 { // if not empty - // write "36173" - err = en.Append(0xa5, 0x33, 0x36, 0x31, 0x37, 0x33) + // write "3617" + err = en.Append(0xa4, 0x33, 0x36, 0x31, 0x37) if err != nil { return } @@ -892,8 +892,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80000) == 0 { // if not empty - // write "1408831" - err = en.Append(0xa7, 0x31, 0x34, 0x30, 0x38, 0x38, 0x33, 0x31) + // write "14088" + err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x38, 0x38) if err != nil { return } @@ -911,8 +911,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100000) == 0 { // if not empty - // write "36163" - err = en.Append(0xa5, 0x33, 0x36, 0x31, 0x36, 0x33) + // write "3616" + err = en.Append(0xa4, 0x33, 0x36, 0x31, 0x36) if err != nil { return } @@ -930,8 +930,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200000) == 0 { // if not empty - // write "1409231" - err = en.Append(0xa7, 0x31, 0x34, 0x30, 0x39, 0x32, 0x33, 0x31) + // write "14092" + err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x39, 0x32) if err != nil { return } @@ -949,8 +949,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400000) == 0 { // if not empty - // write "1410731" - err = en.Append(0xa7, 0x31, 0x34, 0x31, 0x30, 0x37, 0x33, 0x31) + // write "14107" + err = en.Append(0xa5, 0x31, 0x34, 0x31, 0x30, 0x37) if err != nil { return } @@ -1086,8 +1086,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.AppendString(o, *z.AttachmentProviderType) } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "1409731" - o = append(o, 0xa7, 0x31, 0x34, 0x30, 0x39, 0x37, 0x33, 0x31) + // string "14097" + o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x39, 0x37) if z.AttachContentBase == nil { o = msgp.AppendNil(o) } else { @@ -1095,8 +1095,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // string "1409831" - o = append(o, 0xa7, 0x31, 0x34, 0x30, 0x39, 0x38, 0x33, 0x31) + // string "14098" + o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x39, 0x38) if z.AttachContentId == nil { o = msgp.AppendNil(o) } else { @@ -1104,8 +1104,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // string "1409931" - o = append(o, 0xa7, 0x31, 0x34, 0x30, 0x39, 0x39, 0x33, 0x31) + // string "14099" + o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x39, 0x39) if z.AttachContentLocation == nil { o = msgp.AppendNil(o) } else { @@ -1113,8 +1113,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // string "1408331" - o = append(o, 0xa7, 0x31, 0x34, 0x30, 0x38, 0x33, 0x33, 0x31) + // string "14083" + o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x38, 0x33) if z.AttachExtension == nil { o = msgp.AppendNil(o) } else { @@ -1122,8 +1122,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // string "1408431" - o = append(o, 0xa7, 0x31, 0x34, 0x30, 0x38, 0x34, 0x33, 0x31) + // string "14084" + o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x38, 0x34) if z.AttachFilename == nil { o = msgp.AppendNil(o) } else { @@ -1131,8 +1131,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // string "141003" - o = append(o, 0xa6, 0x31, 0x34, 0x31, 0x30, 0x30, 0x33) + // string "14100" + o = append(o, 0xa5, 0x31, 0x34, 0x31, 0x30, 0x30) if z.AttachFlags == nil { o = msgp.AppendNil(o) } else { @@ -1140,8 +1140,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // string "1408731" - o = append(o, 0xa7, 0x31, 0x34, 0x30, 0x38, 0x37, 0x33, 0x31) + // string "14087" + o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x38, 0x37) if z.AttachLongFilename == nil { o = msgp.AppendNil(o) } else { @@ -1149,8 +1149,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // string "1409331" - o = append(o, 0xa7, 0x31, 0x34, 0x30, 0x39, 0x33, 0x33, 0x31) + // string "14093" + o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x39, 0x33) if z.AttachLongPathname == nil { o = msgp.AppendNil(o) } else { @@ -1158,8 +1158,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // string "3276711" - o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x36, 0x37, 0x31, 0x31) + // string "32767" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x36, 0x37) if z.AttachmentContactPhoto == nil { o = msgp.AppendNil(o) } else { @@ -1167,8 +1167,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // string "327653" - o = append(o, 0xa6, 0x33, 0x32, 0x37, 0x36, 0x35, 0x33) + // string "32765" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x36, 0x35) if z.AttachmentFlags == nil { o = msgp.AppendNil(o) } else { @@ -1176,8 +1176,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000) == 0 { // if not empty - // string "3276611" - o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x36, 0x36, 0x31, 0x31) + // string "32766" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x36, 0x36) if z.AttachmentHidden == nil { o = msgp.AppendNil(o) } else { @@ -1185,8 +1185,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8000) == 0 { // if not empty - // string "327623" - o = append(o, 0xa6, 0x33, 0x32, 0x37, 0x36, 0x32, 0x33) + // string "32762" + o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x36, 0x32) if z.AttachmentLinkId == nil { o = msgp.AppendNil(o) } else { @@ -1194,8 +1194,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10000) == 0 { // if not empty - // string "140853" - o = append(o, 0xa6, 0x31, 0x34, 0x30, 0x38, 0x35, 0x33) + // string "14085" + o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x38, 0x35) if z.AttachMethod == nil { o = msgp.AppendNil(o) } else { @@ -1203,8 +1203,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20000) == 0 { // if not empty - // string "1409431" - o = append(o, 0xa7, 0x31, 0x34, 0x30, 0x39, 0x34, 0x33, 0x31) + // string "14094" + o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x39, 0x34) if z.AttachMimeTag == nil { o = msgp.AppendNil(o) } else { @@ -1212,8 +1212,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40000) == 0 { // if not empty - // string "36173" - o = append(o, 0xa5, 0x33, 0x36, 0x31, 0x37, 0x33) + // string "3617" + o = append(o, 0xa4, 0x33, 0x36, 0x31, 0x37) if z.AttachNumber == nil { o = msgp.AppendNil(o) } else { @@ -1221,8 +1221,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80000) == 0 { // if not empty - // string "1408831" - o = append(o, 0xa7, 0x31, 0x34, 0x30, 0x38, 0x38, 0x33, 0x31) + // string "14088" + o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x38, 0x38) if z.AttachPathname == nil { o = msgp.AppendNil(o) } else { @@ -1230,8 +1230,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100000) == 0 { // if not empty - // string "36163" - o = append(o, 0xa5, 0x33, 0x36, 0x31, 0x36, 0x33) + // string "3616" + o = append(o, 0xa4, 0x33, 0x36, 0x31, 0x36) if z.AttachSize == nil { o = msgp.AppendNil(o) } else { @@ -1239,8 +1239,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200000) == 0 { // if not empty - // string "1409231" - o = append(o, 0xa7, 0x31, 0x34, 0x30, 0x39, 0x32, 0x33, 0x31) + // string "14092" + o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x39, 0x32) if z.AttachTransportName == nil { o = msgp.AppendNil(o) } else { @@ -1248,8 +1248,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400000) == 0 { // if not empty - // string "1410731" - o = append(o, 0xa7, 0x31, 0x34, 0x31, 0x30, 0x37, 0x33, 0x31) + // string "14107" + o = append(o, 0xa5, 0x31, 0x34, 0x31, 0x30, 0x37) if z.TextAttachmentCharset == nil { o = msgp.AppendNil(o) } else { @@ -1345,7 +1345,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1409731": + case "14097": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1362,7 +1362,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1409831": + case "14098": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1379,7 +1379,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1409931": + case "14099": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1396,7 +1396,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1408331": + case "14083": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1413,7 +1413,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1408431": + case "14084": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1430,7 +1430,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "141003": + case "14100": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1447,7 +1447,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1408731": + case "14087": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1464,7 +1464,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1409331": + case "14093": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1481,7 +1481,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3276711": + case "32767": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1498,7 +1498,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "327653": + case "32765": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1515,7 +1515,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3276611": + case "32766": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1532,7 +1532,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "327623": + case "32762": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1549,7 +1549,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "140853": + case "14085": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1566,7 +1566,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1409431": + case "14094": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1583,7 +1583,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "36173": + case "3617": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1600,7 +1600,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1408831": + case "14088": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1617,7 +1617,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "36163": + case "3616": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1634,7 +1634,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1409231": + case "14092": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1651,7 +1651,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1410731": + case "14107": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1706,115 +1706,115 @@ func (z *Attachment) Msgsize() (s int) { } else { s += msgp.StringPrefixSize + len(*z.AttachmentProviderType) } - s += 8 + s += 6 if z.AttachContentBase == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachContentBase) } - s += 8 + s += 6 if z.AttachContentId == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachContentId) } - s += 8 + s += 6 if z.AttachContentLocation == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachContentLocation) } - s += 8 + s += 6 if z.AttachExtension == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachExtension) } - s += 8 + s += 6 if z.AttachFilename == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachFilename) } - s += 7 + s += 6 if z.AttachFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.AttachLongFilename == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachLongFilename) } - s += 8 + s += 6 if z.AttachLongPathname == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachLongPathname) } - s += 8 + s += 6 if z.AttachmentContactPhoto == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 6 if z.AttachmentFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.AttachmentHidden == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 6 if z.AttachmentLinkId == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 6 if z.AttachMethod == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.AttachMimeTag == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachMimeTag) } - s += 6 + s += 5 if z.AttachNumber == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.AttachPathname == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachPathname) } - s += 6 + s += 5 if z.AttachSize == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.AttachTransportName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachTransportName) } - s += 8 + s += 6 if z.TextAttachmentCharset == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/contact.pb.go b/pkg/properties/contact.pb.go index 9a3b930..9189bcf 100644 --- a/pkg/properties/contact.pb.go +++ b/pkg/properties/contact.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: contact.proto package properties @@ -44,222 +44,222 @@ type Contact struct { unknownFields protoimpl.UnknownFields // Specifies the state of the electronic addresses of the contact and represents a set of bit flags. - AddressBookProviderArrayType *int32 `protobuf:"varint,1,opt,name=address_book_provider_array_type,json=addressBookProviderArrayType,proto3,oneof" json:"address_book_provider_array_type,omitempty" msg:"2622173,omitempty"` + AddressBookProviderArrayType *int32 `protobuf:"varint,1,opt,name=address_book_provider_array_type,json=addressBookProviderArrayType,proto3,oneof" json:"address_book_provider_array_type,omitempty" msg:"262217,omitempty" type:"3,omitempty"` // Specifies the country code portion of the mailing address of the contact. - AddressCountryCode *string `protobuf:"bytes,3,opt,name=address_country_code,json=addressCountryCode,proto3,oneof" json:"address_country_code,omitempty" msg:"26257331,omitempty"` + AddressCountryCode *string `protobuf:"bytes,3,opt,name=address_country_code,json=addressCountryCode,proto3,oneof" json:"address_country_code,omitempty" msg:"262573,omitempty" type:"31,omitempty"` // Specifies to the application whether to create a Journal object for each action associated with this Contact object. - AutoLog *bool `protobuf:"varint,5,opt,name=auto_log,json=autoLog,proto3,oneof" json:"auto_log,omitempty" msg:"26221311,omitempty"` + AutoLog *bool `protobuf:"varint,5,opt,name=auto_log,json=autoLog,proto3,oneof" json:"auto_log,omitempty" msg:"262213,omitempty" type:"11,omitempty"` // Specifies the birthday of a contact. - BirthdayLocal *int64 `protobuf:"varint,7,opt,name=birthday_local,json=birthdayLocal,proto3,oneof" json:"birthday_local,omitempty" msg:"26257464,omitempty"` + BirthdayLocal *int64 `protobuf:"varint,7,opt,name=birthday_local,json=birthdayLocal,proto3,oneof" json:"birthday_local,omitempty" msg:"262574,omitempty" type:"64,omitempty"` // Specifies the character set used for a Contact object. - ContactCharacterSet *int32 `protobuf:"varint,10,opt,name=contact_character_set,json=contactCharacterSet,proto3,oneof" json:"contact_character_set,omitempty" msg:"2622113,omitempty"` + ContactCharacterSet *int32 `protobuf:"varint,10,opt,name=contact_character_set,json=contactCharacterSet,proto3,oneof" json:"contact_character_set,omitempty" msg:"262211,omitempty" type:"3,omitempty"` // Specifies the GUID of the GAL contact to which the duplicate contact is linked. - ContactLinkGlobalAddressListLinkId *uint64 `protobuf:"varint,14,opt,name=contact_link_global_address_list_link_id,json=contactLinkGlobalAddressListLinkId,proto3,oneof" json:"contact_link_global_address_list_link_id,omitempty" msg:"26260072,omitempty"` + ContactLinkGlobalAddressListLinkId *uint64 `protobuf:"varint,14,opt,name=contact_link_global_address_list_link_id,json=contactLinkGlobalAddressListLinkId,proto3,oneof" json:"contact_link_global_address_list_link_id,omitempty" msg:"262600,omitempty" type:"72,omitempty"` // Specifies the state of the linking between the GAL contact and the duplicate contact. - ContactLinkGlobalAddressListLinkState *int32 `protobuf:"varint,15,opt,name=contact_link_global_address_list_link_state,json=contactLinkGlobalAddressListLinkState,proto3,oneof" json:"contact_link_global_address_list_link_state,omitempty" msg:"2625983,omitempty"` - ContactLinkName *string `protobuf:"bytes,17,opt,name=contact_link_name,json=contactLinkName,proto3,oneof" json:"contact_link_name,omitempty" msg:"26752631,omitempty"` + ContactLinkGlobalAddressListLinkState *int32 `protobuf:"varint,15,opt,name=contact_link_global_address_list_link_state,json=contactLinkGlobalAddressListLinkState,proto3,oneof" json:"contact_link_global_address_list_link_state,omitempty" msg:"262598,omitempty" type:"3,omitempty"` + ContactLinkName *string `protobuf:"bytes,17,opt,name=contact_link_name,json=contactLinkName,proto3,oneof" json:"contact_link_name,omitempty" msg:"267526,omitempty" type:"31,omitempty"` // Contains text used to add custom text to a business card representation of a Contact object. - ContactUserField1 *string `protobuf:"bytes,20,opt,name=contact_user_field1,json=contactUserField1,proto3,oneof" json:"contact_user_field1,omitempty" msg:"26228731,omitempty"` + ContactUserField1 *string `protobuf:"bytes,20,opt,name=contact_user_field1,json=contactUserField1,proto3,oneof" json:"contact_user_field1,omitempty" msg:"262287,omitempty" type:"31,omitempty"` // Contains text used to add custom text to a business card representation of a Contact object. - ContactUserField2 *string `protobuf:"bytes,21,opt,name=contact_user_field2,json=contactUserField2,proto3,oneof" json:"contact_user_field2,omitempty" msg:"26230431,omitempty"` + ContactUserField2 *string `protobuf:"bytes,21,opt,name=contact_user_field2,json=contactUserField2,proto3,oneof" json:"contact_user_field2,omitempty" msg:"262304,omitempty" type:"31,omitempty"` // Contains text used to add custom text to a business card representation of a Contact object. - ContactUserField3 *string `protobuf:"bytes,22,opt,name=contact_user_field3,json=contactUserField3,proto3,oneof" json:"contact_user_field3,omitempty" msg:"26230531,omitempty"` + ContactUserField3 *string `protobuf:"bytes,22,opt,name=contact_user_field3,json=contactUserField3,proto3,oneof" json:"contact_user_field3,omitempty" msg:"262305,omitempty" type:"31,omitempty"` // Contains text used to add custom text to a business card representation of a Contact object. - ContactUserField4 *string `protobuf:"bytes,23,opt,name=contact_user_field4,json=contactUserField4,proto3,oneof" json:"contact_user_field4,omitempty" msg:"26230631,omitempty"` + ContactUserField4 *string `protobuf:"bytes,23,opt,name=contact_user_field4,json=contactUserField4,proto3,oneof" json:"contact_user_field4,omitempty" msg:"262306,omitempty" type:"31,omitempty"` // This property is ignored by the server and is set to an empty string by the client. - Department *string `protobuf:"bytes,24,opt,name=department,proto3,oneof" json:"department,omitempty" msg:"26217631,omitempty"` + Department *string `protobuf:"bytes,24,opt,name=department,proto3,oneof" json:"department,omitempty" msg:"262176,omitempty" type:"31,omitempty"` // Specifies the 32-bit cyclic redundancy check (CRC) polynomial checksum, as specified in [ISO/IEC8802-3], calculated on the value of the PidLidDistributionListMembers property (section 2.96). - DistributionListChecksum *int32 `protobuf:"varint,25,opt,name=distribution_list_checksum,json=distributionListChecksum,proto3,oneof" json:"distribution_list_checksum,omitempty" msg:"2622843,omitempty"` + DistributionListChecksum *int32 `protobuf:"varint,25,opt,name=distribution_list_checksum,json=distributionListChecksum,proto3,oneof" json:"distribution_list_checksum,omitempty" msg:"262284,omitempty" type:"3,omitempty"` // Specifies the name of the personal distribution list. - DistributionListName *string `protobuf:"bytes,27,opt,name=distribution_list_name,json=distributionListName,proto3,oneof" json:"distribution_list_name,omitempty" msg:"26230731,omitempty"` + DistributionListName *string `protobuf:"bytes,27,opt,name=distribution_list_name,json=distributionListName,proto3,oneof" json:"distribution_list_name,omitempty" msg:"262307,omitempty" type:"31,omitempty"` // Specifies the address type of an electronic address. - Email1AddressType *string `protobuf:"bytes,30,opt,name=email1_address_type,json=email1AddressType,proto3,oneof" json:"email1_address_type,omitempty" msg:"26240231,omitempty"` + Email1AddressType *string `protobuf:"bytes,30,opt,name=email1_address_type,json=email1AddressType,proto3,oneof" json:"email1_address_type,omitempty" msg:"262402,omitempty" type:"31,omitempty"` // Specifies the user-readable display name for the email address. - Email1DisplayName *string `protobuf:"bytes,31,opt,name=email1_display_name,json=email1DisplayName,proto3,oneof" json:"email1_display_name,omitempty" msg:"26240031,omitempty"` + Email1DisplayName *string `protobuf:"bytes,31,opt,name=email1_display_name,json=email1DisplayName,proto3,oneof" json:"email1_display_name,omitempty" msg:"262400,omitempty" type:"31,omitempty"` // Specifies the email address of the contact. - Email1EmailAddress *string `protobuf:"bytes,32,opt,name=email1_email_address,json=email1EmailAddress,proto3,oneof" json:"email1_email_address,omitempty" msg:"26240331,omitempty"` + Email1EmailAddress *string `protobuf:"bytes,32,opt,name=email1_email_address,json=email1EmailAddress,proto3,oneof" json:"email1_email_address,omitempty" msg:"262403,omitempty" type:"31,omitempty"` // Specifies the SMTP email address that corresponds to the email address for the Contact object. - Email1OriginalDisplayName *string `protobuf:"bytes,33,opt,name=email1_original_display_name,json=email1OriginalDisplayName,proto3,oneof" json:"email1_original_display_name,omitempty" msg:"26240431,omitempty"` + Email1OriginalDisplayName *string `protobuf:"bytes,33,opt,name=email1_original_display_name,json=email1OriginalDisplayName,proto3,oneof" json:"email1_original_display_name,omitempty" msg:"262404,omitempty" type:"31,omitempty"` // Specifies the address type of the electronic address. - Email2AddressType *string `protobuf:"bytes,35,opt,name=email2_address_type,json=email2AddressType,proto3,oneof" json:"email2_address_type,omitempty" msg:"26243431,omitempty"` + Email2AddressType *string `protobuf:"bytes,35,opt,name=email2_address_type,json=email2AddressType,proto3,oneof" json:"email2_address_type,omitempty" msg:"262434,omitempty" type:"31,omitempty"` // Specifies the user-readable display name for the email address. - Email2DisplayName *string `protobuf:"bytes,36,opt,name=email2_display_name,json=email2DisplayName,proto3,oneof" json:"email2_display_name,omitempty" msg:"26243231,omitempty"` + Email2DisplayName *string `protobuf:"bytes,36,opt,name=email2_display_name,json=email2DisplayName,proto3,oneof" json:"email2_display_name,omitempty" msg:"262432,omitempty" type:"31,omitempty"` // Specifies the email address of the contact. - Email2EmailAddress *string `protobuf:"bytes,37,opt,name=email2_email_address,json=email2EmailAddress,proto3,oneof" json:"email2_email_address,omitempty" msg:"26243531,omitempty"` + Email2EmailAddress *string `protobuf:"bytes,37,opt,name=email2_email_address,json=email2EmailAddress,proto3,oneof" json:"email2_email_address,omitempty" msg:"262435,omitempty" type:"31,omitempty"` // Specifies the SMTP email address that corresponds to the email address for the Contact object. - Email2OriginalDisplayName *string `protobuf:"bytes,38,opt,name=email2_original_display_name,json=email2OriginalDisplayName,proto3,oneof" json:"email2_original_display_name,omitempty" msg:"26243631,omitempty"` + Email2OriginalDisplayName *string `protobuf:"bytes,38,opt,name=email2_original_display_name,json=email2OriginalDisplayName,proto3,oneof" json:"email2_original_display_name,omitempty" msg:"262436,omitempty" type:"31,omitempty"` // Specifies the address type of the electronic address. - Email3AddressType *string `protobuf:"bytes,40,opt,name=email3_address_type,json=email3AddressType,proto3,oneof" json:"email3_address_type,omitempty" msg:"26246631,omitempty"` + Email3AddressType *string `protobuf:"bytes,40,opt,name=email3_address_type,json=email3AddressType,proto3,oneof" json:"email3_address_type,omitempty" msg:"262466,omitempty" type:"31,omitempty"` // Specifies the user-readable display name for the email address. - Email3DisplayName *string `protobuf:"bytes,41,opt,name=email3_display_name,json=email3DisplayName,proto3,oneof" json:"email3_display_name,omitempty" msg:"26246431,omitempty"` + Email3DisplayName *string `protobuf:"bytes,41,opt,name=email3_display_name,json=email3DisplayName,proto3,oneof" json:"email3_display_name,omitempty" msg:"262464,omitempty" type:"31,omitempty"` // Specifies the email address of the contact. - Email3EmailAddress *string `protobuf:"bytes,42,opt,name=email3_email_address,json=email3EmailAddress,proto3,oneof" json:"email3_email_address,omitempty" msg:"26246731,omitempty"` + Email3EmailAddress *string `protobuf:"bytes,42,opt,name=email3_email_address,json=email3EmailAddress,proto3,oneof" json:"email3_email_address,omitempty" msg:"262467,omitempty" type:"31,omitempty"` // Specifies the SMTP email address that corresponds to the email address for the Contact object. - Email3OriginalDisplayName *string `protobuf:"bytes,43,opt,name=email3_original_display_name,json=email3OriginalDisplayName,proto3,oneof" json:"email3_original_display_name,omitempty" msg:"26246831,omitempty"` + Email3OriginalDisplayName *string `protobuf:"bytes,43,opt,name=email3_original_display_name,json=email3OriginalDisplayName,proto3,oneof" json:"email3_original_display_name,omitempty" msg:"262468,omitempty" type:"31,omitempty"` // Contains the string value "FAX". - Fax1AddressType *string `protobuf:"bytes,45,opt,name=fax1_address_type,json=fax1AddressType,proto3,oneof" json:"fax1_address_type,omitempty" msg:"26249831,omitempty"` + Fax1AddressType *string `protobuf:"bytes,45,opt,name=fax1_address_type,json=fax1AddressType,proto3,oneof" json:"fax1_address_type,omitempty" msg:"262498,omitempty" type:"31,omitempty"` // Contains a user-readable display name, followed by the "@" character, followed by a fax number. - Fax1EmailAddress *string `protobuf:"bytes,46,opt,name=fax1_email_address,json=fax1EmailAddress,proto3,oneof" json:"fax1_email_address,omitempty" msg:"26249931,omitempty"` + Fax1EmailAddress *string `protobuf:"bytes,46,opt,name=fax1_email_address,json=fax1EmailAddress,proto3,oneof" json:"fax1_email_address,omitempty" msg:"262499,omitempty" type:"31,omitempty"` // Contains the same value as the PidTagNormalizedSubject property (section 2.812). - Fax1OriginalDisplayName *string `protobuf:"bytes,47,opt,name=fax1_original_display_name,json=fax1OriginalDisplayName,proto3,oneof" json:"fax1_original_display_name,omitempty" msg:"26250031,omitempty"` + Fax1OriginalDisplayName *string `protobuf:"bytes,47,opt,name=fax1_original_display_name,json=fax1OriginalDisplayName,proto3,oneof" json:"fax1_original_display_name,omitempty" msg:"262500,omitempty" type:"31,omitempty"` // Contains the string value "FAX". - Fax2AddressType *string `protobuf:"bytes,49,opt,name=fax2_address_type,json=fax2AddressType,proto3,oneof" json:"fax2_address_type,omitempty" msg:"26253031,omitempty"` + Fax2AddressType *string `protobuf:"bytes,49,opt,name=fax2_address_type,json=fax2AddressType,proto3,oneof" json:"fax2_address_type,omitempty" msg:"262530,omitempty" type:"31,omitempty"` // Contains a user-readable display name, followed by the "@" character, followed by a fax number. - Fax2EmailAddress *string `protobuf:"bytes,50,opt,name=fax2_email_address,json=fax2EmailAddress,proto3,oneof" json:"fax2_email_address,omitempty" msg:"26253131,omitempty"` + Fax2EmailAddress *string `protobuf:"bytes,50,opt,name=fax2_email_address,json=fax2EmailAddress,proto3,oneof" json:"fax2_email_address,omitempty" msg:"262531,omitempty" type:"31,omitempty"` // Contains the same value as the PidTagNormalizedSubject property (section 2.812). - Fax2OriginalDisplayName *string `protobuf:"bytes,51,opt,name=fax2_original_display_name,json=fax2OriginalDisplayName,proto3,oneof" json:"fax2_original_display_name,omitempty" msg:"26253231,omitempty"` + Fax2OriginalDisplayName *string `protobuf:"bytes,51,opt,name=fax2_original_display_name,json=fax2OriginalDisplayName,proto3,oneof" json:"fax2_original_display_name,omitempty" msg:"262532,omitempty" type:"31,omitempty"` // Contains the string value "FAX". - Fax3AddressType *string `protobuf:"bytes,53,opt,name=fax3_address_type,json=fax3AddressType,proto3,oneof" json:"fax3_address_type,omitempty" msg:"26256231,omitempty"` + Fax3AddressType *string `protobuf:"bytes,53,opt,name=fax3_address_type,json=fax3AddressType,proto3,oneof" json:"fax3_address_type,omitempty" msg:"262562,omitempty" type:"31,omitempty"` // Contains a user-readable display name, followed by the "@" character, followed by a fax number. - Fax3EmailAddress *string `protobuf:"bytes,54,opt,name=fax3_email_address,json=fax3EmailAddress,proto3,oneof" json:"fax3_email_address,omitempty" msg:"26256331,omitempty"` + Fax3EmailAddress *string `protobuf:"bytes,54,opt,name=fax3_email_address,json=fax3EmailAddress,proto3,oneof" json:"fax3_email_address,omitempty" msg:"262563,omitempty" type:"31,omitempty"` // Contains the same value as the PidTagNormalizedSubject property (section 2.812). - Fax3OriginalDisplayName *string `protobuf:"bytes,55,opt,name=fax3_original_display_name,json=fax3OriginalDisplayName,proto3,oneof" json:"fax3_original_display_name,omitempty" msg:"26256431,omitempty"` + Fax3OriginalDisplayName *string `protobuf:"bytes,55,opt,name=fax3_original_display_name,json=fax3OriginalDisplayName,proto3,oneof" json:"fax3_original_display_name,omitempty" msg:"262564,omitempty" type:"31,omitempty"` // Specifies the name under which to file a contact when displaying a list of contacts. - FileUnder *string `protobuf:"bytes,57,opt,name=file_under,json=fileUnder,proto3,oneof" json:"file_under,omitempty" msg:"26214931,omitempty"` + FileUnder *string `protobuf:"bytes,57,opt,name=file_under,json=fileUnder,proto3,oneof" json:"file_under,omitempty" msg:"262149,omitempty" type:"31,omitempty"` // Specifies how to generate and recompute the value of the PidLidFileUnder property (section 2.132) when other contact name properties change. - FileUnderId *int32 `protobuf:"varint,58,opt,name=file_under_id,json=fileUnderId,proto3,oneof" json:"file_under_id,omitempty" msg:"2621503,omitempty"` + FileUnderId *int32 `protobuf:"varint,58,opt,name=file_under_id,json=fileUnderId,proto3,oneof" json:"file_under_id,omitempty" msg:"262150,omitempty" type:"3,omitempty"` // Specifies a URL path from which a client can retrieve free/busy status information for the contact. - FreeBusyLocation *string `protobuf:"bytes,60,opt,name=free_busy_location,json=freeBusyLocation,proto3,oneof" json:"free_busy_location,omitempty" msg:"26256831,omitempty"` + FreeBusyLocation *string `protobuf:"bytes,60,opt,name=free_busy_location,json=freeBusyLocation,proto3,oneof" json:"free_busy_location,omitempty" msg:"262568,omitempty" type:"31,omitempty"` // Specifies whether the attachment has a picture. - HasPicture *bool `protobuf:"varint,61,opt,name=has_picture,json=hasPicture,proto3,oneof" json:"has_picture,omitempty" msg:"26218111,omitempty"` + HasPicture *bool `protobuf:"varint,61,opt,name=has_picture,json=hasPicture,proto3,oneof" json:"has_picture,omitempty" msg:"262181,omitempty" type:"11,omitempty"` // Specifies the complete address of the home address of the contact. - HomeAddress *string `protobuf:"bytes,62,opt,name=home_address,json=homeAddress,proto3,oneof" json:"home_address,omitempty" msg:"26218631,omitempty"` + HomeAddress *string `protobuf:"bytes,62,opt,name=home_address,json=homeAddress,proto3,oneof" json:"home_address,omitempty" msg:"262186,omitempty" type:"31,omitempty"` // Specifies the country code portion of the home address of the contact. - HomeAddressCountryCode *string `protobuf:"bytes,63,opt,name=home_address_country_code,json=homeAddressCountryCode,proto3,oneof" json:"home_address_country_code,omitempty" msg:"26257031,omitempty"` + HomeAddressCountryCode *string `protobuf:"bytes,63,opt,name=home_address_country_code,json=homeAddressCountryCode,proto3,oneof" json:"home_address_country_code,omitempty" msg:"262570,omitempty" type:"31,omitempty"` // Specifies the business webpage URL of the contact. - Html *string `protobuf:"bytes,64,opt,name=html,proto3,oneof" json:"html,omitempty" msg:"26221931,omitempty"` + Html *string `protobuf:"bytes,64,opt,name=html,proto3,oneof" json:"html,omitempty" msg:"262219,omitempty" type:"31,omitempty"` // Specifies the instant messaging address of the contact. - InstantMessagingAddress *string `protobuf:"bytes,65,opt,name=instant_messaging_address,json=instantMessagingAddress,proto3,oneof" json:"instant_messaging_address,omitempty" msg:"26233831,omitempty"` + InstantMessagingAddress *string `protobuf:"bytes,65,opt,name=instant_messaging_address,json=instantMessagingAddress,proto3,oneof" json:"instant_messaging_address,omitempty" msg:"262338,omitempty" type:"31,omitempty"` // Specifies whether the contact is linked to other contacts. - IsContactLinked *bool `protobuf:"varint,66,opt,name=is_contact_linked,json=isContactLinked,proto3,oneof" json:"is_contact_linked,omitempty" msg:"26259211,omitempty"` + IsContactLinked *bool `protobuf:"varint,66,opt,name=is_contact_linked,json=isContactLinked,proto3,oneof" json:"is_contact_linked,omitempty" msg:"262592,omitempty" type:"11,omitempty"` // Specifies the complete address of the other address of the contact. - OtherAddress *string `protobuf:"bytes,67,opt,name=other_address,json=otherAddress,proto3,oneof" json:"other_address,omitempty" msg:"26218831,omitempty"` + OtherAddress *string `protobuf:"bytes,67,opt,name=other_address,json=otherAddress,proto3,oneof" json:"other_address,omitempty" msg:"262188,omitempty" type:"31,omitempty"` // Specifies the country code portion of the other address of the contact. - OtherAddressCountryCode *string `protobuf:"bytes,68,opt,name=other_address_country_code,json=otherAddressCountryCode,proto3,oneof" json:"other_address_country_code,omitempty" msg:"26257231,omitempty"` + OtherAddressCountryCode *string `protobuf:"bytes,68,opt,name=other_address_country_code,json=otherAddressCountryCode,proto3,oneof" json:"other_address_country_code,omitempty" msg:"262572,omitempty" type:"31,omitempty"` // Specifies which physical address is the mailing address for this contact. - PostalAddressId *int32 `protobuf:"varint,69,opt,name=postal_address_id,json=postalAddressId,proto3,oneof" json:"postal_address_id,omitempty" msg:"2622103,omitempty"` + PostalAddressId *int32 `protobuf:"varint,69,opt,name=postal_address_id,json=postalAddressId,proto3,oneof" json:"postal_address_id,omitempty" msg:"262210,omitempty" type:"3,omitempty"` // Specifies the wedding anniversary of the contact, at midnight in the client's local time zone, and is saved without any time zone conversions. - WeddingAnniversaryLocal *int64 `protobuf:"varint,71,opt,name=wedding_anniversary_local,json=weddingAnniversaryLocal,proto3,oneof" json:"wedding_anniversary_local,omitempty" msg:"26257564,omitempty"` + WeddingAnniversaryLocal *int64 `protobuf:"varint,71,opt,name=wedding_anniversary_local,json=weddingAnniversaryLocal,proto3,oneof" json:"wedding_anniversary_local,omitempty" msg:"262575,omitempty" type:"64,omitempty"` // Specifies the complete address of the work address of the contact. - WorkAddress *string `protobuf:"bytes,72,opt,name=work_address,json=workAddress,proto3,oneof" json:"work_address,omitempty" msg:"26218731,omitempty"` + WorkAddress *string `protobuf:"bytes,72,opt,name=work_address,json=workAddress,proto3,oneof" json:"work_address,omitempty" msg:"262187,omitempty" type:"31,omitempty"` // Specifies the city or locality portion of the work address of the contact. - WorkAddressCity *string `protobuf:"bytes,73,opt,name=work_address_city,json=workAddressCity,proto3,oneof" json:"work_address_city,omitempty" msg:"26227831,omitempty"` + WorkAddressCity *string `protobuf:"bytes,73,opt,name=work_address_city,json=workAddressCity,proto3,oneof" json:"work_address_city,omitempty" msg:"262278,omitempty" type:"31,omitempty"` // Specifies the country or region portion of the work address of the contact. - WorkAddressCountry *string `protobuf:"bytes,74,opt,name=work_address_country,json=workAddressCountry,proto3,oneof" json:"work_address_country,omitempty" msg:"26228131,omitempty"` + WorkAddressCountry *string `protobuf:"bytes,74,opt,name=work_address_country,json=workAddressCountry,proto3,oneof" json:"work_address_country,omitempty" msg:"262281,omitempty" type:"31,omitempty"` // Specifies the country code portion of the work address of the contact. - WorkAddressCountryCode *string `protobuf:"bytes,75,opt,name=work_address_country_code,json=workAddressCountryCode,proto3,oneof" json:"work_address_country_code,omitempty" msg:"26257131,omitempty"` + WorkAddressCountryCode *string `protobuf:"bytes,75,opt,name=work_address_country_code,json=workAddressCountryCode,proto3,oneof" json:"work_address_country_code,omitempty" msg:"262571,omitempty" type:"31,omitempty"` // Specifies the postal code (ZIP code) portion of the work address of the contact. - WorkAddressPostalCode *string `protobuf:"bytes,76,opt,name=work_address_postal_code,json=workAddressPostalCode,proto3,oneof" json:"work_address_postal_code,omitempty" msg:"26228031,omitempty"` + WorkAddressPostalCode *string `protobuf:"bytes,76,opt,name=work_address_postal_code,json=workAddressPostalCode,proto3,oneof" json:"work_address_postal_code,omitempty" msg:"262280,omitempty" type:"31,omitempty"` // Specifies the post office box portion of the work address of the contact. - WorkAddressPostOfficeBox *string `protobuf:"bytes,77,opt,name=work_address_post_office_box,json=workAddressPostOfficeBox,proto3,oneof" json:"work_address_post_office_box,omitempty" msg:"26228231,omitempty"` + WorkAddressPostOfficeBox *string `protobuf:"bytes,77,opt,name=work_address_post_office_box,json=workAddressPostOfficeBox,proto3,oneof" json:"work_address_post_office_box,omitempty" msg:"262282,omitempty" type:"31,omitempty"` // Specifies the state or province portion of the work address of the contact. - WorkAddressState *string `protobuf:"bytes,78,opt,name=work_address_state,json=workAddressState,proto3,oneof" json:"work_address_state,omitempty" msg:"26227931,omitempty"` + WorkAddressState *string `protobuf:"bytes,78,opt,name=work_address_state,json=workAddressState,proto3,oneof" json:"work_address_state,omitempty" msg:"262279,omitempty" type:"31,omitempty"` // Specifies the street portion of the work address of the contact. - WorkAddressStreet *string `protobuf:"bytes,79,opt,name=work_address_street,json=workAddressStreet,proto3,oneof" json:"work_address_street,omitempty" msg:"26227731,omitempty"` + WorkAddressStreet *string `protobuf:"bytes,79,opt,name=work_address_street,json=workAddressStreet,proto3,oneof" json:"work_address_street,omitempty" msg:"262277,omitempty" type:"31,omitempty"` // Specifies the phonetic pronunciation of the company name of the contact. - YomiCompanyName *string `protobuf:"bytes,80,opt,name=yomi_company_name,json=yomiCompanyName,proto3,oneof" json:"yomi_company_name,omitempty" msg:"26222231,omitempty"` + YomiCompanyName *string `protobuf:"bytes,80,opt,name=yomi_company_name,json=yomiCompanyName,proto3,oneof" json:"yomi_company_name,omitempty" msg:"262222,omitempty" type:"31,omitempty"` // Specifies the phonetic pronunciation of the given name of the contact. - YomiFirstName *string `protobuf:"bytes,81,opt,name=yomi_first_name,json=yomiFirstName,proto3,oneof" json:"yomi_first_name,omitempty" msg:"26222031,omitempty"` + YomiFirstName *string `protobuf:"bytes,81,opt,name=yomi_first_name,json=yomiFirstName,proto3,oneof" json:"yomi_first_name,omitempty" msg:"262220,omitempty" type:"31,omitempty"` // Specifies the phonetic pronunciation of the surname of the contact. - YomiLastName *string `protobuf:"bytes,82,opt,name=yomi_last_name,json=yomiLastName,proto3,oneof" json:"yomi_last_name,omitempty" msg:"26222131,omitempty"` + YomiLastName *string `protobuf:"bytes,82,opt,name=yomi_last_name,json=yomiLastName,proto3,oneof" json:"yomi_last_name,omitempty" msg:"262221,omitempty" type:"31,omitempty"` // Indicates the name of the contact associated with the birthday event. BirthdayContactAttributionDisplayName *string `protobuf:"bytes,83,opt,name=birthday_contact_attribution_display_name,json=birthdayContactAttributionDisplayName,proto3,oneof" json:"birthday_contact_attribution_display_name,omitempty"` // Indicates whether the contact associated with the birthday event is writable. IsBirthdayContactWritable *bool `protobuf:"varint,86,opt,name=is_birthday_contact_writable,json=isBirthdayContactWritable,proto3,oneof" json:"is_birthday_contact_writable,omitempty"` // Contains the date of the mail user's birthday at midnight. - Birthday *int64 `protobuf:"varint,87,opt,name=birthday,proto3,oneof" json:"birthday,omitempty" msg:"1491464,omitempty"` + Birthday *int64 `protobuf:"varint,87,opt,name=birthday,proto3,oneof" json:"birthday,omitempty" msg:"14914,omitempty" type:"64,omitempty"` // Contains a secondary telephone number at the mail user's place of business. - Business2TelephoneNumber *string `protobuf:"bytes,88,opt,name=business2_telephone_number,json=business2TelephoneNumber,proto3,oneof" json:"business2_telephone_number,omitempty" msg:"1487531,omitempty"` + Business2TelephoneNumber *string `protobuf:"bytes,88,opt,name=business2_telephone_number,json=business2TelephoneNumber,proto3,oneof" json:"business2_telephone_number,omitempty" msg:"14875,omitempty" type:"31,omitempty"` // Contains the telephone number of the mail user's business fax machine. - BusinessFaxNumber *string `protobuf:"bytes,90,opt,name=business_fax_number,json=businessFaxNumber,proto3,oneof" json:"business_fax_number,omitempty" msg:"1488431,omitempty"` + BusinessFaxNumber *string `protobuf:"bytes,90,opt,name=business_fax_number,json=businessFaxNumber,proto3,oneof" json:"business_fax_number,omitempty" msg:"14884,omitempty" type:"31,omitempty"` // Contains the URL of the mail user's business home page. - BusinessHomePage *string `protobuf:"bytes,91,opt,name=business_home_page,json=businessHomePage,proto3,oneof" json:"business_home_page,omitempty" msg:"1492931,omitempty"` + BusinessHomePage *string `protobuf:"bytes,91,opt,name=business_home_page,json=businessHomePage,proto3,oneof" json:"business_home_page,omitempty" msg:"14929,omitempty" type:"31,omitempty"` // Contains the primary telephone number of the mail user's place of business. - BusinessTelephoneNumber *string `protobuf:"bytes,92,opt,name=business_telephone_number,json=businessTelephoneNumber,proto3,oneof" json:"business_telephone_number,omitempty" msg:"1485631,omitempty"` + BusinessTelephoneNumber *string `protobuf:"bytes,92,opt,name=business_telephone_number,json=businessTelephoneNumber,proto3,oneof" json:"business_telephone_number,omitempty" msg:"14856,omitempty" type:"31,omitempty"` // Contains a telephone number to reach the mail user. - CallbackTelephoneNumber *string `protobuf:"bytes,93,opt,name=callback_telephone_number,json=callbackTelephoneNumber,proto3,oneof" json:"callback_telephone_number,omitempty" msg:"1485031,omitempty"` + CallbackTelephoneNumber *string `protobuf:"bytes,93,opt,name=callback_telephone_number,json=callbackTelephoneNumber,proto3,oneof" json:"callback_telephone_number,omitempty" msg:"14850,omitempty" type:"31,omitempty"` // Contains the mail user's car telephone number. - CarTelephoneNumber *string `protobuf:"bytes,94,opt,name=car_telephone_number,json=carTelephoneNumber,proto3,oneof" json:"car_telephone_number,omitempty" msg:"1487831,omitempty"` + CarTelephoneNumber *string `protobuf:"bytes,94,opt,name=car_telephone_number,json=carTelephoneNumber,proto3,oneof" json:"car_telephone_number,omitempty" msg:"14878,omitempty" type:"31,omitempty"` // Contains the main telephone number of the mail user's company. - CompanyMainTelephoneNumber *string `protobuf:"bytes,96,opt,name=company_main_telephone_number,json=companyMainTelephoneNumber,proto3,oneof" json:"company_main_telephone_number,omitempty" msg:"1493531,omitempty"` + CompanyMainTelephoneNumber *string `protobuf:"bytes,96,opt,name=company_main_telephone_number,json=companyMainTelephoneNumber,proto3,oneof" json:"company_main_telephone_number,omitempty" msg:"14935,omitempty" type:"31,omitempty"` // Contains the mail user's company name. - CompanyName *string `protobuf:"bytes,97,opt,name=company_name,json=companyName,proto3,oneof" json:"company_name,omitempty" msg:"1487031,omitempty"` + CompanyName *string `protobuf:"bytes,97,opt,name=company_name,json=companyName,proto3,oneof" json:"company_name,omitempty" msg:"14870,omitempty" type:"31,omitempty"` // Contains the name of the mail user's computer network. - ComputerNetworkName *string `protobuf:"bytes,98,opt,name=computer_network_name,json=computerNetworkName,proto3,oneof" json:"computer_network_name,omitempty" msg:"1492131,omitempty"` + ComputerNetworkName *string `protobuf:"bytes,98,opt,name=computer_network_name,json=computerNetworkName,proto3,oneof" json:"computer_network_name,omitempty" msg:"14921,omitempty" type:"31,omitempty"` // Contains the name of the mail user's country/region. - Country *string `protobuf:"bytes,99,opt,name=country,proto3,oneof" json:"country,omitempty" msg:"1488631,omitempty"` + Country *string `protobuf:"bytes,99,opt,name=country,proto3,oneof" json:"country,omitempty" msg:"14886,omitempty" type:"31,omitempty"` // Contains the mail user's customer identification number. - CustomerId *string `protobuf:"bytes,100,opt,name=customer_id,json=customerId,proto3,oneof" json:"customer_id,omitempty" msg:"1492231,omitempty"` + CustomerId *string `protobuf:"bytes,100,opt,name=customer_id,json=customerId,proto3,oneof" json:"customer_id,omitempty" msg:"14922,omitempty" type:"31,omitempty"` // Contains a name for the department in which the mail user works. - DepartmentName *string `protobuf:"bytes,101,opt,name=department_name,json=departmentName,proto3,oneof" json:"department_name,omitempty" msg:"1487231,omitempty"` + DepartmentName *string `protobuf:"bytes,101,opt,name=department_name,json=departmentName,proto3,oneof" json:"department_name,omitempty" msg:"14872,omitempty" type:"31,omitempty"` // Contains the mail user's honorific title. - DisplayNamePrefix *string `protobuf:"bytes,102,opt,name=display_name_prefix,json=displayNamePrefix,proto3,oneof" json:"display_name_prefix,omitempty" msg:"1491731,omitempty"` + DisplayNamePrefix *string `protobuf:"bytes,102,opt,name=display_name_prefix,json=displayNamePrefix,proto3,oneof" json:"display_name_prefix,omitempty" msg:"14917,omitempty" type:"31,omitempty"` // Contains the File Transfer Protocol (FTP) site address of the mail user. - FtpSite *string `protobuf:"bytes,103,opt,name=ftp_site,json=ftpSite,proto3,oneof" json:"ftp_site,omitempty" msg:"1492431,omitempty"` + FtpSite *string `protobuf:"bytes,103,opt,name=ftp_site,json=ftpSite,proto3,oneof" json:"ftp_site,omitempty" msg:"14924,omitempty" type:"31,omitempty"` // Contains a value that represents the mail user's gender. - Gender *int32 `protobuf:"varint,104,opt,name=gender,proto3,oneof" json:"gender,omitempty" msg:"149252,omitempty"` + Gender *int32 `protobuf:"varint,104,opt,name=gender,proto3,oneof" json:"gender,omitempty" msg:"14925,omitempty" type:"2,omitempty"` // Contains a generational abbreviation that follows the full name of the mail user. - Generation *string `protobuf:"bytes,105,opt,name=generation,proto3,oneof" json:"generation,omitempty" msg:"1485331,omitempty"` + Generation *string `protobuf:"bytes,105,opt,name=generation,proto3,oneof" json:"generation,omitempty" msg:"14853,omitempty" type:"31,omitempty"` // Contains the mail user's given name. - GivenName *string `protobuf:"bytes,106,opt,name=given_name,json=givenName,proto3,oneof" json:"given_name,omitempty" msg:"1485431,omitempty"` + GivenName *string `protobuf:"bytes,106,opt,name=given_name,json=givenName,proto3,oneof" json:"given_name,omitempty" msg:"14854,omitempty" type:"31,omitempty"` // Contains a government identifier for the mail user. - GovernmentIdNumber *string `protobuf:"bytes,107,opt,name=government_id_number,json=governmentIdNumber,proto3,oneof" json:"government_id_number,omitempty" msg:"1485531,omitempty"` + GovernmentIdNumber *string `protobuf:"bytes,107,opt,name=government_id_number,json=governmentIdNumber,proto3,oneof" json:"government_id_number,omitempty" msg:"14855,omitempty" type:"31,omitempty"` // Contains the names of the mail user's hobbies. - Hobbies *string `protobuf:"bytes,108,opt,name=hobbies,proto3,oneof" json:"hobbies,omitempty" msg:"1491531,omitempty"` + Hobbies *string `protobuf:"bytes,108,opt,name=hobbies,proto3,oneof" json:"hobbies,omitempty" msg:"14915,omitempty" type:"31,omitempty"` // Contains a secondary telephone number at the mail user's home. - Home2TelephoneNumber *string `protobuf:"bytes,109,opt,name=home2_telephone_number,json=home2TelephoneNumber,proto3,oneof" json:"home2_telephone_number,omitempty" msg:"1489531,omitempty"` + Home2TelephoneNumber *string `protobuf:"bytes,109,opt,name=home2_telephone_number,json=home2TelephoneNumber,proto3,oneof" json:"home2_telephone_number,omitempty" msg:"14895,omitempty" type:"31,omitempty"` // Contains the name of the mail user's home locality, such as the town or city. - HomeAddressCity *string `protobuf:"bytes,111,opt,name=home_address_city,json=homeAddressCity,proto3,oneof" json:"home_address_city,omitempty" msg:"1493731,omitempty"` + HomeAddressCity *string `protobuf:"bytes,111,opt,name=home_address_city,json=homeAddressCity,proto3,oneof" json:"home_address_city,omitempty" msg:"14937,omitempty" type:"31,omitempty"` // Contains the name of the mail user's home country/region. - HomeAddressCountry *string `protobuf:"bytes,112,opt,name=home_address_country,json=homeAddressCountry,proto3,oneof" json:"home_address_country,omitempty" msg:"1493831,omitempty"` + HomeAddressCountry *string `protobuf:"bytes,112,opt,name=home_address_country,json=homeAddressCountry,proto3,oneof" json:"home_address_country,omitempty" msg:"14938,omitempty" type:"31,omitempty"` // Contains the postal code for the mail user's home postal address. - HomeAddressPostalCode *string `protobuf:"bytes,113,opt,name=home_address_postal_code,json=homeAddressPostalCode,proto3,oneof" json:"home_address_postal_code,omitempty" msg:"1493931,omitempty"` + HomeAddressPostalCode *string `protobuf:"bytes,113,opt,name=home_address_postal_code,json=homeAddressPostalCode,proto3,oneof" json:"home_address_postal_code,omitempty" msg:"14939,omitempty" type:"31,omitempty"` // Contains the number or identifier of the mail user's home post office box. - HomeAddressPostOfficeBox *string `protobuf:"bytes,114,opt,name=home_address_post_office_box,json=homeAddressPostOfficeBox,proto3,oneof" json:"home_address_post_office_box,omitempty" msg:"1494231,omitempty"` + HomeAddressPostOfficeBox *string `protobuf:"bytes,114,opt,name=home_address_post_office_box,json=homeAddressPostOfficeBox,proto3,oneof" json:"home_address_post_office_box,omitempty" msg:"14942,omitempty" type:"31,omitempty"` // Contains the name of the mail user's home state or province. - HomeAddressStateOrProvince *string `protobuf:"bytes,115,opt,name=home_address_state_or_province,json=homeAddressStateOrProvince,proto3,oneof" json:"home_address_state_or_province,omitempty" msg:"1494031,omitempty"` + HomeAddressStateOrProvince *string `protobuf:"bytes,115,opt,name=home_address_state_or_province,json=homeAddressStateOrProvince,proto3,oneof" json:"home_address_state_or_province,omitempty" msg:"14940,omitempty" type:"31,omitempty"` // Contains the mail user's home street address. - HomeAddressStreet *string `protobuf:"bytes,116,opt,name=home_address_street,json=homeAddressStreet,proto3,oneof" json:"home_address_street,omitempty" msg:"1494131,omitempty"` + HomeAddressStreet *string `protobuf:"bytes,116,opt,name=home_address_street,json=homeAddressStreet,proto3,oneof" json:"home_address_street,omitempty" msg:"14941,omitempty" type:"31,omitempty"` // Contains the telephone number of the mail user's home fax machine. - HomeFaxNumber *string `protobuf:"bytes,117,opt,name=home_fax_number,json=homeFaxNumber,proto3,oneof" json:"home_fax_number,omitempty" msg:"1488531,omitempty"` + HomeFaxNumber *string `protobuf:"bytes,117,opt,name=home_fax_number,json=homeFaxNumber,proto3,oneof" json:"home_fax_number,omitempty" msg:"14885,omitempty" type:"31,omitempty"` // Contains the primary telephone number of the mail user's home. - HomeTelephoneNumber *string `protobuf:"bytes,118,opt,name=home_telephone_number,json=homeTelephoneNumber,proto3,oneof" json:"home_telephone_number,omitempty" msg:"1485731,omitempty"` + HomeTelephoneNumber *string `protobuf:"bytes,118,opt,name=home_telephone_number,json=homeTelephoneNumber,proto3,oneof" json:"home_telephone_number,omitempty" msg:"14857,omitempty" type:"31,omitempty"` // Specifies whether contact synchronization with an external source is handled by the server. - OscSyncEnabled *bool `protobuf:"varint,119,opt,name=osc_sync_enabled,json=oscSyncEnabled,proto3,oneof" json:"osc_sync_enabled,omitempty" msg:"3178011,omitempty"` + OscSyncEnabled *bool `protobuf:"varint,119,opt,name=osc_sync_enabled,json=oscSyncEnabled,proto3,oneof" json:"osc_sync_enabled,omitempty" msg:"31780,omitempty" type:"11,omitempty"` // Contains the URL of the mail user's personal home page. - PersonalHomePage *string `protobuf:"bytes,120,opt,name=personal_home_page,json=personalHomePage,proto3,oneof" json:"personal_home_page,omitempty" msg:"1492831,omitempty"` + PersonalHomePage *string `protobuf:"bytes,120,opt,name=personal_home_page,json=personalHomePage,proto3,oneof" json:"personal_home_page,omitempty" msg:"14928,omitempty" type:"31,omitempty"` // Contains the mail user's postal address. - PostalAddress *string `protobuf:"bytes,121,opt,name=postal_address,json=postalAddress,proto3,oneof" json:"postal_address,omitempty" msg:"1486931,omitempty"` + PostalAddress *string `protobuf:"bytes,121,opt,name=postal_address,json=postalAddress,proto3,oneof" json:"postal_address,omitempty" msg:"14869,omitempty" type:"31,omitempty"` // Contains the postal code for the mail user's postal address. - PostalCode *string `protobuf:"bytes,122,opt,name=postal_code,json=postalCode,proto3,oneof" json:"postal_code,omitempty" msg:"1489031,omitempty"` + PostalCode *string `protobuf:"bytes,122,opt,name=postal_code,json=postalCode,proto3,oneof" json:"postal_code,omitempty" msg:"14890,omitempty" type:"31,omitempty"` // Contains the number or identifier of the mail user's post office box. - PostOfficeBox *string `protobuf:"bytes,123,opt,name=post_office_box,json=postOfficeBox,proto3,oneof" json:"post_office_box,omitempty" msg:"1489131,omitempty"` + PostOfficeBox *string `protobuf:"bytes,123,opt,name=post_office_box,json=postOfficeBox,proto3,oneof" json:"post_office_box,omitempty" msg:"14891,omitempty" type:"31,omitempty"` // Contains the telephone number of the mail user's primary fax machine. - PrimaryFaxNumber *string `protobuf:"bytes,124,opt,name=primary_fax_number,json=primaryFaxNumber,proto3,oneof" json:"primary_fax_number,omitempty" msg:"1488331,omitempty"` + PrimaryFaxNumber *string `protobuf:"bytes,124,opt,name=primary_fax_number,json=primaryFaxNumber,proto3,oneof" json:"primary_fax_number,omitempty" msg:"14883,omitempty" type:"31,omitempty"` // Contains the mail user's primary telephone number. - PrimaryTelephoneNumber *string `protobuf:"bytes,125,opt,name=primary_telephone_number,json=primaryTelephoneNumber,proto3,oneof" json:"primary_telephone_number,omitempty" msg:"1487431,omitempty"` + PrimaryTelephoneNumber *string `protobuf:"bytes,125,opt,name=primary_telephone_number,json=primaryTelephoneNumber,proto3,oneof" json:"primary_telephone_number,omitempty" msg:"14874,omitempty" type:"31,omitempty"` // Contains the name of the mail user's line of business. - Profession *string `protobuf:"bytes,126,opt,name=profession,proto3,oneof" json:"profession,omitempty" msg:"1491831,omitempty"` + Profession *string `protobuf:"bytes,126,opt,name=profession,proto3,oneof" json:"profession,omitempty" msg:"14918,omitempty" type:"31,omitempty"` // Contains the mail user's radio telephone number. - RadioTelephoneNumber *string `protobuf:"bytes,127,opt,name=radio_telephone_number,json=radioTelephoneNumber,proto3,oneof" json:"radio_telephone_number,omitempty" msg:"1487731,omitempty"` + RadioTelephoneNumber *string `protobuf:"bytes,127,opt,name=radio_telephone_number,json=radioTelephoneNumber,proto3,oneof" json:"radio_telephone_number,omitempty" msg:"14877,omitempty" type:"31,omitempty"` // Contains the name of the mail user's referral. - ReferredByName *string `protobuf:"bytes,128,opt,name=referred_by_name,json=referredByName,proto3,oneof" json:"referred_by_name,omitempty" msg:"1491931,omitempty"` + ReferredByName *string `protobuf:"bytes,128,opt,name=referred_by_name,json=referredByName,proto3,oneof" json:"referred_by_name,omitempty" msg:"14919,omitempty" type:"31,omitempty"` // Contains the name of the mail user's spouse/partner. - SpouseName *string `protobuf:"bytes,129,opt,name=spouse_name,json=spouseName,proto3,oneof" json:"spouse_name,omitempty" msg:"1492031,omitempty"` + SpouseName *string `protobuf:"bytes,129,opt,name=spouse_name,json=spouseName,proto3,oneof" json:"spouse_name,omitempty" msg:"14920,omitempty" type:"31,omitempty"` // Contains the name of the mail user's state or province. - StateOrProvince *string `protobuf:"bytes,130,opt,name=state_or_province,json=stateOrProvince,proto3,oneof" json:"state_or_province,omitempty" msg:"1488831,omitempty"` + StateOrProvince *string `protobuf:"bytes,130,opt,name=state_or_province,json=stateOrProvince,proto3,oneof" json:"state_or_province,omitempty" msg:"14888,omitempty" type:"31,omitempty"` // Contains the mail user's street address. - StreetAddress *string `protobuf:"bytes,131,opt,name=street_address,json=streetAddress,proto3,oneof" json:"street_address,omitempty" msg:"1488931,omitempty"` + StreetAddress *string `protobuf:"bytes,131,opt,name=street_address,json=streetAddress,proto3,oneof" json:"street_address,omitempty" msg:"14889,omitempty" type:"31,omitempty"` // Contains the mail user's family name. - Surname *string `protobuf:"bytes,132,opt,name=surname,proto3,oneof" json:"surname,omitempty" msg:"1486531,omitempty"` + Surname *string `protobuf:"bytes,132,opt,name=surname,proto3,oneof" json:"surname,omitempty" msg:"14865,omitempty" type:"31,omitempty"` // Contains the mail user's telecommunication device for the deaf (TTY/TDD) telephone number. - TelecommunicationsDeviceForDeafTelephoneNumber *string `protobuf:"bytes,133,opt,name=telecommunications_device_for_deaf_telephone_number,json=telecommunicationsDeviceForDeafTelephoneNumber,proto3,oneof" json:"telecommunications_device_for_deaf_telephone_number,omitempty" msg:"1492331,omitempty"` + TelecommunicationsDeviceForDeafTelephoneNumber *string `protobuf:"bytes,133,opt,name=telecommunications_device_for_deaf_telephone_number,json=telecommunicationsDeviceForDeafTelephoneNumber,proto3,oneof" json:"telecommunications_device_for_deaf_telephone_number,omitempty" msg:"14923,omitempty" type:"31,omitempty"` // Contains the mail user's telex number. This property is returned from an NSPI server as a PtypMultipleBinary. Otherwise, the data type is PtypString. - TelexNumber *string `protobuf:"bytes,134,opt,name=telex_number,json=telexNumber,proto3,oneof" json:"telex_number,omitempty" msg:"1489231,omitempty"` + TelexNumber *string `protobuf:"bytes,134,opt,name=telex_number,json=telexNumber,proto3,oneof" json:"telex_number,omitempty" msg:"14892,omitempty" type:"31,omitempty"` // Contains the mail user's job title. - Title *string `protobuf:"bytes,135,opt,name=title,proto3,oneof" json:"title,omitempty" msg:"1487131,omitempty"` + Title *string `protobuf:"bytes,135,opt,name=title,proto3,oneof" json:"title,omitempty" msg:"14871,omitempty" type:"31,omitempty"` // Contains the date of the mail user's wedding anniversary. - WeddingAnniversary *int64 `protobuf:"varint,138,opt,name=wedding_anniversary,json=weddingAnniversary,proto3,oneof" json:"wedding_anniversary,omitempty" msg:"1491364,omitempty"` + WeddingAnniversary *int64 `protobuf:"varint,138,opt,name=wedding_anniversary,json=weddingAnniversary,proto3,oneof" json:"wedding_anniversary,omitempty" msg:"14913,omitempty" type:"64,omitempty"` } func (x *Contact) Reset() { diff --git a/pkg/properties/contact.pb_gen.go b/pkg/properties/contact.pb_gen.go index a3b0279..bd790f4 100644 --- a/pkg/properties/contact.pb_gen.go +++ b/pkg/properties/contact.pb_gen.go @@ -24,7 +24,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "2622173": + case "262217": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26257331": + case "262573": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26221311": + case "262213": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26257464": + case "262574": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2622113": + case "262211": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26260072": + case "262600": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2625983": + case "262598": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26752631": + case "267526": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26228731": + case "262287": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26230431": + case "262304": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26230531": + case "262305": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26230631": + case "262306": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26217631": + case "262176": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2622843": + case "262284": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26230731": + case "262307": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -294,7 +294,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26240231": + case "262402": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -312,7 +312,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26240031": + case "262400": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -330,7 +330,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26240331": + case "262403": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -348,7 +348,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26240431": + case "262404": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -366,7 +366,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26243431": + case "262434": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -384,7 +384,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26243231": + case "262432": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -402,7 +402,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26243531": + case "262435": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -420,7 +420,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26243631": + case "262436": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -438,7 +438,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26246631": + case "262466": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -456,7 +456,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26246431": + case "262464": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -474,7 +474,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26246731": + case "262467": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -492,7 +492,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26246831": + case "262468": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -510,7 +510,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26249831": + case "262498": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -528,7 +528,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26249931": + case "262499": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -546,7 +546,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26250031": + case "262500": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -564,7 +564,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26253031": + case "262530": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -582,7 +582,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26253131": + case "262531": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -600,7 +600,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26253231": + case "262532": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -618,7 +618,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26256231": + case "262562": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -636,7 +636,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26256331": + case "262563": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -654,7 +654,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26256431": + case "262564": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -672,7 +672,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26214931": + case "262149": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -690,7 +690,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2621503": + case "262150": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -708,7 +708,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26256831": + case "262568": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -726,7 +726,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26218111": + case "262181": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -744,7 +744,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26218631": + case "262186": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -762,7 +762,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26257031": + case "262570": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -780,7 +780,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26221931": + case "262219": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -798,7 +798,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26233831": + case "262338": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -816,7 +816,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26259211": + case "262592": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -834,7 +834,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26218831": + case "262188": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -852,7 +852,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26257231": + case "262572": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -870,7 +870,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2622103": + case "262210": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -888,7 +888,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26257564": + case "262575": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -906,7 +906,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26218731": + case "262187": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -924,7 +924,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26227831": + case "262278": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -942,7 +942,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26228131": + case "262281": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -960,7 +960,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26257131": + case "262571": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -978,7 +978,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26228031": + case "262280": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -996,7 +996,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26228231": + case "262282": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1014,7 +1014,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26227931": + case "262279": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1032,7 +1032,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26227731": + case "262277": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1050,7 +1050,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26222231": + case "262222": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1068,7 +1068,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26222031": + case "262220": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1086,7 +1086,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26222131": + case "262221": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1140,7 +1140,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1491464": + case "14914": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1158,7 +1158,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1487531": + case "14875": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1176,7 +1176,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1488431": + case "14884": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1194,7 +1194,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1492931": + case "14929": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1212,7 +1212,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1485631": + case "14856": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1230,7 +1230,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1485031": + case "14850": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1248,7 +1248,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1487831": + case "14878": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1266,7 +1266,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1493531": + case "14935": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1284,7 +1284,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1487031": + case "14870": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1302,7 +1302,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1492131": + case "14921": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1320,7 +1320,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1488631": + case "14886": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1338,7 +1338,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1492231": + case "14922": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1356,7 +1356,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1487231": + case "14872": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1374,7 +1374,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1491731": + case "14917": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1392,7 +1392,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1492431": + case "14924": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1410,7 +1410,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "149252": + case "14925": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1428,7 +1428,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1485331": + case "14853": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1446,7 +1446,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1485431": + case "14854": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1464,7 +1464,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1485531": + case "14855": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1482,7 +1482,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1491531": + case "14915": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1500,7 +1500,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1489531": + case "14895": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1518,7 +1518,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1493731": + case "14937": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1536,7 +1536,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1493831": + case "14938": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1554,7 +1554,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1493931": + case "14939": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1572,7 +1572,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1494231": + case "14942": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1590,7 +1590,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1494031": + case "14940": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1608,7 +1608,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1494131": + case "14941": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1626,7 +1626,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1488531": + case "14885": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1644,7 +1644,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1485731": + case "14857": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1662,7 +1662,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3178011": + case "31780": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1680,7 +1680,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1492831": + case "14928": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1698,7 +1698,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1486931": + case "14869": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1716,7 +1716,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1489031": + case "14890": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1734,7 +1734,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1489131": + case "14891": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1752,7 +1752,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1488331": + case "14883": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1770,7 +1770,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1487431": + case "14874": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1788,7 +1788,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1491831": + case "14918": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1806,7 +1806,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1487731": + case "14877": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1824,7 +1824,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1491931": + case "14919": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1842,7 +1842,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1492031": + case "14920": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1860,7 +1860,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1488831": + case "14888": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1878,7 +1878,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1488931": + case "14889": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1896,7 +1896,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1486531": + case "14865": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1914,7 +1914,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1492331": + case "14923": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1932,7 +1932,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1489231": + case "14892": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1950,7 +1950,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1487131": + case "14871": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1968,7 +1968,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1491364": + case "14913": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2439,8 +2439,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // write "2622173" - err = en.Append(0xa7, 0x32, 0x36, 0x32, 0x32, 0x31, 0x37, 0x33) + // write "262217" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x37) if err != nil { return } @@ -2458,8 +2458,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // write "26257331" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x37, 0x33, 0x33, 0x31) + // write "262573" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x33) if err != nil { return } @@ -2477,8 +2477,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // write "26221311" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x31, 0x33, 0x31, 0x31) + // write "262213" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x33) if err != nil { return } @@ -2496,8 +2496,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // write "26257464" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x37, 0x34, 0x36, 0x34) + // write "262574" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x34) if err != nil { return } @@ -2515,8 +2515,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // write "2622113" - err = en.Append(0xa7, 0x32, 0x36, 0x32, 0x32, 0x31, 0x31, 0x33) + // write "262211" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x31) if err != nil { return } @@ -2534,8 +2534,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // write "26260072" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x36, 0x30, 0x30, 0x37, 0x32) + // write "262600" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x36, 0x30, 0x30) if err != nil { return } @@ -2553,8 +2553,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // write "2625983" - err = en.Append(0xa7, 0x32, 0x36, 0x32, 0x35, 0x39, 0x38, 0x33) + // write "262598" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x39, 0x38) if err != nil { return } @@ -2572,8 +2572,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // write "26752631" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x35, 0x32, 0x36, 0x33, 0x31) + // write "267526" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x35, 0x32, 0x36) if err != nil { return } @@ -2591,8 +2591,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // write "26228731" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x38, 0x37, 0x33, 0x31) + // write "262287" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x37) if err != nil { return } @@ -2610,8 +2610,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // write "26230431" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x33, 0x30, 0x34, 0x33, 0x31) + // write "262304" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x34) if err != nil { return } @@ -2629,8 +2629,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // write "26230531" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x33, 0x30, 0x35, 0x33, 0x31) + // write "262305" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x35) if err != nil { return } @@ -2648,8 +2648,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // write "26230631" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x33, 0x30, 0x36, 0x33, 0x31) + // write "262306" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x36) if err != nil { return } @@ -2667,8 +2667,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // write "26217631" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x31, 0x37, 0x36, 0x33, 0x31) + // write "262176" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x37, 0x36) if err != nil { return } @@ -2686,8 +2686,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // write "2622843" - err = en.Append(0xa7, 0x32, 0x36, 0x32, 0x32, 0x38, 0x34, 0x33) + // write "262284" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x34) if err != nil { return } @@ -2705,8 +2705,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // write "26230731" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x33, 0x30, 0x37, 0x33, 0x31) + // write "262307" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x37) if err != nil { return } @@ -2724,8 +2724,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000) == 0 { // if not empty - // write "26240231" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x30, 0x32, 0x33, 0x31) + // write "262402" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x32) if err != nil { return } @@ -2743,8 +2743,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000) == 0 { // if not empty - // write "26240031" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x30, 0x30, 0x33, 0x31) + // write "262400" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x30) if err != nil { return } @@ -2762,8 +2762,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000) == 0 { // if not empty - // write "26240331" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x30, 0x33, 0x33, 0x31) + // write "262403" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x33) if err != nil { return } @@ -2781,8 +2781,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000) == 0 { // if not empty - // write "26240431" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x30, 0x34, 0x33, 0x31) + // write "262404" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x34) if err != nil { return } @@ -2800,8 +2800,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000) == 0 { // if not empty - // write "26243431" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x33, 0x34, 0x33, 0x31) + // write "262434" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x34) if err != nil { return } @@ -2819,8 +2819,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000) == 0 { // if not empty - // write "26243231" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x33, 0x32, 0x33, 0x31) + // write "262432" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x32) if err != nil { return } @@ -2838,8 +2838,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000) == 0 { // if not empty - // write "26243531" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x33, 0x35, 0x33, 0x31) + // write "262435" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x35) if err != nil { return } @@ -2857,8 +2857,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000) == 0 { // if not empty - // write "26243631" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x33, 0x36, 0x33, 0x31) + // write "262436" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x36) if err != nil { return } @@ -2876,8 +2876,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000) == 0 { // if not empty - // write "26246631" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x36, 0x36, 0x33, 0x31) + // write "262466" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x36) if err != nil { return } @@ -2895,8 +2895,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000) == 0 { // if not empty - // write "26246431" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x36, 0x34, 0x33, 0x31) + // write "262464" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x34) if err != nil { return } @@ -2914,8 +2914,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // write "26246731" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x36, 0x37, 0x33, 0x31) + // write "262467" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x37) if err != nil { return } @@ -2933,8 +2933,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // write "26246831" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x36, 0x38, 0x33, 0x31) + // write "262468" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x38) if err != nil { return } @@ -2952,8 +2952,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // write "26249831" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x39, 0x38, 0x33, 0x31) + // write "262498" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x39, 0x38) if err != nil { return } @@ -2971,8 +2971,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // write "26249931" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x34, 0x39, 0x39, 0x33, 0x31) + // write "262499" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x39, 0x39) if err != nil { return } @@ -2990,8 +2990,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // write "26250031" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x30, 0x30, 0x33, 0x31) + // write "262500" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x30, 0x30) if err != nil { return } @@ -3009,8 +3009,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // write "26253031" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x33, 0x30, 0x33, 0x31) + // write "262530" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x33, 0x30) if err != nil { return } @@ -3028,8 +3028,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // write "26253131" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x33, 0x31, 0x33, 0x31) + // write "262531" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x33, 0x31) if err != nil { return } @@ -3047,8 +3047,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // write "26253231" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x33, 0x32, 0x33, 0x31) + // write "262532" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x33, 0x32) if err != nil { return } @@ -3066,8 +3066,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // write "26256231" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x36, 0x32, 0x33, 0x31) + // write "262562" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x32) if err != nil { return } @@ -3085,8 +3085,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // write "26256331" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x36, 0x33, 0x33, 0x31) + // write "262563" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x33) if err != nil { return } @@ -3104,8 +3104,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // write "26256431" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x36, 0x34, 0x33, 0x31) + // write "262564" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x34) if err != nil { return } @@ -3123,8 +3123,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // write "26214931" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x31, 0x34, 0x39, 0x33, 0x31) + // write "262149" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x34, 0x39) if err != nil { return } @@ -3142,8 +3142,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // write "2621503" - err = en.Append(0xa7, 0x32, 0x36, 0x32, 0x31, 0x35, 0x30, 0x33) + // write "262150" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x35, 0x30) if err != nil { return } @@ -3161,8 +3161,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // write "26256831" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x36, 0x38, 0x33, 0x31) + // write "262568" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x38) if err != nil { return } @@ -3180,8 +3180,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // write "26218111" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x31, 0x38, 0x31, 0x31, 0x31) + // write "262181" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x31) if err != nil { return } @@ -3199,8 +3199,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // write "26218631" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x31, 0x38, 0x36, 0x33, 0x31) + // write "262186" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x36) if err != nil { return } @@ -3218,8 +3218,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // write "26257031" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x37, 0x30, 0x33, 0x31) + // write "262570" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x30) if err != nil { return } @@ -3237,8 +3237,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // write "26221931" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x31, 0x39, 0x33, 0x31) + // write "262219" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x39) if err != nil { return } @@ -3256,8 +3256,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // write "26233831" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x33, 0x33, 0x38, 0x33, 0x31) + // write "262338" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x33, 0x33, 0x38) if err != nil { return } @@ -3275,8 +3275,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // write "26259211" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x39, 0x32, 0x31, 0x31) + // write "262592" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x39, 0x32) if err != nil { return } @@ -3294,8 +3294,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // write "26218831" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x31, 0x38, 0x38, 0x33, 0x31) + // write "262188" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x38) if err != nil { return } @@ -3313,8 +3313,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // write "26257231" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x37, 0x32, 0x33, 0x31) + // write "262572" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x32) if err != nil { return } @@ -3332,8 +3332,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // write "2622103" - err = en.Append(0xa7, 0x32, 0x36, 0x32, 0x32, 0x31, 0x30, 0x33) + // write "262210" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x30) if err != nil { return } @@ -3351,8 +3351,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // write "26257564" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x37, 0x35, 0x36, 0x34) + // write "262575" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x35) if err != nil { return } @@ -3370,8 +3370,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // write "26218731" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x31, 0x38, 0x37, 0x33, 0x31) + // write "262187" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x37) if err != nil { return } @@ -3389,8 +3389,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // write "26227831" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x37, 0x38, 0x33, 0x31) + // write "262278" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x37, 0x38) if err != nil { return } @@ -3408,8 +3408,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // write "26228131" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x38, 0x31, 0x33, 0x31) + // write "262281" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x31) if err != nil { return } @@ -3427,8 +3427,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // write "26257131" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x37, 0x31, 0x33, 0x31) + // write "262571" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x31) if err != nil { return } @@ -3446,8 +3446,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // write "26228031" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x38, 0x30, 0x33, 0x31) + // write "262280" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x30) if err != nil { return } @@ -3465,8 +3465,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // write "26228231" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x38, 0x32, 0x33, 0x31) + // write "262282" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x32) if err != nil { return } @@ -3484,8 +3484,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000000) == 0 { // if not empty - // write "26227931" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x37, 0x39, 0x33, 0x31) + // write "262279" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x37, 0x39) if err != nil { return } @@ -3503,8 +3503,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000000) == 0 { // if not empty - // write "26227731" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x37, 0x37, 0x33, 0x31) + // write "262277" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x37, 0x37) if err != nil { return } @@ -3522,8 +3522,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000000) == 0 { // if not empty - // write "26222231" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x32, 0x32, 0x33, 0x31) + // write "262222" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x32, 0x32) if err != nil { return } @@ -3541,8 +3541,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000000) == 0 { // if not empty - // write "26222031" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x32, 0x30, 0x33, 0x31) + // write "262220" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x32, 0x30) if err != nil { return } @@ -3560,8 +3560,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000000) == 0 { // if not empty - // write "26222131" - err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x32, 0x31, 0x33, 0x31) + // write "262221" + err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x32, 0x31) if err != nil { return } @@ -3613,8 +3613,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000000) == 0 { // if not empty - // write "1491464" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x31, 0x34, 0x36, 0x34) + // write "14914" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x34) if err != nil { return } @@ -3632,8 +3632,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000000) == 0 { // if not empty - // write "1487531" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x37, 0x35, 0x33, 0x31) + // write "14875" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x35) if err != nil { return } @@ -3651,8 +3651,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1) == 0 { // if not empty - // write "1488431" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x38, 0x34, 0x33, 0x31) + // write "14884" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x34) if err != nil { return } @@ -3670,8 +3670,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2) == 0 { // if not empty - // write "1492931" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x32, 0x39, 0x33, 0x31) + // write "14929" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x39) if err != nil { return } @@ -3689,8 +3689,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4) == 0 { // if not empty - // write "1485631" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x35, 0x36, 0x33, 0x31) + // write "14856" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x36) if err != nil { return } @@ -3708,8 +3708,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8) == 0 { // if not empty - // write "1485031" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x35, 0x30, 0x33, 0x31) + // write "14850" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x30) if err != nil { return } @@ -3727,8 +3727,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10) == 0 { // if not empty - // write "1487831" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x37, 0x38, 0x33, 0x31) + // write "14878" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x38) if err != nil { return } @@ -3746,8 +3746,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20) == 0 { // if not empty - // write "1493531" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x33, 0x35, 0x33, 0x31) + // write "14935" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x33, 0x35) if err != nil { return } @@ -3765,8 +3765,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40) == 0 { // if not empty - // write "1487031" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x37, 0x30, 0x33, 0x31) + // write "14870" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x30) if err != nil { return } @@ -3784,8 +3784,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80) == 0 { // if not empty - // write "1492131" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x32, 0x31, 0x33, 0x31) + // write "14921" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x31) if err != nil { return } @@ -3803,8 +3803,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100) == 0 { // if not empty - // write "1488631" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x38, 0x36, 0x33, 0x31) + // write "14886" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x36) if err != nil { return } @@ -3822,8 +3822,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200) == 0 { // if not empty - // write "1492231" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x32, 0x32, 0x33, 0x31) + // write "14922" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x32) if err != nil { return } @@ -3841,8 +3841,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400) == 0 { // if not empty - // write "1487231" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x37, 0x32, 0x33, 0x31) + // write "14872" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x32) if err != nil { return } @@ -3860,8 +3860,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800) == 0 { // if not empty - // write "1491731" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x31, 0x37, 0x33, 0x31) + // write "14917" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x37) if err != nil { return } @@ -3879,8 +3879,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000) == 0 { // if not empty - // write "1492431" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x32, 0x34, 0x33, 0x31) + // write "14924" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x34) if err != nil { return } @@ -3898,8 +3898,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000) == 0 { // if not empty - // write "149252" - err = en.Append(0xa6, 0x31, 0x34, 0x39, 0x32, 0x35, 0x32) + // write "14925" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x35) if err != nil { return } @@ -3917,8 +3917,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000) == 0 { // if not empty - // write "1485331" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x35, 0x33, 0x33, 0x31) + // write "14853" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x33) if err != nil { return } @@ -3936,8 +3936,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000) == 0 { // if not empty - // write "1485431" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x35, 0x34, 0x33, 0x31) + // write "14854" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x34) if err != nil { return } @@ -3955,8 +3955,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000) == 0 { // if not empty - // write "1485531" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x35, 0x35, 0x33, 0x31) + // write "14855" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x35) if err != nil { return } @@ -3974,8 +3974,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000) == 0 { // if not empty - // write "1491531" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x31, 0x35, 0x33, 0x31) + // write "14915" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x35) if err != nil { return } @@ -3993,8 +3993,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000) == 0 { // if not empty - // write "1489531" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x39, 0x35, 0x33, 0x31) + // write "14895" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x35) if err != nil { return } @@ -4012,8 +4012,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000) == 0 { // if not empty - // write "1493731" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x33, 0x37, 0x33, 0x31) + // write "14937" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x33, 0x37) if err != nil { return } @@ -4031,8 +4031,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000) == 0 { // if not empty - // write "1493831" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x33, 0x38, 0x33, 0x31) + // write "14938" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x33, 0x38) if err != nil { return } @@ -4050,8 +4050,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000) == 0 { // if not empty - // write "1493931" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x33, 0x39, 0x33, 0x31) + // write "14939" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x33, 0x39) if err != nil { return } @@ -4069,8 +4069,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000) == 0 { // if not empty - // write "1494231" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x34, 0x32, 0x33, 0x31) + // write "14942" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x32) if err != nil { return } @@ -4088,8 +4088,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000) == 0 { // if not empty - // write "1494031" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x34, 0x30, 0x33, 0x31) + // write "14940" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x30) if err != nil { return } @@ -4107,8 +4107,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000) == 0 { // if not empty - // write "1494131" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x34, 0x31, 0x33, 0x31) + // write "14941" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x31) if err != nil { return } @@ -4126,8 +4126,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000) == 0 { // if not empty - // write "1488531" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x38, 0x35, 0x33, 0x31) + // write "14885" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x35) if err != nil { return } @@ -4145,8 +4145,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000) == 0 { // if not empty - // write "1485731" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x35, 0x37, 0x33, 0x31) + // write "14857" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x37) if err != nil { return } @@ -4164,8 +4164,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000) == 0 { // if not empty - // write "3178011" - err = en.Append(0xa7, 0x33, 0x31, 0x37, 0x38, 0x30, 0x31, 0x31) + // write "31780" + err = en.Append(0xa5, 0x33, 0x31, 0x37, 0x38, 0x30) if err != nil { return } @@ -4183,8 +4183,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000) == 0 { // if not empty - // write "1492831" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x32, 0x38, 0x33, 0x31) + // write "14928" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x38) if err != nil { return } @@ -4202,8 +4202,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000) == 0 { // if not empty - // write "1486931" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x36, 0x39, 0x33, 0x31) + // write "14869" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x36, 0x39) if err != nil { return } @@ -4221,8 +4221,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000) == 0 { // if not empty - // write "1489031" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x39, 0x30, 0x33, 0x31) + // write "14890" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x30) if err != nil { return } @@ -4240,8 +4240,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000) == 0 { // if not empty - // write "1489131" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x39, 0x31, 0x33, 0x31) + // write "14891" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x31) if err != nil { return } @@ -4259,8 +4259,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000) == 0 { // if not empty - // write "1488331" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x38, 0x33, 0x33, 0x31) + // write "14883" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x33) if err != nil { return } @@ -4278,8 +4278,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000000) == 0 { // if not empty - // write "1487431" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x37, 0x34, 0x33, 0x31) + // write "14874" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x34) if err != nil { return } @@ -4297,8 +4297,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000000) == 0 { // if not empty - // write "1491831" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x31, 0x38, 0x33, 0x31) + // write "14918" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x38) if err != nil { return } @@ -4316,8 +4316,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000000) == 0 { // if not empty - // write "1487731" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x37, 0x37, 0x33, 0x31) + // write "14877" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x37) if err != nil { return } @@ -4335,8 +4335,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000000) == 0 { // if not empty - // write "1491931" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x31, 0x39, 0x33, 0x31) + // write "14919" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x39) if err != nil { return } @@ -4354,8 +4354,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000000) == 0 { // if not empty - // write "1492031" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x32, 0x30, 0x33, 0x31) + // write "14920" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x30) if err != nil { return } @@ -4373,8 +4373,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000000) == 0 { // if not empty - // write "1488831" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x38, 0x38, 0x33, 0x31) + // write "14888" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x38) if err != nil { return } @@ -4392,8 +4392,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000000) == 0 { // if not empty - // write "1488931" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x38, 0x39, 0x33, 0x31) + // write "14889" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x39) if err != nil { return } @@ -4411,8 +4411,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000000) == 0 { // if not empty - // write "1486531" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x36, 0x35, 0x33, 0x31) + // write "14865" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x36, 0x35) if err != nil { return } @@ -4430,8 +4430,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000000) == 0 { // if not empty - // write "1492331" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x32, 0x33, 0x33, 0x31) + // write "14923" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x33) if err != nil { return } @@ -4449,8 +4449,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000000) == 0 { // if not empty - // write "1489231" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x39, 0x32, 0x33, 0x31) + // write "14892" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x32) if err != nil { return } @@ -4468,8 +4468,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000000) == 0 { // if not empty - // write "1487131" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x37, 0x31, 0x33, 0x31) + // write "14871" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x31) if err != nil { return } @@ -4487,8 +4487,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000000) == 0 { // if not empty - // write "1491364" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x31, 0x33, 0x36, 0x34) + // write "14913" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x33) if err != nil { return } @@ -4948,8 +4948,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // string "2622173" - o = append(o, 0xa7, 0x32, 0x36, 0x32, 0x32, 0x31, 0x37, 0x33) + // string "262217" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x37) if z.AddressBookProviderArrayType == nil { o = msgp.AppendNil(o) } else { @@ -4957,8 +4957,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // string "26257331" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x37, 0x33, 0x33, 0x31) + // string "262573" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x33) if z.AddressCountryCode == nil { o = msgp.AppendNil(o) } else { @@ -4966,8 +4966,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // string "26221311" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x31, 0x33, 0x31, 0x31) + // string "262213" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x33) if z.AutoLog == nil { o = msgp.AppendNil(o) } else { @@ -4975,8 +4975,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // string "26257464" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x37, 0x34, 0x36, 0x34) + // string "262574" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x34) if z.BirthdayLocal == nil { o = msgp.AppendNil(o) } else { @@ -4984,8 +4984,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // string "2622113" - o = append(o, 0xa7, 0x32, 0x36, 0x32, 0x32, 0x31, 0x31, 0x33) + // string "262211" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x31) if z.ContactCharacterSet == nil { o = msgp.AppendNil(o) } else { @@ -4993,8 +4993,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // string "26260072" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x36, 0x30, 0x30, 0x37, 0x32) + // string "262600" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x36, 0x30, 0x30) if z.ContactLinkGlobalAddressListLinkId == nil { o = msgp.AppendNil(o) } else { @@ -5002,8 +5002,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // string "2625983" - o = append(o, 0xa7, 0x32, 0x36, 0x32, 0x35, 0x39, 0x38, 0x33) + // string "262598" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x39, 0x38) if z.ContactLinkGlobalAddressListLinkState == nil { o = msgp.AppendNil(o) } else { @@ -5011,8 +5011,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // string "26752631" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x35, 0x32, 0x36, 0x33, 0x31) + // string "267526" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x35, 0x32, 0x36) if z.ContactLinkName == nil { o = msgp.AppendNil(o) } else { @@ -5020,8 +5020,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // string "26228731" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x38, 0x37, 0x33, 0x31) + // string "262287" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x37) if z.ContactUserField1 == nil { o = msgp.AppendNil(o) } else { @@ -5029,8 +5029,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // string "26230431" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x33, 0x30, 0x34, 0x33, 0x31) + // string "262304" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x34) if z.ContactUserField2 == nil { o = msgp.AppendNil(o) } else { @@ -5038,8 +5038,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // string "26230531" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x33, 0x30, 0x35, 0x33, 0x31) + // string "262305" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x35) if z.ContactUserField3 == nil { o = msgp.AppendNil(o) } else { @@ -5047,8 +5047,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // string "26230631" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x33, 0x30, 0x36, 0x33, 0x31) + // string "262306" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x36) if z.ContactUserField4 == nil { o = msgp.AppendNil(o) } else { @@ -5056,8 +5056,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // string "26217631" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x31, 0x37, 0x36, 0x33, 0x31) + // string "262176" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x37, 0x36) if z.Department == nil { o = msgp.AppendNil(o) } else { @@ -5065,8 +5065,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // string "2622843" - o = append(o, 0xa7, 0x32, 0x36, 0x32, 0x32, 0x38, 0x34, 0x33) + // string "262284" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x34) if z.DistributionListChecksum == nil { o = msgp.AppendNil(o) } else { @@ -5074,8 +5074,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // string "26230731" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x33, 0x30, 0x37, 0x33, 0x31) + // string "262307" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x37) if z.DistributionListName == nil { o = msgp.AppendNil(o) } else { @@ -5083,8 +5083,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000) == 0 { // if not empty - // string "26240231" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x30, 0x32, 0x33, 0x31) + // string "262402" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x32) if z.Email1AddressType == nil { o = msgp.AppendNil(o) } else { @@ -5092,8 +5092,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000) == 0 { // if not empty - // string "26240031" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x30, 0x30, 0x33, 0x31) + // string "262400" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x30) if z.Email1DisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5101,8 +5101,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000) == 0 { // if not empty - // string "26240331" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x30, 0x33, 0x33, 0x31) + // string "262403" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x33) if z.Email1EmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -5110,8 +5110,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000) == 0 { // if not empty - // string "26240431" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x30, 0x34, 0x33, 0x31) + // string "262404" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x34) if z.Email1OriginalDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5119,8 +5119,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000) == 0 { // if not empty - // string "26243431" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x33, 0x34, 0x33, 0x31) + // string "262434" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x34) if z.Email2AddressType == nil { o = msgp.AppendNil(o) } else { @@ -5128,8 +5128,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000) == 0 { // if not empty - // string "26243231" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x33, 0x32, 0x33, 0x31) + // string "262432" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x32) if z.Email2DisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5137,8 +5137,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000) == 0 { // if not empty - // string "26243531" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x33, 0x35, 0x33, 0x31) + // string "262435" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x35) if z.Email2EmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -5146,8 +5146,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000) == 0 { // if not empty - // string "26243631" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x33, 0x36, 0x33, 0x31) + // string "262436" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x36) if z.Email2OriginalDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5155,8 +5155,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000) == 0 { // if not empty - // string "26246631" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x36, 0x36, 0x33, 0x31) + // string "262466" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x36) if z.Email3AddressType == nil { o = msgp.AppendNil(o) } else { @@ -5164,8 +5164,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000) == 0 { // if not empty - // string "26246431" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x36, 0x34, 0x33, 0x31) + // string "262464" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x34) if z.Email3DisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5173,8 +5173,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // string "26246731" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x36, 0x37, 0x33, 0x31) + // string "262467" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x37) if z.Email3EmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -5182,8 +5182,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // string "26246831" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x36, 0x38, 0x33, 0x31) + // string "262468" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x38) if z.Email3OriginalDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5191,8 +5191,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // string "26249831" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x39, 0x38, 0x33, 0x31) + // string "262498" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x39, 0x38) if z.Fax1AddressType == nil { o = msgp.AppendNil(o) } else { @@ -5200,8 +5200,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // string "26249931" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x34, 0x39, 0x39, 0x33, 0x31) + // string "262499" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x39, 0x39) if z.Fax1EmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -5209,8 +5209,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // string "26250031" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x30, 0x30, 0x33, 0x31) + // string "262500" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x30, 0x30) if z.Fax1OriginalDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5218,8 +5218,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // string "26253031" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x33, 0x30, 0x33, 0x31) + // string "262530" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x33, 0x30) if z.Fax2AddressType == nil { o = msgp.AppendNil(o) } else { @@ -5227,8 +5227,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // string "26253131" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x33, 0x31, 0x33, 0x31) + // string "262531" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x33, 0x31) if z.Fax2EmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -5236,8 +5236,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // string "26253231" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x33, 0x32, 0x33, 0x31) + // string "262532" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x33, 0x32) if z.Fax2OriginalDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5245,8 +5245,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // string "26256231" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x36, 0x32, 0x33, 0x31) + // string "262562" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x32) if z.Fax3AddressType == nil { o = msgp.AppendNil(o) } else { @@ -5254,8 +5254,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // string "26256331" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x36, 0x33, 0x33, 0x31) + // string "262563" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x33) if z.Fax3EmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -5263,8 +5263,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // string "26256431" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x36, 0x34, 0x33, 0x31) + // string "262564" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x34) if z.Fax3OriginalDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5272,8 +5272,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // string "26214931" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x31, 0x34, 0x39, 0x33, 0x31) + // string "262149" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x34, 0x39) if z.FileUnder == nil { o = msgp.AppendNil(o) } else { @@ -5281,8 +5281,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // string "2621503" - o = append(o, 0xa7, 0x32, 0x36, 0x32, 0x31, 0x35, 0x30, 0x33) + // string "262150" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x35, 0x30) if z.FileUnderId == nil { o = msgp.AppendNil(o) } else { @@ -5290,8 +5290,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // string "26256831" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x36, 0x38, 0x33, 0x31) + // string "262568" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x38) if z.FreeBusyLocation == nil { o = msgp.AppendNil(o) } else { @@ -5299,8 +5299,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // string "26218111" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x31, 0x38, 0x31, 0x31, 0x31) + // string "262181" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x31) if z.HasPicture == nil { o = msgp.AppendNil(o) } else { @@ -5308,8 +5308,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // string "26218631" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x31, 0x38, 0x36, 0x33, 0x31) + // string "262186" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x36) if z.HomeAddress == nil { o = msgp.AppendNil(o) } else { @@ -5317,8 +5317,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // string "26257031" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x37, 0x30, 0x33, 0x31) + // string "262570" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x30) if z.HomeAddressCountryCode == nil { o = msgp.AppendNil(o) } else { @@ -5326,8 +5326,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // string "26221931" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x31, 0x39, 0x33, 0x31) + // string "262219" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x39) if z.Html == nil { o = msgp.AppendNil(o) } else { @@ -5335,8 +5335,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // string "26233831" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x33, 0x33, 0x38, 0x33, 0x31) + // string "262338" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x33, 0x33, 0x38) if z.InstantMessagingAddress == nil { o = msgp.AppendNil(o) } else { @@ -5344,8 +5344,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // string "26259211" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x39, 0x32, 0x31, 0x31) + // string "262592" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x39, 0x32) if z.IsContactLinked == nil { o = msgp.AppendNil(o) } else { @@ -5353,8 +5353,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // string "26218831" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x31, 0x38, 0x38, 0x33, 0x31) + // string "262188" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x38) if z.OtherAddress == nil { o = msgp.AppendNil(o) } else { @@ -5362,8 +5362,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // string "26257231" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x37, 0x32, 0x33, 0x31) + // string "262572" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x32) if z.OtherAddressCountryCode == nil { o = msgp.AppendNil(o) } else { @@ -5371,8 +5371,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // string "2622103" - o = append(o, 0xa7, 0x32, 0x36, 0x32, 0x32, 0x31, 0x30, 0x33) + // string "262210" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x30) if z.PostalAddressId == nil { o = msgp.AppendNil(o) } else { @@ -5380,8 +5380,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // string "26257564" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x37, 0x35, 0x36, 0x34) + // string "262575" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x35) if z.WeddingAnniversaryLocal == nil { o = msgp.AppendNil(o) } else { @@ -5389,8 +5389,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // string "26218731" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x31, 0x38, 0x37, 0x33, 0x31) + // string "262187" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x37) if z.WorkAddress == nil { o = msgp.AppendNil(o) } else { @@ -5398,8 +5398,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // string "26227831" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x37, 0x38, 0x33, 0x31) + // string "262278" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x37, 0x38) if z.WorkAddressCity == nil { o = msgp.AppendNil(o) } else { @@ -5407,8 +5407,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // string "26228131" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x38, 0x31, 0x33, 0x31) + // string "262281" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x31) if z.WorkAddressCountry == nil { o = msgp.AppendNil(o) } else { @@ -5416,8 +5416,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // string "26257131" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x37, 0x31, 0x33, 0x31) + // string "262571" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x31) if z.WorkAddressCountryCode == nil { o = msgp.AppendNil(o) } else { @@ -5425,8 +5425,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // string "26228031" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x38, 0x30, 0x33, 0x31) + // string "262280" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x30) if z.WorkAddressPostalCode == nil { o = msgp.AppendNil(o) } else { @@ -5434,8 +5434,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // string "26228231" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x38, 0x32, 0x33, 0x31) + // string "262282" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x32) if z.WorkAddressPostOfficeBox == nil { o = msgp.AppendNil(o) } else { @@ -5443,8 +5443,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000000) == 0 { // if not empty - // string "26227931" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x37, 0x39, 0x33, 0x31) + // string "262279" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x37, 0x39) if z.WorkAddressState == nil { o = msgp.AppendNil(o) } else { @@ -5452,8 +5452,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000000) == 0 { // if not empty - // string "26227731" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x37, 0x37, 0x33, 0x31) + // string "262277" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x37, 0x37) if z.WorkAddressStreet == nil { o = msgp.AppendNil(o) } else { @@ -5461,8 +5461,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000000) == 0 { // if not empty - // string "26222231" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x32, 0x32, 0x33, 0x31) + // string "262222" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x32, 0x32) if z.YomiCompanyName == nil { o = msgp.AppendNil(o) } else { @@ -5470,8 +5470,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000000) == 0 { // if not empty - // string "26222031" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x32, 0x30, 0x33, 0x31) + // string "262220" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x32, 0x30) if z.YomiFirstName == nil { o = msgp.AppendNil(o) } else { @@ -5479,8 +5479,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000000) == 0 { // if not empty - // string "26222131" - o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x32, 0x31, 0x33, 0x31) + // string "262221" + o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x32, 0x31) if z.YomiLastName == nil { o = msgp.AppendNil(o) } else { @@ -5502,8 +5502,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.AppendBool(o, *z.IsBirthdayContactWritable) } if (zb0001Mask[0] & 0x4000000000000000) == 0 { // if not empty - // string "1491464" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x31, 0x34, 0x36, 0x34) + // string "14914" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x34) if z.Birthday == nil { o = msgp.AppendNil(o) } else { @@ -5511,8 +5511,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000000) == 0 { // if not empty - // string "1487531" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x37, 0x35, 0x33, 0x31) + // string "14875" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x35) if z.Business2TelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5520,8 +5520,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1) == 0 { // if not empty - // string "1488431" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x38, 0x34, 0x33, 0x31) + // string "14884" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x34) if z.BusinessFaxNumber == nil { o = msgp.AppendNil(o) } else { @@ -5529,8 +5529,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2) == 0 { // if not empty - // string "1492931" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x32, 0x39, 0x33, 0x31) + // string "14929" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x39) if z.BusinessHomePage == nil { o = msgp.AppendNil(o) } else { @@ -5538,8 +5538,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4) == 0 { // if not empty - // string "1485631" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x35, 0x36, 0x33, 0x31) + // string "14856" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x36) if z.BusinessTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5547,8 +5547,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8) == 0 { // if not empty - // string "1485031" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x35, 0x30, 0x33, 0x31) + // string "14850" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x30) if z.CallbackTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5556,8 +5556,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10) == 0 { // if not empty - // string "1487831" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x37, 0x38, 0x33, 0x31) + // string "14878" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x38) if z.CarTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5565,8 +5565,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20) == 0 { // if not empty - // string "1493531" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x33, 0x35, 0x33, 0x31) + // string "14935" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x33, 0x35) if z.CompanyMainTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5574,8 +5574,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40) == 0 { // if not empty - // string "1487031" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x37, 0x30, 0x33, 0x31) + // string "14870" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x30) if z.CompanyName == nil { o = msgp.AppendNil(o) } else { @@ -5583,8 +5583,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80) == 0 { // if not empty - // string "1492131" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x32, 0x31, 0x33, 0x31) + // string "14921" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x31) if z.ComputerNetworkName == nil { o = msgp.AppendNil(o) } else { @@ -5592,8 +5592,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100) == 0 { // if not empty - // string "1488631" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x38, 0x36, 0x33, 0x31) + // string "14886" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x36) if z.Country == nil { o = msgp.AppendNil(o) } else { @@ -5601,8 +5601,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200) == 0 { // if not empty - // string "1492231" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x32, 0x32, 0x33, 0x31) + // string "14922" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x32) if z.CustomerId == nil { o = msgp.AppendNil(o) } else { @@ -5610,8 +5610,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400) == 0 { // if not empty - // string "1487231" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x37, 0x32, 0x33, 0x31) + // string "14872" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x32) if z.DepartmentName == nil { o = msgp.AppendNil(o) } else { @@ -5619,8 +5619,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800) == 0 { // if not empty - // string "1491731" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x31, 0x37, 0x33, 0x31) + // string "14917" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x37) if z.DisplayNamePrefix == nil { o = msgp.AppendNil(o) } else { @@ -5628,8 +5628,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000) == 0 { // if not empty - // string "1492431" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x32, 0x34, 0x33, 0x31) + // string "14924" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x34) if z.FtpSite == nil { o = msgp.AppendNil(o) } else { @@ -5637,8 +5637,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000) == 0 { // if not empty - // string "149252" - o = append(o, 0xa6, 0x31, 0x34, 0x39, 0x32, 0x35, 0x32) + // string "14925" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x35) if z.Gender == nil { o = msgp.AppendNil(o) } else { @@ -5646,8 +5646,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000) == 0 { // if not empty - // string "1485331" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x35, 0x33, 0x33, 0x31) + // string "14853" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x33) if z.Generation == nil { o = msgp.AppendNil(o) } else { @@ -5655,8 +5655,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000) == 0 { // if not empty - // string "1485431" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x35, 0x34, 0x33, 0x31) + // string "14854" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x34) if z.GivenName == nil { o = msgp.AppendNil(o) } else { @@ -5664,8 +5664,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000) == 0 { // if not empty - // string "1485531" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x35, 0x35, 0x33, 0x31) + // string "14855" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x35) if z.GovernmentIdNumber == nil { o = msgp.AppendNil(o) } else { @@ -5673,8 +5673,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000) == 0 { // if not empty - // string "1491531" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x31, 0x35, 0x33, 0x31) + // string "14915" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x35) if z.Hobbies == nil { o = msgp.AppendNil(o) } else { @@ -5682,8 +5682,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000) == 0 { // if not empty - // string "1489531" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x39, 0x35, 0x33, 0x31) + // string "14895" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x35) if z.Home2TelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5691,8 +5691,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000) == 0 { // if not empty - // string "1493731" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x33, 0x37, 0x33, 0x31) + // string "14937" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x33, 0x37) if z.HomeAddressCity == nil { o = msgp.AppendNil(o) } else { @@ -5700,8 +5700,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000) == 0 { // if not empty - // string "1493831" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x33, 0x38, 0x33, 0x31) + // string "14938" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x33, 0x38) if z.HomeAddressCountry == nil { o = msgp.AppendNil(o) } else { @@ -5709,8 +5709,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000) == 0 { // if not empty - // string "1493931" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x33, 0x39, 0x33, 0x31) + // string "14939" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x33, 0x39) if z.HomeAddressPostalCode == nil { o = msgp.AppendNil(o) } else { @@ -5718,8 +5718,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000) == 0 { // if not empty - // string "1494231" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x34, 0x32, 0x33, 0x31) + // string "14942" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x32) if z.HomeAddressPostOfficeBox == nil { o = msgp.AppendNil(o) } else { @@ -5727,8 +5727,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000) == 0 { // if not empty - // string "1494031" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x34, 0x30, 0x33, 0x31) + // string "14940" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x30) if z.HomeAddressStateOrProvince == nil { o = msgp.AppendNil(o) } else { @@ -5736,8 +5736,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000) == 0 { // if not empty - // string "1494131" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x34, 0x31, 0x33, 0x31) + // string "14941" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x31) if z.HomeAddressStreet == nil { o = msgp.AppendNil(o) } else { @@ -5745,8 +5745,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000) == 0 { // if not empty - // string "1488531" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x38, 0x35, 0x33, 0x31) + // string "14885" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x35) if z.HomeFaxNumber == nil { o = msgp.AppendNil(o) } else { @@ -5754,8 +5754,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000) == 0 { // if not empty - // string "1485731" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x35, 0x37, 0x33, 0x31) + // string "14857" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x37) if z.HomeTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5763,8 +5763,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000) == 0 { // if not empty - // string "3178011" - o = append(o, 0xa7, 0x33, 0x31, 0x37, 0x38, 0x30, 0x31, 0x31) + // string "31780" + o = append(o, 0xa5, 0x33, 0x31, 0x37, 0x38, 0x30) if z.OscSyncEnabled == nil { o = msgp.AppendNil(o) } else { @@ -5772,8 +5772,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000) == 0 { // if not empty - // string "1492831" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x32, 0x38, 0x33, 0x31) + // string "14928" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x38) if z.PersonalHomePage == nil { o = msgp.AppendNil(o) } else { @@ -5781,8 +5781,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000) == 0 { // if not empty - // string "1486931" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x36, 0x39, 0x33, 0x31) + // string "14869" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x36, 0x39) if z.PostalAddress == nil { o = msgp.AppendNil(o) } else { @@ -5790,8 +5790,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000) == 0 { // if not empty - // string "1489031" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x39, 0x30, 0x33, 0x31) + // string "14890" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x30) if z.PostalCode == nil { o = msgp.AppendNil(o) } else { @@ -5799,8 +5799,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000) == 0 { // if not empty - // string "1489131" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x39, 0x31, 0x33, 0x31) + // string "14891" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x31) if z.PostOfficeBox == nil { o = msgp.AppendNil(o) } else { @@ -5808,8 +5808,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000) == 0 { // if not empty - // string "1488331" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x38, 0x33, 0x33, 0x31) + // string "14883" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x33) if z.PrimaryFaxNumber == nil { o = msgp.AppendNil(o) } else { @@ -5817,8 +5817,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000000) == 0 { // if not empty - // string "1487431" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x37, 0x34, 0x33, 0x31) + // string "14874" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x34) if z.PrimaryTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5826,8 +5826,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000000) == 0 { // if not empty - // string "1491831" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x31, 0x38, 0x33, 0x31) + // string "14918" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x38) if z.Profession == nil { o = msgp.AppendNil(o) } else { @@ -5835,8 +5835,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000000) == 0 { // if not empty - // string "1487731" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x37, 0x37, 0x33, 0x31) + // string "14877" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x37) if z.RadioTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5844,8 +5844,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000000) == 0 { // if not empty - // string "1491931" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x31, 0x39, 0x33, 0x31) + // string "14919" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x39) if z.ReferredByName == nil { o = msgp.AppendNil(o) } else { @@ -5853,8 +5853,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000000) == 0 { // if not empty - // string "1492031" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x32, 0x30, 0x33, 0x31) + // string "14920" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x30) if z.SpouseName == nil { o = msgp.AppendNil(o) } else { @@ -5862,8 +5862,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000000) == 0 { // if not empty - // string "1488831" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x38, 0x38, 0x33, 0x31) + // string "14888" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x38) if z.StateOrProvince == nil { o = msgp.AppendNil(o) } else { @@ -5871,8 +5871,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000000) == 0 { // if not empty - // string "1488931" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x38, 0x39, 0x33, 0x31) + // string "14889" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x39) if z.StreetAddress == nil { o = msgp.AppendNil(o) } else { @@ -5880,8 +5880,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000000) == 0 { // if not empty - // string "1486531" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x36, 0x35, 0x33, 0x31) + // string "14865" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x36, 0x35) if z.Surname == nil { o = msgp.AppendNil(o) } else { @@ -5889,8 +5889,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000000) == 0 { // if not empty - // string "1492331" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x32, 0x33, 0x33, 0x31) + // string "14923" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x33) if z.TelecommunicationsDeviceForDeafTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5898,8 +5898,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000000) == 0 { // if not empty - // string "1489231" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x39, 0x32, 0x33, 0x31) + // string "14892" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x32) if z.TelexNumber == nil { o = msgp.AppendNil(o) } else { @@ -5907,8 +5907,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000000) == 0 { // if not empty - // string "1487131" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x37, 0x31, 0x33, 0x31) + // string "14871" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x31) if z.Title == nil { o = msgp.AppendNil(o) } else { @@ -5916,8 +5916,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000000) == 0 { // if not empty - // string "1491364" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x31, 0x33, 0x36, 0x34) + // string "14913" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x33) if z.WeddingAnniversary == nil { o = msgp.AppendNil(o) } else { @@ -5945,7 +5945,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "2622173": + case "262217": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -5962,7 +5962,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26257331": + case "262573": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -5979,7 +5979,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26221311": + case "262213": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -5996,7 +5996,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26257464": + case "262574": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6013,7 +6013,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2622113": + case "262211": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6030,7 +6030,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26260072": + case "262600": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6047,7 +6047,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2625983": + case "262598": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6064,7 +6064,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26752631": + case "267526": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6081,7 +6081,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26228731": + case "262287": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6098,7 +6098,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26230431": + case "262304": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6115,7 +6115,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26230531": + case "262305": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6132,7 +6132,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26230631": + case "262306": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6149,7 +6149,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26217631": + case "262176": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6166,7 +6166,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2622843": + case "262284": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6183,7 +6183,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26230731": + case "262307": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6200,7 +6200,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26240231": + case "262402": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6217,7 +6217,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26240031": + case "262400": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6234,7 +6234,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26240331": + case "262403": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6251,7 +6251,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26240431": + case "262404": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6268,7 +6268,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26243431": + case "262434": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6285,7 +6285,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26243231": + case "262432": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6302,7 +6302,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26243531": + case "262435": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6319,7 +6319,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26243631": + case "262436": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6336,7 +6336,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26246631": + case "262466": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6353,7 +6353,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26246431": + case "262464": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6370,7 +6370,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26246731": + case "262467": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6387,7 +6387,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26246831": + case "262468": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6404,7 +6404,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26249831": + case "262498": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6421,7 +6421,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26249931": + case "262499": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6438,7 +6438,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26250031": + case "262500": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6455,7 +6455,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26253031": + case "262530": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6472,7 +6472,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26253131": + case "262531": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6489,7 +6489,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26253231": + case "262532": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6506,7 +6506,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26256231": + case "262562": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6523,7 +6523,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26256331": + case "262563": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6540,7 +6540,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26256431": + case "262564": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6557,7 +6557,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26214931": + case "262149": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6574,7 +6574,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2621503": + case "262150": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6591,7 +6591,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26256831": + case "262568": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6608,7 +6608,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26218111": + case "262181": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6625,7 +6625,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26218631": + case "262186": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6642,7 +6642,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26257031": + case "262570": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6659,7 +6659,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26221931": + case "262219": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6676,7 +6676,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26233831": + case "262338": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6693,7 +6693,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26259211": + case "262592": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6710,7 +6710,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26218831": + case "262188": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6727,7 +6727,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26257231": + case "262572": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6744,7 +6744,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2622103": + case "262210": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6761,7 +6761,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26257564": + case "262575": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6778,7 +6778,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26218731": + case "262187": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6795,7 +6795,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26227831": + case "262278": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6812,7 +6812,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26228131": + case "262281": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6829,7 +6829,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26257131": + case "262571": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6846,7 +6846,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26228031": + case "262280": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6863,7 +6863,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26228231": + case "262282": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6880,7 +6880,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26227931": + case "262279": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6897,7 +6897,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26227731": + case "262277": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6914,7 +6914,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26222231": + case "262222": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6931,7 +6931,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26222031": + case "262220": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6948,7 +6948,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26222131": + case "262221": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6999,7 +6999,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1491464": + case "14914": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7016,7 +7016,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1487531": + case "14875": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7033,7 +7033,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1488431": + case "14884": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7050,7 +7050,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1492931": + case "14929": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7067,7 +7067,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1485631": + case "14856": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7084,7 +7084,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1485031": + case "14850": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7101,7 +7101,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1487831": + case "14878": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7118,7 +7118,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1493531": + case "14935": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7135,7 +7135,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1487031": + case "14870": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7152,7 +7152,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1492131": + case "14921": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7169,7 +7169,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1488631": + case "14886": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7186,7 +7186,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1492231": + case "14922": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7203,7 +7203,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1487231": + case "14872": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7220,7 +7220,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1491731": + case "14917": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7237,7 +7237,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1492431": + case "14924": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7254,7 +7254,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "149252": + case "14925": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7271,7 +7271,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1485331": + case "14853": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7288,7 +7288,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1485431": + case "14854": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7305,7 +7305,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1485531": + case "14855": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7322,7 +7322,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1491531": + case "14915": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7339,7 +7339,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1489531": + case "14895": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7356,7 +7356,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1493731": + case "14937": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7373,7 +7373,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1493831": + case "14938": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7390,7 +7390,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1493931": + case "14939": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7407,7 +7407,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1494231": + case "14942": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7424,7 +7424,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1494031": + case "14940": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7441,7 +7441,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1494131": + case "14941": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7458,7 +7458,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1488531": + case "14885": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7475,7 +7475,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1485731": + case "14857": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7492,7 +7492,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3178011": + case "31780": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7509,7 +7509,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1492831": + case "14928": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7526,7 +7526,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1486931": + case "14869": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7543,7 +7543,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1489031": + case "14890": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7560,7 +7560,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1489131": + case "14891": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7577,7 +7577,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1488331": + case "14883": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7594,7 +7594,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1487431": + case "14874": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7611,7 +7611,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1491831": + case "14918": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7628,7 +7628,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1487731": + case "14877": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7645,7 +7645,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1491931": + case "14919": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7662,7 +7662,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1492031": + case "14920": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7679,7 +7679,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1488831": + case "14888": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7696,7 +7696,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1488931": + case "14889": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7713,7 +7713,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1486531": + case "14865": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7730,7 +7730,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1492331": + case "14923": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7747,7 +7747,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1489231": + case "14892": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7764,7 +7764,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1487131": + case "14871": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7781,7 +7781,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1491364": + case "14913": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7812,361 +7812,361 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Contact) Msgsize() (s int) { - s = 3 + 8 + s = 3 + 7 if z.AddressBookProviderArrayType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.AddressCountryCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressCountryCode) } - s += 9 + s += 7 if z.AutoLog == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.BirthdayLocal == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.ContactCharacterSet == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.ContactLinkGlobalAddressListLinkId == nil { s += msgp.NilSize } else { s += msgp.Uint64Size } - s += 8 + s += 7 if z.ContactLinkGlobalAddressListLinkState == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.ContactLinkName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ContactLinkName) } - s += 9 + s += 7 if z.ContactUserField1 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ContactUserField1) } - s += 9 + s += 7 if z.ContactUserField2 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ContactUserField2) } - s += 9 + s += 7 if z.ContactUserField3 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ContactUserField3) } - s += 9 + s += 7 if z.ContactUserField4 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ContactUserField4) } - s += 9 + s += 7 if z.Department == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Department) } - s += 8 + s += 7 if z.DistributionListChecksum == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.DistributionListName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.DistributionListName) } - s += 9 + s += 7 if z.Email1AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email1AddressType) } - s += 9 + s += 7 if z.Email1DisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email1DisplayName) } - s += 9 + s += 7 if z.Email1EmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email1EmailAddress) } - s += 9 + s += 7 if z.Email1OriginalDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email1OriginalDisplayName) } - s += 9 + s += 7 if z.Email2AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email2AddressType) } - s += 9 + s += 7 if z.Email2DisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email2DisplayName) } - s += 9 + s += 7 if z.Email2EmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email2EmailAddress) } - s += 9 + s += 7 if z.Email2OriginalDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email2OriginalDisplayName) } - s += 9 + s += 7 if z.Email3AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email3AddressType) } - s += 9 + s += 7 if z.Email3DisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email3DisplayName) } - s += 9 + s += 7 if z.Email3EmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email3EmailAddress) } - s += 9 + s += 7 if z.Email3OriginalDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email3OriginalDisplayName) } - s += 9 + s += 7 if z.Fax1AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax1AddressType) } - s += 9 + s += 7 if z.Fax1EmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax1EmailAddress) } - s += 9 + s += 7 if z.Fax1OriginalDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax1OriginalDisplayName) } - s += 9 + s += 7 if z.Fax2AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax2AddressType) } - s += 9 + s += 7 if z.Fax2EmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax2EmailAddress) } - s += 9 + s += 7 if z.Fax2OriginalDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax2OriginalDisplayName) } - s += 9 + s += 7 if z.Fax3AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax3AddressType) } - s += 9 + s += 7 if z.Fax3EmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax3EmailAddress) } - s += 9 + s += 7 if z.Fax3OriginalDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax3OriginalDisplayName) } - s += 9 + s += 7 if z.FileUnder == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.FileUnder) } - s += 8 + s += 7 if z.FileUnderId == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.FreeBusyLocation == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.FreeBusyLocation) } - s += 9 + s += 7 if z.HasPicture == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.HomeAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddress) } - s += 9 + s += 7 if z.HomeAddressCountryCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressCountryCode) } - s += 9 + s += 7 if z.Html == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Html) } - s += 9 + s += 7 if z.InstantMessagingAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.InstantMessagingAddress) } - s += 9 + s += 7 if z.IsContactLinked == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.OtherAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddress) } - s += 9 + s += 7 if z.OtherAddressCountryCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressCountryCode) } - s += 8 + s += 7 if z.PostalAddressId == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.WeddingAnniversaryLocal == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.WorkAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddress) } - s += 9 + s += 7 if z.WorkAddressCity == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressCity) } - s += 9 + s += 7 if z.WorkAddressCountry == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressCountry) } - s += 9 + s += 7 if z.WorkAddressCountryCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressCountryCode) } - s += 9 + s += 7 if z.WorkAddressPostalCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressPostalCode) } - s += 9 + s += 7 if z.WorkAddressPostOfficeBox == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressPostOfficeBox) } - s += 9 + s += 7 if z.WorkAddressState == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressState) } - s += 9 + s += 7 if z.WorkAddressStreet == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressStreet) } - s += 9 + s += 7 if z.YomiCompanyName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.YomiCompanyName) } - s += 9 + s += 7 if z.YomiFirstName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.YomiFirstName) } - s += 9 + s += 7 if z.YomiLastName == nil { s += msgp.NilSize } else { @@ -8184,283 +8184,283 @@ func (z *Contact) Msgsize() (s int) { } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.Birthday == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 6 if z.Business2TelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Business2TelephoneNumber) } - s += 8 + s += 6 if z.BusinessFaxNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.BusinessFaxNumber) } - s += 8 + s += 6 if z.BusinessHomePage == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.BusinessHomePage) } - s += 8 + s += 6 if z.BusinessTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.BusinessTelephoneNumber) } - s += 8 + s += 6 if z.CallbackTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CallbackTelephoneNumber) } - s += 8 + s += 6 if z.CarTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CarTelephoneNumber) } - s += 8 + s += 6 if z.CompanyMainTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CompanyMainTelephoneNumber) } - s += 8 + s += 6 if z.CompanyName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CompanyName) } - s += 8 + s += 6 if z.ComputerNetworkName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ComputerNetworkName) } - s += 8 + s += 6 if z.Country == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Country) } - s += 8 + s += 6 if z.CustomerId == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CustomerId) } - s += 8 + s += 6 if z.DepartmentName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.DepartmentName) } - s += 8 + s += 6 if z.DisplayNamePrefix == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.DisplayNamePrefix) } - s += 8 + s += 6 if z.FtpSite == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.FtpSite) } - s += 7 + s += 6 if z.Gender == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.Generation == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Generation) } - s += 8 + s += 6 if z.GivenName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.GivenName) } - s += 8 + s += 6 if z.GovernmentIdNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.GovernmentIdNumber) } - s += 8 + s += 6 if z.Hobbies == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Hobbies) } - s += 8 + s += 6 if z.Home2TelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Home2TelephoneNumber) } - s += 8 + s += 6 if z.HomeAddressCity == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressCity) } - s += 8 + s += 6 if z.HomeAddressCountry == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressCountry) } - s += 8 + s += 6 if z.HomeAddressPostalCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressPostalCode) } - s += 8 + s += 6 if z.HomeAddressPostOfficeBox == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressPostOfficeBox) } - s += 8 + s += 6 if z.HomeAddressStateOrProvince == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressStateOrProvince) } - s += 8 + s += 6 if z.HomeAddressStreet == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressStreet) } - s += 8 + s += 6 if z.HomeFaxNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeFaxNumber) } - s += 8 + s += 6 if z.HomeTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeTelephoneNumber) } - s += 8 + s += 6 if z.OscSyncEnabled == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.PersonalHomePage == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PersonalHomePage) } - s += 8 + s += 6 if z.PostalAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostalAddress) } - s += 8 + s += 6 if z.PostalCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostalCode) } - s += 8 + s += 6 if z.PostOfficeBox == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostOfficeBox) } - s += 8 + s += 6 if z.PrimaryFaxNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PrimaryFaxNumber) } - s += 8 + s += 6 if z.PrimaryTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PrimaryTelephoneNumber) } - s += 8 + s += 6 if z.Profession == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Profession) } - s += 8 + s += 6 if z.RadioTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.RadioTelephoneNumber) } - s += 8 + s += 6 if z.ReferredByName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReferredByName) } - s += 8 + s += 6 if z.SpouseName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SpouseName) } - s += 8 + s += 6 if z.StateOrProvince == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.StateOrProvince) } - s += 8 + s += 6 if z.StreetAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.StreetAddress) } - s += 8 + s += 6 if z.Surname == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Surname) } - s += 8 + s += 6 if z.TelecommunicationsDeviceForDeafTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TelecommunicationsDeviceForDeafTelephoneNumber) } - s += 8 + s += 6 if z.TelexNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TelexNumber) } - s += 8 + s += 6 if z.Title == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Title) } - s += 8 + s += 6 if z.WeddingAnniversary == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/extracted_entity.pb.go b/pkg/properties/extracted_entity.pb.go index 3625997..884ac46 100644 --- a/pkg/properties/extracted_entity.pb.go +++ b/pkg/properties/extracted_entity.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: extracted_entity.proto package properties diff --git a/pkg/properties/folder.pb.go b/pkg/properties/folder.pb.go new file mode 100644 index 0000000..e905880 --- /dev/null +++ b/pkg/properties/folder.pb.go @@ -0,0 +1,160 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:generate msgp -tests=false + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.24.2 +// source: folder.proto + +package properties + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Folder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *Folder) Reset() { + *x = Folder{} + if protoimpl.UnsafeEnabled { + mi := &file_folder_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Folder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Folder) ProtoMessage() {} + +func (x *Folder) ProtoReflect() protoreflect.Message { + mi := &file_folder_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Folder.ProtoReflect.Descriptor instead. +func (*Folder) Descriptor() ([]byte, []int) { + return file_folder_proto_rawDescGZIP(), []int{0} +} + +func (x *Folder) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +var File_folder_proto protoreflect.FileDescriptor + +var file_folder_proto_rawDesc = []byte{ + 0x0a, 0x0c, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x1c, + 0x0a, 0x06, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x28, 0x5a, 0x26, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x6f, 0x6f, 0x69, 0x6a, + 0x74, 0x65, 0x63, 0x68, 0x2f, 0x67, 0x6f, 0x2d, 0x70, 0x73, 0x74, 0x3b, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_folder_proto_rawDescOnce sync.Once + file_folder_proto_rawDescData = file_folder_proto_rawDesc +) + +func file_folder_proto_rawDescGZIP() []byte { + file_folder_proto_rawDescOnce.Do(func() { + file_folder_proto_rawDescData = protoimpl.X.CompressGZIP(file_folder_proto_rawDescData) + }) + return file_folder_proto_rawDescData +} + +var file_folder_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_folder_proto_goTypes = []interface{}{ + (*Folder)(nil), // 0: Folder +} +var file_folder_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_folder_proto_init() } +func file_folder_proto_init() { + if File_folder_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_folder_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Folder); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_folder_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_folder_proto_goTypes, + DependencyIndexes: file_folder_proto_depIdxs, + MessageInfos: file_folder_proto_msgTypes, + }.Build() + File_folder_proto = out.File + file_folder_proto_rawDesc = nil + file_folder_proto_goTypes = nil + file_folder_proto_depIdxs = nil +} diff --git a/pkg/properties/folder.pb_gen.go b/pkg/properties/folder.pb_gen.go new file mode 100644 index 0000000..376a9d6 --- /dev/null +++ b/pkg/properties/folder.pb_gen.go @@ -0,0 +1,110 @@ +package properties + +// Code generated by github.com/tinylib/msgp DO NOT EDIT. + +import ( + "github.com/tinylib/msgp/msgp" +) + +// DecodeMsg implements msgp.Decodable +func (z *Folder) DecodeMsg(dc *msgp.Reader) (err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, err = dc.ReadMapHeader() + if err != nil { + err = msgp.WrapError(err) + return + } + for zb0001 > 0 { + zb0001-- + field, err = dc.ReadMapKeyPtr() + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "Name": + z.Name, err = dc.ReadString() + if err != nil { + err = msgp.WrapError(err, "Name") + return + } + default: + err = dc.Skip() + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + return +} + +// EncodeMsg implements msgp.Encodable +func (z Folder) EncodeMsg(en *msgp.Writer) (err error) { + // map header, size 1 + // write "Name" + err = en.Append(0x81, 0xa4, 0x4e, 0x61, 0x6d, 0x65) + if err != nil { + return + } + err = en.WriteString(z.Name) + if err != nil { + err = msgp.WrapError(err, "Name") + return + } + return +} + +// MarshalMsg implements msgp.Marshaler +func (z Folder) MarshalMsg(b []byte) (o []byte, err error) { + o = msgp.Require(b, z.Msgsize()) + // map header, size 1 + // string "Name" + o = append(o, 0x81, 0xa4, 0x4e, 0x61, 0x6d, 0x65) + o = msgp.AppendString(o, z.Name) + return +} + +// UnmarshalMsg implements msgp.Unmarshaler +func (z *Folder) UnmarshalMsg(bts []byte) (o []byte, err error) { + var field []byte + _ = field + var zb0001 uint32 + zb0001, bts, err = msgp.ReadMapHeaderBytes(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + for zb0001 > 0 { + zb0001-- + field, bts, err = msgp.ReadMapKeyZC(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + switch msgp.UnsafeString(field) { + case "Name": + z.Name, bts, err = msgp.ReadStringBytes(bts) + if err != nil { + err = msgp.WrapError(err, "Name") + return + } + default: + bts, err = msgp.Skip(bts) + if err != nil { + err = msgp.WrapError(err) + return + } + } + } + o = bts + return +} + +// Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message +func (z Folder) Msgsize() (s int) { + s = 1 + 5 + msgp.StringPrefixSize + len(z.Name) + return +} diff --git a/pkg/properties/journal.pb.go b/pkg/properties/journal.pb.go index 7265554..d49ba10 100644 --- a/pkg/properties/journal.pb.go +++ b/pkg/properties/journal.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: journal.proto package properties @@ -44,25 +44,25 @@ type Journal struct { unknownFields protoimpl.UnknownFields // Indicates whether the document was sent by email or posted to a server folder during journaling. - LogDocumentPosted *bool `protobuf:"varint,1,opt,name=log_document_posted,json=logDocumentPosted,proto3,oneof" json:"log_document_posted,omitempty" msg:"26934511,omitempty"` + LogDocumentPosted *bool `protobuf:"varint,1,opt,name=log_document_posted,json=logDocumentPosted,proto3,oneof" json:"log_document_posted,omitempty" msg:"269345,omitempty" type:"11,omitempty"` // Indicates whether the document was printed during journaling. - LogDocumentPrinted *bool `protobuf:"varint,2,opt,name=log_document_printed,json=logDocumentPrinted,proto3,oneof" json:"log_document_printed,omitempty" msg:"26932611,omitempty"` + LogDocumentPrinted *bool `protobuf:"varint,2,opt,name=log_document_printed,json=logDocumentPrinted,proto3,oneof" json:"log_document_printed,omitempty" msg:"269326,omitempty" type:"11,omitempty"` // Indicates whether the document was sent to a routing recipient during journaling. - LogDocumentRouted *bool `protobuf:"varint,3,opt,name=log_document_routed,json=logDocumentRouted,proto3,oneof" json:"log_document_routed,omitempty" msg:"26934411,omitempty"` + LogDocumentRouted *bool `protobuf:"varint,3,opt,name=log_document_routed,json=logDocumentRouted,proto3,oneof" json:"log_document_routed,omitempty" msg:"269344,omitempty" type:"11,omitempty"` // Indicates whether the document was saved during journaling. - LogDocumentSaved *bool `protobuf:"varint,4,opt,name=log_document_saved,json=logDocumentSaved,proto3,oneof" json:"log_document_saved,omitempty" msg:"26932711,omitempty"` + LogDocumentSaved *bool `protobuf:"varint,4,opt,name=log_document_saved,json=logDocumentSaved,proto3,oneof" json:"log_document_saved,omitempty" msg:"269327,omitempty" type:"11,omitempty"` // Contains the duration, in minutes, of the activity. - LogDuration *int32 `protobuf:"varint,5,opt,name=log_duration,json=logDuration,proto3,oneof" json:"log_duration,omitempty" msg:"2693193,omitempty"` + LogDuration *int32 `protobuf:"varint,5,opt,name=log_duration,json=logDuration,proto3,oneof" json:"log_duration,omitempty" msg:"269319,omitempty" type:"3,omitempty"` // Contains the time, in UTC, at which the activity ended. - LogEnd *int64 `protobuf:"varint,6,opt,name=log_end,json=logEnd,proto3,oneof" json:"log_end,omitempty" msg:"26932064,omitempty"` + LogEnd *int64 `protobuf:"varint,6,opt,name=log_end,json=logEnd,proto3,oneof" json:"log_end,omitempty" msg:"269320,omitempty" type:"64,omitempty"` // Contains metadata about the Journal object. - LogFlags *int32 `protobuf:"varint,7,opt,name=log_flags,json=logFlags,proto3,oneof" json:"log_flags,omitempty" msg:"2693243,omitempty"` + LogFlags *int32 `protobuf:"varint,7,opt,name=log_flags,json=logFlags,proto3,oneof" json:"log_flags,omitempty" msg:"269324,omitempty" type:"3,omitempty"` // Contains the time, in UTC, at which the activity began. - LogStart *int64 `protobuf:"varint,8,opt,name=log_start,json=logStart,proto3,oneof" json:"log_start,omitempty" msg:"26931864,omitempty"` + LogStart *int64 `protobuf:"varint,8,opt,name=log_start,json=logStart,proto3,oneof" json:"log_start,omitempty" msg:"269318,omitempty" type:"64,omitempty"` // Briefly describes the journal activity that is being recorded. - LogType *string `protobuf:"bytes,9,opt,name=log_type,json=logType,proto3,oneof" json:"log_type,omitempty" msg:"26931231,omitempty"` + LogType *string `protobuf:"bytes,9,opt,name=log_type,json=logType,proto3,oneof" json:"log_type,omitempty" msg:"269312,omitempty" type:"31,omitempty"` // Contains an expanded description of the journal activity that is being recorded. - LogTypeDesc *string `protobuf:"bytes,10,opt,name=log_type_desc,json=logTypeDesc,proto3,oneof" json:"log_type_desc,omitempty" msg:"26934631,omitempty"` + LogTypeDesc *string `protobuf:"bytes,10,opt,name=log_type_desc,json=logTypeDesc,proto3,oneof" json:"log_type_desc,omitempty" msg:"269346,omitempty" type:"31,omitempty"` } func (x *Journal) Reset() { diff --git a/pkg/properties/journal.pb_gen.go b/pkg/properties/journal.pb_gen.go index 9586c92..a4d5440 100644 --- a/pkg/properties/journal.pb_gen.go +++ b/pkg/properties/journal.pb_gen.go @@ -24,7 +24,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "26934511": + case "269345": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26932611": + case "269326": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26934411": + case "269344": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26932711": + case "269327": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2693193": + case "269319": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26932064": + case "269320": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2693243": + case "269324": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26931864": + case "269318": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26931231": + case "269312": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26934631": + case "269346": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -269,8 +269,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // write "26934511" - err = en.Append(0xa8, 0x32, 0x36, 0x39, 0x33, 0x34, 0x35, 0x31, 0x31) + // write "269345" + err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x34, 0x35) if err != nil { return } @@ -288,8 +288,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // write "26932611" - err = en.Append(0xa8, 0x32, 0x36, 0x39, 0x33, 0x32, 0x36, 0x31, 0x31) + // write "269326" + err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x36) if err != nil { return } @@ -307,8 +307,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // write "26934411" - err = en.Append(0xa8, 0x32, 0x36, 0x39, 0x33, 0x34, 0x34, 0x31, 0x31) + // write "269344" + err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x34, 0x34) if err != nil { return } @@ -326,8 +326,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // write "26932711" - err = en.Append(0xa8, 0x32, 0x36, 0x39, 0x33, 0x32, 0x37, 0x31, 0x31) + // write "269327" + err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x37) if err != nil { return } @@ -345,8 +345,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "2693193" - err = en.Append(0xa7, 0x32, 0x36, 0x39, 0x33, 0x31, 0x39, 0x33) + // write "269319" + err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x31, 0x39) if err != nil { return } @@ -364,8 +364,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // write "26932064" - err = en.Append(0xa8, 0x32, 0x36, 0x39, 0x33, 0x32, 0x30, 0x36, 0x34) + // write "269320" + err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x30) if err != nil { return } @@ -383,8 +383,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // write "2693243" - err = en.Append(0xa7, 0x32, 0x36, 0x39, 0x33, 0x32, 0x34, 0x33) + // write "269324" + err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x34) if err != nil { return } @@ -402,8 +402,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // write "26931864" - err = en.Append(0xa8, 0x32, 0x36, 0x39, 0x33, 0x31, 0x38, 0x36, 0x34) + // write "269318" + err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x31, 0x38) if err != nil { return } @@ -421,8 +421,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // write "26931231" - err = en.Append(0xa8, 0x32, 0x36, 0x39, 0x33, 0x31, 0x32, 0x33, 0x31) + // write "269312" + err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x31, 0x32) if err != nil { return } @@ -440,8 +440,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // write "26934631" - err = en.Append(0xa8, 0x32, 0x36, 0x39, 0x33, 0x34, 0x36, 0x33, 0x31) + // write "269346" + err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x34, 0x36) if err != nil { return } @@ -513,8 +513,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // string "26934511" - o = append(o, 0xa8, 0x32, 0x36, 0x39, 0x33, 0x34, 0x35, 0x31, 0x31) + // string "269345" + o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x34, 0x35) if z.LogDocumentPosted == nil { o = msgp.AppendNil(o) } else { @@ -522,8 +522,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // string "26932611" - o = append(o, 0xa8, 0x32, 0x36, 0x39, 0x33, 0x32, 0x36, 0x31, 0x31) + // string "269326" + o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x36) if z.LogDocumentPrinted == nil { o = msgp.AppendNil(o) } else { @@ -531,8 +531,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // string "26934411" - o = append(o, 0xa8, 0x32, 0x36, 0x39, 0x33, 0x34, 0x34, 0x31, 0x31) + // string "269344" + o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x34, 0x34) if z.LogDocumentRouted == nil { o = msgp.AppendNil(o) } else { @@ -540,8 +540,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // string "26932711" - o = append(o, 0xa8, 0x32, 0x36, 0x39, 0x33, 0x32, 0x37, 0x31, 0x31) + // string "269327" + o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x37) if z.LogDocumentSaved == nil { o = msgp.AppendNil(o) } else { @@ -549,8 +549,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "2693193" - o = append(o, 0xa7, 0x32, 0x36, 0x39, 0x33, 0x31, 0x39, 0x33) + // string "269319" + o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x31, 0x39) if z.LogDuration == nil { o = msgp.AppendNil(o) } else { @@ -558,8 +558,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // string "26932064" - o = append(o, 0xa8, 0x32, 0x36, 0x39, 0x33, 0x32, 0x30, 0x36, 0x34) + // string "269320" + o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x30) if z.LogEnd == nil { o = msgp.AppendNil(o) } else { @@ -567,8 +567,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // string "2693243" - o = append(o, 0xa7, 0x32, 0x36, 0x39, 0x33, 0x32, 0x34, 0x33) + // string "269324" + o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x34) if z.LogFlags == nil { o = msgp.AppendNil(o) } else { @@ -576,8 +576,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // string "26931864" - o = append(o, 0xa8, 0x32, 0x36, 0x39, 0x33, 0x31, 0x38, 0x36, 0x34) + // string "269318" + o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x31, 0x38) if z.LogStart == nil { o = msgp.AppendNil(o) } else { @@ -585,8 +585,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // string "26931231" - o = append(o, 0xa8, 0x32, 0x36, 0x39, 0x33, 0x31, 0x32, 0x33, 0x31) + // string "269312" + o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x31, 0x32) if z.LogType == nil { o = msgp.AppendNil(o) } else { @@ -594,8 +594,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // string "26934631" - o = append(o, 0xa8, 0x32, 0x36, 0x39, 0x33, 0x34, 0x36, 0x33, 0x31) + // string "269346" + o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x34, 0x36) if z.LogTypeDesc == nil { o = msgp.AppendNil(o) } else { @@ -623,7 +623,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "26934511": + case "269345": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -640,7 +640,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26932611": + case "269326": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -657,7 +657,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26934411": + case "269344": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -674,7 +674,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26932711": + case "269327": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -691,7 +691,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2693193": + case "269319": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -708,7 +708,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26932064": + case "269320": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -725,7 +725,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2693243": + case "269324": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -742,7 +742,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26931864": + case "269318": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -759,7 +759,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26931231": + case "269312": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -776,7 +776,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26934631": + case "269346": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -807,61 +807,61 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Journal) Msgsize() (s int) { - s = 1 + 9 + s = 1 + 7 if z.LogDocumentPosted == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.LogDocumentPrinted == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.LogDocumentRouted == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.LogDocumentSaved == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 7 if z.LogDuration == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.LogEnd == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.LogFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.LogStart == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.LogType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.LogType) } - s += 9 + s += 7 if z.LogTypeDesc == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/message.pb.go b/pkg/properties/message.pb.go index ff1c0b2..e147953 100644 --- a/pkg/properties/message.pb.go +++ b/pkg/properties/message.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: message.proto package properties @@ -44,35 +44,35 @@ type Message struct { unknownFields protoimpl.UnknownFields // Specifies the options used in the automatic processing of email messages. - AutoProcessState *int32 `protobuf:"varint,1,opt,name=auto_process_state,json=autoProcessState,proto3,oneof" json:"auto_process_state,omitempty" msg:"2673063,omitempty"` + AutoProcessState *int32 `protobuf:"varint,1,opt,name=auto_process_state,json=autoProcessState,proto3,oneof" json:"auto_process_state,omitempty" msg:"267306,omitempty" type:"3,omitempty"` // Specifies billing information for the contact. - Billing *string `protobuf:"bytes,2,opt,name=billing,proto3,oneof" json:"billing,omitempty" msg:"26736531,omitempty"` + Billing *string `protobuf:"bytes,2,opt,name=billing,proto3,oneof" json:"billing,omitempty" msg:"267365,omitempty" type:"31,omitempty"` // Contains a list of the classification categories to which the associated Message object has been assigned. - Classification *string `protobuf:"bytes,3,opt,name=classification,proto3,oneof" json:"classification,omitempty" msg:"26762231,omitempty"` + Classification *string `protobuf:"bytes,3,opt,name=classification,proto3,oneof" json:"classification,omitempty" msg:"267622,omitempty" type:"31,omitempty"` // Contains a human-readable summary of each of the classification categories included in the PidLidClassification property (section 2.53). - ClassificationDescription *string `protobuf:"bytes,4,opt,name=classification_description,json=classificationDescription,proto3,oneof" json:"classification_description,omitempty" msg:"26762331,omitempty"` + ClassificationDescription *string `protobuf:"bytes,4,opt,name=classification_description,json=classificationDescription,proto3,oneof" json:"classification_description,omitempty" msg:"267623,omitempty" type:"31,omitempty"` // Contains the GUID that identifies the list of email classification categories used by a Message object. - ClassificationGuid *string `protobuf:"bytes,5,opt,name=classification_guid,json=classificationGuid,proto3,oneof" json:"classification_guid,omitempty" msg:"26762431,omitempty"` + ClassificationGuid *string `protobuf:"bytes,5,opt,name=classification_guid,json=classificationGuid,proto3,oneof" json:"classification_guid,omitempty" msg:"267624,omitempty" type:"31,omitempty"` // Indicates whether the message uses any classification categories. - ClassificationKeep *bool `protobuf:"varint,6,opt,name=classification_keep,json=classificationKeep,proto3,oneof" json:"classification_keep,omitempty" msg:"26762611,omitempty"` + ClassificationKeep *bool `protobuf:"varint,6,opt,name=classification_keep,json=classificationKeep,proto3,oneof" json:"classification_keep,omitempty" msg:"267626,omitempty" type:"11,omitempty"` // Indicates whether the contents of this message are regarded as classified information. - Classified *bool `protobuf:"varint,7,opt,name=classified,proto3,oneof" json:"classified,omitempty" msg:"26762111,omitempty"` + Classified *bool `protobuf:"varint,7,opt,name=classified,proto3,oneof" json:"classified,omitempty" msg:"267621,omitempty" type:"11,omitempty"` // Indicates the end time for the Message object. - CommonEnd *int64 `protobuf:"varint,8,opt,name=common_end,json=commonEnd,proto3,oneof" json:"common_end,omitempty" msg:"26730364,omitempty"` + CommonEnd *int64 `protobuf:"varint,8,opt,name=common_end,json=commonEnd,proto3,oneof" json:"common_end,omitempty" msg:"267303,omitempty" type:"64,omitempty"` // Indicates the start time for the Message object. - CommonStart *int64 `protobuf:"varint,9,opt,name=common_start,json=commonStart,proto3,oneof" json:"common_start,omitempty" msg:"26730264,omitempty"` + CommonStart *int64 `protobuf:"varint,9,opt,name=common_start,json=commonStart,proto3,oneof" json:"common_start,omitempty" msg:"267302,omitempty" type:"64,omitempty"` // Specifies the build number of the client application that sent the message. - CurrentVersion *int32 `protobuf:"varint,12,opt,name=current_version,json=currentVersion,proto3,oneof" json:"current_version,omitempty" msg:"2674263,omitempty"` + CurrentVersion *int32 `protobuf:"varint,12,opt,name=current_version,json=currentVersion,proto3,oneof" json:"current_version,omitempty" msg:"267426,omitempty" type:"3,omitempty"` // Specifies the name of the client application that sent the message. - CurrentVersionName *string `protobuf:"bytes,13,opt,name=current_version_name,json=currentVersionName,proto3,oneof" json:"current_version_name,omitempty" msg:"26742831,omitempty"` + CurrentVersionName *string `protobuf:"bytes,13,opt,name=current_version_name,json=currentVersionName,proto3,oneof" json:"current_version_name,omitempty" msg:"267428,omitempty" type:"31,omitempty"` // Specifies the user-visible email account name through which the email message is sent. - InternetAccountName *string `protobuf:"bytes,14,opt,name=internet_account_name,json=internetAccountName,proto3,oneof" json:"internet_account_name,omitempty" msg:"26752031,omitempty"` + InternetAccountName *string `protobuf:"bytes,14,opt,name=internet_account_name,json=internetAccountName,proto3,oneof" json:"internet_account_name,omitempty" msg:"267520,omitempty" type:"31,omitempty"` // Specifies the email account ID through which the email message is sent. - InternetAccountStamp *string `protobuf:"bytes,15,opt,name=internet_account_stamp,json=internetAccountStamp,proto3,oneof" json:"internet_account_stamp,omitempty" msg:"26752131,omitempty"` + InternetAccountStamp *string `protobuf:"bytes,15,opt,name=internet_account_stamp,json=internetAccountStamp,proto3,oneof" json:"internet_account_stamp,omitempty" msg:"267521,omitempty" type:"31,omitempty"` // Indicates whether the end user wishes for this Message object to be hidden from other users who have access to the Message object. - Private *bool `protobuf:"varint,19,opt,name=private,proto3,oneof" json:"private,omitempty" msg:"26727011,omitempty"` + Private *bool `protobuf:"varint,19,opt,name=private,proto3,oneof" json:"private,omitempty" msg:"267270,omitempty" type:"11,omitempty"` // Specifies the voting option that a respondent has selected. - VerbResponse *string `protobuf:"bytes,20,opt,name=verb_response,json=verbResponse,proto3,oneof" json:"verb_response,omitempty" msg:"26733231,omitempty"` + VerbResponse *string `protobuf:"bytes,20,opt,name=verb_response,json=verbResponse,proto3,oneof" json:"verb_response,omitempty" msg:"267332,omitempty" type:"31,omitempty"` // Contains the value of the MIME Accept-Language header. AcceptLanguage *string `protobuf:"bytes,21,opt,name=accept_language,json=acceptLanguage,proto3,oneof" json:"accept_language,omitempty"` // Specifies the value of the MIME Content-Base header, which defines the base URI for resolving relative URLs contained within the message body. @@ -94,226 +94,226 @@ type Message struct { // Indicates whether a message is likely to be phishing. PhishingStamp *int32 `protobuf:"varint,31,opt,name=phishing_stamp,json=phishingStamp,proto3,oneof" json:"phishing_stamp,omitempty"` // Contains the email address type of a Message object. - AddressType *string `protobuf:"bytes,33,opt,name=address_type,json=addressType,proto3,oneof" json:"address_type,omitempty" msg:"1229031,omitempty"` + AddressType *string `protobuf:"bytes,33,opt,name=address_type,json=addressType,proto3,oneof" json:"address_type,omitempty" msg:"12290,omitempty" type:"31,omitempty"` // Specifies whether the sender permits the message to be auto-forwarded. - AlternateRecipientAllowed *bool `protobuf:"varint,34,opt,name=alternate_recipient_allowed,json=alternateRecipientAllowed,proto3,oneof" json:"alternate_recipient_allowed,omitempty" msg:"211,omitempty"` + AlternateRecipientAllowed *bool `protobuf:"varint,34,opt,name=alternate_recipient_allowed,json=alternateRecipientAllowed,proto3,oneof" json:"alternate_recipient_allowed,omitempty" msg:"2,omitempty" type:"11,omitempty"` // Specifies the date, in UTC, after which a Message object is archived by the server. - ArchiveDate *int64 `protobuf:"varint,35,opt,name=archive_date,json=archiveDate,proto3,oneof" json:"archive_date,omitempty" msg:"1231964,omitempty"` + ArchiveDate *int64 `protobuf:"varint,35,opt,name=archive_date,json=archiveDate,proto3,oneof" json:"archive_date,omitempty" msg:"12319,omitempty" type:"64,omitempty"` // Specifies the number of days that a Message object can remain unarchived. - ArchivePeriod *int32 `protobuf:"varint,36,opt,name=archive_period,json=archivePeriod,proto3,oneof" json:"archive_period,omitempty" msg:"123183,omitempty"` + ArchivePeriod *int32 `protobuf:"varint,36,opt,name=archive_period,json=archivePeriod,proto3,oneof" json:"archive_period,omitempty" msg:"12318,omitempty" type:"3,omitempty"` // Contains the name of the mail user's administrative assistant. - Assistant *string `protobuf:"bytes,38,opt,name=assistant,proto3,oneof" json:"assistant,omitempty" msg:"1489631,omitempty"` + Assistant *string `protobuf:"bytes,38,opt,name=assistant,proto3,oneof" json:"assistant,omitempty" msg:"14896,omitempty" type:"31,omitempty"` // Contains the telephone number of the mail user's administrative assistant. - AssistantTelephoneNumber *string `protobuf:"bytes,39,opt,name=assistant_telephone_number,json=assistantTelephoneNumber,proto3,oneof" json:"assistant_telephone_number,omitempty" msg:"1489431,omitempty"` + AssistantTelephoneNumber *string `protobuf:"bytes,39,opt,name=assistant_telephone_number,json=assistantTelephoneNumber,proto3,oneof" json:"assistant_telephone_number,omitempty" msg:"14894,omitempty" type:"31,omitempty"` // Specifies whether a client or server application will forego sending automated replies in response to this message. - AutoResponseSuppress *int32 `protobuf:"varint,40,opt,name=auto_response_suppress,json=autoResponseSuppress,proto3,oneof" json:"auto_response_suppress,omitempty" msg:"163513,omitempty"` + AutoResponseSuppress *int32 `protobuf:"varint,40,opt,name=auto_response_suppress,json=autoResponseSuppress,proto3,oneof" json:"auto_response_suppress,omitempty" msg:"16351,omitempty" type:"3,omitempty"` // Indicates the user's preference for viewing external content (such as links to images on an HTTP server) in the message body. - BlockStatus *int32 `protobuf:"varint,41,opt,name=block_status,json=blockStatus,proto3,oneof" json:"block_status,omitempty" msg:"42463,omitempty"` + BlockStatus *int32 `protobuf:"varint,41,opt,name=block_status,json=blockStatus,proto3,oneof" json:"block_status,omitempty" msg:"4246,omitempty" type:"3,omitempty"` // Contains message body text in plain text format. - Body *string `protobuf:"bytes,42,opt,name=body,proto3,oneof" json:"body,omitempty" msg:"409631,omitempty"` + Body *string `protobuf:"bytes,42,opt,name=body,proto3,oneof" json:"body,omitempty" msg:"4096,omitempty" type:"31,omitempty"` // Contains a globally unique Uniform Resource Identifier (URI) that serves as a label for the current message body. - BodyContentLocation *string `protobuf:"bytes,43,opt,name=body_content_location,json=bodyContentLocation,proto3,oneof" json:"body_content_location,omitempty" msg:"411631,omitempty"` + BodyContentLocation *string `protobuf:"bytes,43,opt,name=body_content_location,json=bodyContentLocation,proto3,oneof" json:"body_content_location,omitempty" msg:"4116,omitempty" type:"31,omitempty"` // Contains the HTML body of the Message object. - BodyHtml *string `protobuf:"bytes,44,opt,name=body_html,json=bodyHtml,proto3,oneof" json:"body_html,omitempty" msg:"411531,omitempty"` + BodyHtml *string `protobuf:"bytes,44,opt,name=body_html,json=bodyHtml,proto3,oneof" json:"body_html,omitempty" msg:"4115,omitempty" type:"31,omitempty"` // Contains the current time, in UTC, when the email message is submitted. - ClientSubmitTime *int64 `protobuf:"varint,45,opt,name=client_submit_time,json=clientSubmitTime,proto3,oneof" json:"client_submit_time,omitempty" msg:"5764,omitempty"` + ClientSubmitTime *int64 `protobuf:"varint,45,opt,name=client_submit_time,json=clientSubmitTime,proto3,oneof" json:"client_submit_time,omitempty" msg:"57,omitempty" type:"64,omitempty"` // Indicates a confidence level that the message is spam. - ContentFilterSpamConfidenceLevel *int32 `protobuf:"varint,46,opt,name=content_filter_spam_confidence_level,json=contentFilterSpamConfidenceLevel,proto3,oneof" json:"content_filter_spam_confidence_level,omitempty" msg:"165023,omitempty"` + ContentFilterSpamConfidenceLevel *int32 `protobuf:"varint,46,opt,name=content_filter_spam_confidence_level,json=contentFilterSpamConfidenceLevel,proto3,oneof" json:"content_filter_spam_confidence_level,omitempty" msg:"16502,omitempty" type:"3,omitempty"` // Contains an unchanging copy of the original subject. - ConversationTopic *string `protobuf:"bytes,48,opt,name=conversation_topic,json=conversationTopic,proto3,oneof" json:"conversation_topic,omitempty" msg:"11231,omitempty"` + ConversationTopic *string `protobuf:"bytes,48,opt,name=conversation_topic,json=conversationTopic,proto3,oneof" json:"conversation_topic,omitempty" msg:"112,omitempty" type:"31,omitempty"` // Contains the time, in UTC, that the object was created. - CreationTime *int64 `protobuf:"varint,49,opt,name=creation_time,json=creationTime,proto3,oneof" json:"creation_time,omitempty" msg:"1229564,omitempty"` + CreationTime *int64 `protobuf:"varint,49,opt,name=creation_time,json=creationTime,proto3,oneof" json:"creation_time,omitempty" msg:"12295,omitempty" type:"64,omitempty"` // Contains the name of the creator of a Message object. - CreatorName *string `protobuf:"bytes,50,opt,name=creator_name,json=creatorName,proto3,oneof" json:"creator_name,omitempty" msg:"1637631,omitempty"` + CreatorName *string `protobuf:"bytes,50,opt,name=creator_name,json=creatorName,proto3,oneof" json:"creator_name,omitempty" msg:"16376,omitempty" type:"31,omitempty"` // Contains the delivery time for a delivery status notification, as specified [RFC3464], or a message disposition notification, as specified in [RFC3798]. - DeliverTime *int64 `protobuf:"varint,51,opt,name=deliver_time,json=deliverTime,proto3,oneof" json:"deliver_time,omitempty" msg:"1664,omitempty"` + DeliverTime *int64 `protobuf:"varint,51,opt,name=deliver_time,json=deliverTime,proto3,oneof" json:"deliver_time,omitempty" msg:"16,omitempty" type:"64,omitempty"` // Contains a list of blind carbon copy (Bcc) recipient display names. - DisplayBcc *string `protobuf:"bytes,52,opt,name=display_bcc,json=displayBcc,proto3,oneof" json:"display_bcc,omitempty" msg:"358631,omitempty"` + DisplayBcc *string `protobuf:"bytes,52,opt,name=display_bcc,json=displayBcc,proto3,oneof" json:"display_bcc,omitempty" msg:"3586,omitempty" type:"31,omitempty"` // Contains a list of carbon copy (Cc) recipient display names. - DisplayCc *string `protobuf:"bytes,53,opt,name=display_cc,json=displayCc,proto3,oneof" json:"display_cc,omitempty" msg:"358731,omitempty"` + DisplayCc *string `protobuf:"bytes,53,opt,name=display_cc,json=displayCc,proto3,oneof" json:"display_cc,omitempty" msg:"3587,omitempty" type:"31,omitempty"` // Contains a list of the primary recipient display names, separated by semicolons, when an email message has primary recipients . - DisplayTo *string `protobuf:"bytes,54,opt,name=display_to,json=displayTo,proto3,oneof" json:"display_to,omitempty" msg:"358831,omitempty"` + DisplayTo *string `protobuf:"bytes,54,opt,name=display_to,json=displayTo,proto3,oneof" json:"display_to,omitempty" msg:"3588,omitempty" type:"31,omitempty"` // Specifies which icon is to be used by a user interface when displaying a group of Message objects. - IconIndex *int32 `protobuf:"varint,56,opt,name=icon_index,json=iconIndex,proto3,oneof" json:"icon_index,omitempty" msg:"42243,omitempty"` + IconIndex *int32 `protobuf:"varint,56,opt,name=icon_index,json=iconIndex,proto3,oneof" json:"icon_index,omitempty" msg:"4224,omitempty" type:"3,omitempty"` // Indicates the level of importance assigned by the end user to the Message object. - Importance *int32 `protobuf:"varint,57,opt,name=importance,proto3,oneof" json:"importance,omitempty" msg:"233,omitempty"` + Importance *int32 `protobuf:"varint,57,opt,name=importance,proto3,oneof" json:"importance,omitempty" msg:"23,omitempty" type:"3,omitempty"` // Contains the initials for parts of the full name of the mail user. - Initials *string `protobuf:"bytes,58,opt,name=initials,proto3,oneof" json:"initials,omitempty" msg:"1485831,omitempty"` + Initials *string `protobuf:"bytes,58,opt,name=initials,proto3,oneof" json:"initials,omitempty" msg:"14858,omitempty" type:"31,omitempty"` // Contains the value of the original message's PidTagInternetMessageId property (section 2.748) value. - InReplyToId *string `protobuf:"bytes,59,opt,name=in_reply_to_id,json=inReplyToId,proto3,oneof" json:"in_reply_to_id,omitempty" msg:"416231,omitempty"` + InReplyToId *string `protobuf:"bytes,59,opt,name=in_reply_to_id,json=inReplyToId,proto3,oneof" json:"in_reply_to_id,omitempty" msg:"4162,omitempty" type:"31,omitempty"` // Indicates the encoding method and HTML inclusion for attachments. - InternetMailOverrideFormat *int32 `protobuf:"varint,60,opt,name=internet_mail_override_format,json=internetMailOverrideFormat,proto3,oneof" json:"internet_mail_override_format,omitempty" msg:"227863,omitempty"` + InternetMailOverrideFormat *int32 `protobuf:"varint,60,opt,name=internet_mail_override_format,json=internetMailOverrideFormat,proto3,oneof" json:"internet_mail_override_format,omitempty" msg:"22786,omitempty" type:"3,omitempty"` // Corresponds to the message-id field. - InternetMessageId *string `protobuf:"bytes,61,opt,name=internet_message_id,json=internetMessageId,proto3,oneof" json:"internet_message_id,omitempty" msg:"414931,omitempty"` + InternetMessageId *string `protobuf:"bytes,61,opt,name=internet_message_id,json=internetMessageId,proto3,oneof" json:"internet_message_id,omitempty" msg:"4149,omitempty" type:"31,omitempty"` // Contains a list of message IDs that specify the messages to which this reply is related. - InternetReferences *string `protobuf:"bytes,62,opt,name=internet_references,json=internetReferences,proto3,oneof" json:"internet_references,omitempty" msg:"415331,omitempty"` + InternetReferences *string `protobuf:"bytes,62,opt,name=internet_references,json=internetReferences,proto3,oneof" json:"internet_references,omitempty" msg:"4153,omitempty" type:"31,omitempty"` // Contains the Integrated Services Digital Network (ISDN) telephone number of the mail user. - IsdnNumber *string `protobuf:"bytes,63,opt,name=isdn_number,json=isdnNumber,proto3,oneof" json:"isdn_number,omitempty" msg:"1489331,omitempty"` + IsdnNumber *string `protobuf:"bytes,63,opt,name=isdn_number,json=isdnNumber,proto3,oneof" json:"isdn_number,omitempty" msg:"14893,omitempty" type:"31,omitempty"` // Contains a keyword that identifies the mail user to the mail user's system administrator. - Keyword *string `protobuf:"bytes,64,opt,name=keyword,proto3,oneof" json:"keyword,omitempty" msg:"1485931,omitempty"` + Keyword *string `protobuf:"bytes,64,opt,name=keyword,proto3,oneof" json:"keyword,omitempty" msg:"14859,omitempty" type:"31,omitempty"` // Contains a value that indicates the language in which the messaging user is writing messages. - Language *string `protobuf:"bytes,65,opt,name=language,proto3,oneof" json:"language,omitempty" msg:"1486031,omitempty"` + Language *string `protobuf:"bytes,65,opt,name=language,proto3,oneof" json:"language,omitempty" msg:"14860,omitempty" type:"31,omitempty"` // Contains the time, in UTC, of the last modification to the object. - LastModificationTime *int64 `protobuf:"varint,66,opt,name=last_modification_time,json=lastModificationTime,proto3,oneof" json:"last_modification_time,omitempty" msg:"1229664,omitempty"` + LastModificationTime *int64 `protobuf:"varint,66,opt,name=last_modification_time,json=lastModificationTime,proto3,oneof" json:"last_modification_time,omitempty" msg:"12296,omitempty" type:"64,omitempty"` // Contains the name of the mail user's locality, such as the town or city. - Locality *string `protobuf:"bytes,67,opt,name=locality,proto3,oneof" json:"locality,omitempty" msg:"1488731,omitempty"` + Locality *string `protobuf:"bytes,67,opt,name=locality,proto3,oneof" json:"locality,omitempty" msg:"14887,omitempty" type:"31,omitempty"` // Contains the location of the mail user. - Location *string `protobuf:"bytes,68,opt,name=location,proto3,oneof" json:"location,omitempty" msg:"1486131,omitempty"` + Location *string `protobuf:"bytes,68,opt,name=location,proto3,oneof" json:"location,omitempty" msg:"14861,omitempty" type:"31,omitempty"` // Contains the name of the mail user's manager. - ManagerName *string `protobuf:"bytes,69,opt,name=manager_name,json=managerName,proto3,oneof" json:"manager_name,omitempty" msg:"1492631,omitempty"` - MessageCcMe *bool `protobuf:"varint,70,opt,name=message_cc_me,json=messageCcMe,proto3,oneof" json:"message_cc_me,omitempty" msg:"8811,omitempty"` + ManagerName *string `protobuf:"bytes,69,opt,name=manager_name,json=managerName,proto3,oneof" json:"manager_name,omitempty" msg:"14926,omitempty" type:"31,omitempty"` + MessageCcMe *bool `protobuf:"varint,70,opt,name=message_cc_me,json=messageCcMe,proto3,oneof" json:"message_cc_me,omitempty" msg:"88,omitempty" type:"11,omitempty"` // Specifies the time (in UTC) when the server received the message. - MessageDeliveryTime *int64 `protobuf:"varint,71,opt,name=message_delivery_time,json=messageDeliveryTime,proto3,oneof" json:"message_delivery_time,omitempty" msg:"359064,omitempty"` + MessageDeliveryTime *int64 `protobuf:"varint,71,opt,name=message_delivery_time,json=messageDeliveryTime,proto3,oneof" json:"message_delivery_time,omitempty" msg:"3590,omitempty" type:"64,omitempty"` // Specifies the status of the Message object. - MessageFlags *int32 `protobuf:"varint,72,opt,name=message_flags,json=messageFlags,proto3,oneof" json:"message_flags,omitempty" msg:"35913,omitempty"` + MessageFlags *int32 `protobuf:"varint,72,opt,name=message_flags,json=messageFlags,proto3,oneof" json:"message_flags,omitempty" msg:"3591,omitempty" type:"3,omitempty"` // Contains the common name of a messaging user for use in a message header. - MessageHandlingSystemCommonName *string `protobuf:"bytes,73,opt,name=message_handling_system_common_name,json=messageHandlingSystemCommonName,proto3,oneof" json:"message_handling_system_common_name,omitempty" msg:"1486331,omitempty"` + MessageHandlingSystemCommonName *string `protobuf:"bytes,73,opt,name=message_handling_system_common_name,json=messageHandlingSystemCommonName,proto3,oneof" json:"message_handling_system_common_name,omitempty" msg:"14863,omitempty" type:"31,omitempty"` // Indicates that the receiving mailbox owner is a primary or a carbon copy (Cc) recipient of this email message. - MessageRecipientMe *bool `protobuf:"varint,74,opt,name=message_recipient_me,json=messageRecipientMe,proto3,oneof" json:"message_recipient_me,omitempty" msg:"8911,omitempty"` + MessageRecipientMe *bool `protobuf:"varint,74,opt,name=message_recipient_me,json=messageRecipientMe,proto3,oneof" json:"message_recipient_me,omitempty" msg:"89,omitempty" type:"11,omitempty"` // Contains the size, in bytes, consumed by the Message object on the server. - MessageSize *int32 `protobuf:"varint,76,opt,name=message_size,json=messageSize,proto3,oneof" json:"message_size,omitempty" msg:"35923,omitempty"` + MessageSize *int32 `protobuf:"varint,76,opt,name=message_size,json=messageSize,proto3,oneof" json:"message_size,omitempty" msg:"3592,omitempty" type:"3,omitempty"` // Specifies the 64-bit version of the PidTagMessageSize property (section 2.796). - MessageSizeExtended *float64 `protobuf:"fixed64,77,opt,name=message_size_extended,json=messageSizeExtended,proto3,oneof" json:"message_size_extended,omitempty" msg:"359220,omitempty"` + MessageSizeExtended *float64 `protobuf:"fixed64,77,opt,name=message_size_extended,json=messageSizeExtended,proto3,oneof" json:"message_size_extended,omitempty" msg:"3592,omitempty" type:"20,omitempty"` // Specifies the status of a message in a contents table. - MessageStatus *int32 `protobuf:"varint,78,opt,name=message_status,json=messageStatus,proto3,oneof" json:"message_status,omitempty" msg:"36073,omitempty"` + MessageStatus *int32 `protobuf:"varint,78,opt,name=message_status,json=messageStatus,proto3,oneof" json:"message_status,omitempty" msg:"3607,omitempty" type:"3,omitempty"` // Indicates that the receiving mailbox owner is one of the primary recipients of this email message. - MessageToMe *bool `protobuf:"varint,80,opt,name=message_to_me,json=messageToMe,proto3,oneof" json:"message_to_me,omitempty" msg:"8711,omitempty"` + MessageToMe *bool `protobuf:"varint,80,opt,name=message_to_me,json=messageToMe,proto3,oneof" json:"message_to_me,omitempty" msg:"87,omitempty" type:"11,omitempty"` // Specifies the middle name(s) of the contact. - MiddleName *string `protobuf:"bytes,81,opt,name=middle_name,json=middleName,proto3,oneof" json:"middle_name,omitempty" msg:"1491631,omitempty"` + MiddleName *string `protobuf:"bytes,81,opt,name=middle_name,json=middleName,proto3,oneof" json:"middle_name,omitempty" msg:"14916,omitempty" type:"31,omitempty"` // Contains the mail user's cellular telephone number. - MobileTelephoneNumber *string `protobuf:"bytes,82,opt,name=mobile_telephone_number,json=mobileTelephoneNumber,proto3,oneof" json:"mobile_telephone_number,omitempty" msg:"1487631,omitempty"` + MobileTelephoneNumber *string `protobuf:"bytes,82,opt,name=mobile_telephone_number,json=mobileTelephoneNumber,proto3,oneof" json:"mobile_telephone_number,omitempty" msg:"14876,omitempty" type:"31,omitempty"` // Contains the mail user's nickname. - Nickname *string `protobuf:"bytes,83,opt,name=nickname,proto3,oneof" json:"nickname,omitempty" msg:"1492731,omitempty"` + Nickname *string `protobuf:"bytes,83,opt,name=nickname,proto3,oneof" json:"nickname,omitempty" msg:"14927,omitempty" type:"31,omitempty"` // Contains the diagnostic code for a delivery status notification, as specified in [RFC3464]. - NonDeliveryReportDiagCode *int32 `protobuf:"varint,84,opt,name=non_delivery_report_diag_code,json=nonDeliveryReportDiagCode,proto3,oneof" json:"non_delivery_report_diag_code,omitempty" msg:"30773,omitempty"` + NonDeliveryReportDiagCode *int32 `protobuf:"varint,84,opt,name=non_delivery_report_diag_code,json=nonDeliveryReportDiagCode,proto3,oneof" json:"non_delivery_report_diag_code,omitempty" msg:"3077,omitempty" type:"3,omitempty"` // Contains an integer value that indicates a reason for delivery failure. - NonDeliveryReportReasonCode *int32 `protobuf:"varint,85,opt,name=non_delivery_report_reason_code,json=nonDeliveryReportReasonCode,proto3,oneof" json:"non_delivery_report_reason_code,omitempty" msg:"30763,omitempty"` + NonDeliveryReportReasonCode *int32 `protobuf:"varint,85,opt,name=non_delivery_report_reason_code,json=nonDeliveryReportReasonCode,proto3,oneof" json:"non_delivery_report_reason_code,omitempty" msg:"3076,omitempty" type:"3,omitempty"` // Specifies whether the client sends a non-read receipt. - NonDeliveryReportStatusCode *int32 `protobuf:"varint,86,opt,name=non_delivery_report_status_code,json=nonDeliveryReportStatusCode,proto3,oneof" json:"non_delivery_report_status_code,omitempty" msg:"30783,omitempty"` + NonDeliveryReportStatusCode *int32 `protobuf:"varint,86,opt,name=non_delivery_report_status_code,json=nonDeliveryReportStatusCode,proto3,oneof" json:"non_delivery_report_status_code,omitempty" msg:"3078,omitempty" type:"3,omitempty"` // Contains the normalized subject of the message. - NormalizedSubject *string `protobuf:"bytes,87,opt,name=normalized_subject,json=normalizedSubject,proto3,oneof" json:"normalized_subject,omitempty" msg:"361331,omitempty"` + NormalizedSubject *string `protobuf:"bytes,87,opt,name=normalized_subject,json=normalizedSubject,proto3,oneof" json:"normalized_subject,omitempty" msg:"3613,omitempty" type:"31,omitempty"` // Contains the mail user's office location. - OfficeLocation *string `protobuf:"bytes,88,opt,name=office_location,json=officeLocation,proto3,oneof" json:"office_location,omitempty" msg:"1487331,omitempty"` + OfficeLocation *string `protobuf:"bytes,88,opt,name=office_location,json=officeLocation,proto3,oneof" json:"office_location,omitempty" msg:"14873,omitempty" type:"31,omitempty"` // Contains an identifier for the mail user used within the mail user's organization. - OrganizationalIdNumber *string `protobuf:"bytes,89,opt,name=organizational_id_number,json=organizationalIdNumber,proto3,oneof" json:"organizational_id_number,omitempty" msg:"1486431,omitempty"` + OrganizationalIdNumber *string `protobuf:"bytes,89,opt,name=organizational_id_number,json=organizationalIdNumber,proto3,oneof" json:"organizational_id_number,omitempty" msg:"14864,omitempty" type:"31,omitempty"` // Contains the display name of the sender of the original message referenced by a report message. - OriginalAuthorName *string `protobuf:"bytes,91,opt,name=original_author_name,json=originalAuthorName,proto3,oneof" json:"original_author_name,omitempty" msg:"7731,omitempty"` + OriginalAuthorName *string `protobuf:"bytes,91,opt,name=original_author_name,json=originalAuthorName,proto3,oneof" json:"original_author_name,omitempty" msg:"77,omitempty" type:"31,omitempty"` // Contains the delivery time, in UTC, from the original message. - OriginalDeliveryTime *int64 `protobuf:"varint,92,opt,name=original_delivery_time,json=originalDeliveryTime,proto3,oneof" json:"original_delivery_time,omitempty" msg:"8564,omitempty"` + OriginalDeliveryTime *int64 `protobuf:"varint,92,opt,name=original_delivery_time,json=originalDeliveryTime,proto3,oneof" json:"original_delivery_time,omitempty" msg:"85,omitempty" type:"64,omitempty"` // Contains the value of the PidTagDisplayBcc property (section 2.674) from the original message. - OriginalDisplayBcc *string `protobuf:"bytes,93,opt,name=original_display_bcc,json=originalDisplayBcc,proto3,oneof" json:"original_display_bcc,omitempty" msg:"11431,omitempty"` + OriginalDisplayBcc *string `protobuf:"bytes,93,opt,name=original_display_bcc,json=originalDisplayBcc,proto3,oneof" json:"original_display_bcc,omitempty" msg:"114,omitempty" type:"31,omitempty"` // Contains the value of the PidTagDisplayCc property(section 2.675) from the original message. - OriginalDisplayCc *string `protobuf:"bytes,94,opt,name=original_display_cc,json=originalDisplayCc,proto3,oneof" json:"original_display_cc,omitempty" msg:"11531,omitempty"` + OriginalDisplayCc *string `protobuf:"bytes,94,opt,name=original_display_cc,json=originalDisplayCc,proto3,oneof" json:"original_display_cc,omitempty" msg:"115,omitempty" type:"31,omitempty"` // Contains the value of the PidTagDisplayTo property (section 2.678) from the original message. - OriginalDisplayTo *string `protobuf:"bytes,95,opt,name=original_display_to,json=originalDisplayTo,proto3,oneof" json:"original_display_to,omitempty" msg:"11631,omitempty"` + OriginalDisplayTo *string `protobuf:"bytes,95,opt,name=original_display_to,json=originalDisplayTo,proto3,oneof" json:"original_display_to,omitempty" msg:"116,omitempty" type:"31,omitempty"` // Designates the PidTagMessageClass property ([MS-OXCMSG] section 2.2.1.3) from the original message. - OriginalMessageClass *string `protobuf:"bytes,97,opt,name=original_message_class,json=originalMessageClass,proto3,oneof" json:"original_message_class,omitempty" msg:"7531,omitempty"` + OriginalMessageClass *string `protobuf:"bytes,97,opt,name=original_message_class,json=originalMessageClass,proto3,oneof" json:"original_message_class,omitempty" msg:"75,omitempty" type:"31,omitempty"` // Contains the value of the original message sender's PidTagSenderAddressType property (section 2.1000). - OriginalSenderAddressType *string `protobuf:"bytes,98,opt,name=original_sender_address_type,json=originalSenderAddressType,proto3,oneof" json:"original_sender_address_type,omitempty" msg:"10231,omitempty"` + OriginalSenderAddressType *string `protobuf:"bytes,98,opt,name=original_sender_address_type,json=originalSenderAddressType,proto3,oneof" json:"original_sender_address_type,omitempty" msg:"102,omitempty" type:"31,omitempty"` // Contains the value of the original message sender's PidTagSenderEmailAddress property (section 2.1001). - OriginalSenderEmailAddress *string `protobuf:"bytes,99,opt,name=original_sender_email_address,json=originalSenderEmailAddress,proto3,oneof" json:"original_sender_email_address,omitempty" msg:"10331,omitempty"` + OriginalSenderEmailAddress *string `protobuf:"bytes,99,opt,name=original_sender_email_address,json=originalSenderEmailAddress,proto3,oneof" json:"original_sender_email_address,omitempty" msg:"103,omitempty" type:"31,omitempty"` // Contains the value of the original message sender's PidTagSenderName property (section 2.1004), and is set on delivery report messages. - OriginalSenderName *string `protobuf:"bytes,101,opt,name=original_sender_name,json=originalSenderName,proto3,oneof" json:"original_sender_name,omitempty" msg:"9031,omitempty"` + OriginalSenderName *string `protobuf:"bytes,101,opt,name=original_sender_name,json=originalSenderName,proto3,oneof" json:"original_sender_name,omitempty" msg:"90,omitempty" type:"31,omitempty"` // Contains the sensitivity value of the original email message. - OriginalSensitivity *int32 `protobuf:"varint,103,opt,name=original_sensitivity,json=originalSensitivity,proto3,oneof" json:"original_sensitivity,omitempty" msg:"463,omitempty"` + OriginalSensitivity *int32 `protobuf:"varint,103,opt,name=original_sensitivity,json=originalSensitivity,proto3,oneof" json:"original_sensitivity,omitempty" msg:"46,omitempty" type:"3,omitempty"` // Contains the address type of the end user who is represented by the original email message sender. - OriginalSentRepresentingAddressType *string `protobuf:"bytes,104,opt,name=original_sent_representing_address_type,json=originalSentRepresentingAddressType,proto3,oneof" json:"original_sent_representing_address_type,omitempty" msg:"10431,omitempty"` + OriginalSentRepresentingAddressType *string `protobuf:"bytes,104,opt,name=original_sent_representing_address_type,json=originalSentRepresentingAddressType,proto3,oneof" json:"original_sent_representing_address_type,omitempty" msg:"104,omitempty" type:"31,omitempty"` // Contains the email address of the end user who is represented by the original email message sender. - OriginalSentRepresentingEmailAddress *string `protobuf:"bytes,105,opt,name=original_sent_representing_email_address,json=originalSentRepresentingEmailAddress,proto3,oneof" json:"original_sent_representing_email_address,omitempty" msg:"10531,omitempty"` + OriginalSentRepresentingEmailAddress *string `protobuf:"bytes,105,opt,name=original_sent_representing_email_address,json=originalSentRepresentingEmailAddress,proto3,oneof" json:"original_sent_representing_email_address,omitempty" msg:"105,omitempty" type:"31,omitempty"` // Contains the display name of the end user who is represented by the original email message sender. - OriginalSentRepresentingName *string `protobuf:"bytes,107,opt,name=original_sent_representing_name,json=originalSentRepresentingName,proto3,oneof" json:"original_sent_representing_name,omitempty" msg:"9331,omitempty"` + OriginalSentRepresentingName *string `protobuf:"bytes,107,opt,name=original_sent_representing_name,json=originalSentRepresentingName,proto3,oneof" json:"original_sent_representing_name,omitempty" msg:"93,omitempty" type:"31,omitempty"` // Specifies the subject of the original message. - OriginalSubject *string `protobuf:"bytes,109,opt,name=original_subject,json=originalSubject,proto3,oneof" json:"original_subject,omitempty" msg:"7331,omitempty"` + OriginalSubject *string `protobuf:"bytes,109,opt,name=original_subject,json=originalSubject,proto3,oneof" json:"original_subject,omitempty" msg:"73,omitempty" type:"31,omitempty"` // Specifies the original email message's submission date and time, in UTC. - OriginalSubmitTime *int64 `protobuf:"varint,110,opt,name=original_submit_time,json=originalSubmitTime,proto3,oneof" json:"original_submit_time,omitempty" msg:"7864,omitempty"` + OriginalSubmitTime *int64 `protobuf:"varint,110,opt,name=original_submit_time,json=originalSubmitTime,proto3,oneof" json:"original_submit_time,omitempty" msg:"78,omitempty" type:"64,omitempty"` // Indicates whether an email sender requests an email delivery receipt from the messaging system. - OriginatorDeliveryReportRequested *bool `protobuf:"varint,111,opt,name=originator_delivery_report_requested,json=originatorDeliveryReportRequested,proto3,oneof" json:"originator_delivery_report_requested,omitempty" msg:"3511,omitempty"` + OriginatorDeliveryReportRequested *bool `protobuf:"varint,111,opt,name=originator_delivery_report_requested,json=originatorDeliveryReportRequested,proto3,oneof" json:"originator_delivery_report_requested,omitempty" msg:"35,omitempty" type:"11,omitempty"` // Specifies whether an email sender requests suppression of nondelivery receipts. - OriginatorNonDeliveryReportRequested *bool `protobuf:"varint,112,opt,name=originator_non_delivery_report_requested,json=originatorNonDeliveryReportRequested,proto3,oneof" json:"originator_non_delivery_report_requested,omitempty" msg:"308011,omitempty"` + OriginatorNonDeliveryReportRequested *bool `protobuf:"varint,112,opt,name=originator_non_delivery_report_requested,json=originatorNonDeliveryReportRequested,proto3,oneof" json:"originator_non_delivery_report_requested,omitempty" msg:"3080,omitempty" type:"11,omitempty"` // Contains the name of the mail user's other locality, such as the town or city. - OtherAddressCity *string `protobuf:"bytes,113,opt,name=other_address_city,json=otherAddressCity,proto3,oneof" json:"other_address_city,omitempty" msg:"1494331,omitempty"` + OtherAddressCity *string `protobuf:"bytes,113,opt,name=other_address_city,json=otherAddressCity,proto3,oneof" json:"other_address_city,omitempty" msg:"14943,omitempty" type:"31,omitempty"` // Contains the name of the mail user's other country/region. - OtherAddressCountry *string `protobuf:"bytes,114,opt,name=other_address_country,json=otherAddressCountry,proto3,oneof" json:"other_address_country,omitempty" msg:"1494431,omitempty"` + OtherAddressCountry *string `protobuf:"bytes,114,opt,name=other_address_country,json=otherAddressCountry,proto3,oneof" json:"other_address_country,omitempty" msg:"14944,omitempty" type:"31,omitempty"` // Contains the postal code for the mail user's other postal address. - OtherAddressPostalCode *string `protobuf:"bytes,115,opt,name=other_address_postal_code,json=otherAddressPostalCode,proto3,oneof" json:"other_address_postal_code,omitempty" msg:"1494531,omitempty"` + OtherAddressPostalCode *string `protobuf:"bytes,115,opt,name=other_address_postal_code,json=otherAddressPostalCode,proto3,oneof" json:"other_address_postal_code,omitempty" msg:"14945,omitempty" type:"31,omitempty"` // Contains the number or identifier of the mail user's other post office box. - OtherAddressPostOfficeBox *string `protobuf:"bytes,116,opt,name=other_address_post_office_box,json=otherAddressPostOfficeBox,proto3,oneof" json:"other_address_post_office_box,omitempty" msg:"1494831,omitempty"` + OtherAddressPostOfficeBox *string `protobuf:"bytes,116,opt,name=other_address_post_office_box,json=otherAddressPostOfficeBox,proto3,oneof" json:"other_address_post_office_box,omitempty" msg:"14948,omitempty" type:"31,omitempty"` // Contains the name of the mail user's other state or province. - OtherAddressStateOrProvince *string `protobuf:"bytes,117,opt,name=other_address_state_or_province,json=otherAddressStateOrProvince,proto3,oneof" json:"other_address_state_or_province,omitempty" msg:"1494631,omitempty"` + OtherAddressStateOrProvince *string `protobuf:"bytes,117,opt,name=other_address_state_or_province,json=otherAddressStateOrProvince,proto3,oneof" json:"other_address_state_or_province,omitempty" msg:"14946,omitempty" type:"31,omitempty"` // Contains the mail user's other street address. - OtherAddressStreet *string `protobuf:"bytes,118,opt,name=other_address_street,json=otherAddressStreet,proto3,oneof" json:"other_address_street,omitempty" msg:"1494731,omitempty"` + OtherAddressStreet *string `protobuf:"bytes,118,opt,name=other_address_street,json=otherAddressStreet,proto3,oneof" json:"other_address_street,omitempty" msg:"14947,omitempty" type:"31,omitempty"` // Contains an alternate telephone number for the mail user. - OtherTelephoneNumber *string `protobuf:"bytes,119,opt,name=other_telephone_number,json=otherTelephoneNumber,proto3,oneof" json:"other_telephone_number,omitempty" msg:"1487931,omitempty"` + OtherTelephoneNumber *string `protobuf:"bytes,119,opt,name=other_telephone_number,json=otherTelephoneNumber,proto3,oneof" json:"other_telephone_number,omitempty" msg:"14879,omitempty" type:"31,omitempty"` // Contains the mail user's pager telephone number. - PagerTelephoneNumber *string `protobuf:"bytes,120,opt,name=pager_telephone_number,json=pagerTelephoneNumber,proto3,oneof" json:"pager_telephone_number,omitempty" msg:"1488131,omitempty"` + PagerTelephoneNumber *string `protobuf:"bytes,120,opt,name=pager_telephone_number,json=pagerTelephoneNumber,proto3,oneof" json:"pager_telephone_number,omitempty" msg:"14881,omitempty" type:"31,omitempty"` // Indicates the client's request for the priority with which the message is to be sent by the messaging system. - Priority *int32 `protobuf:"varint,122,opt,name=priority,proto3,oneof" json:"priority,omitempty" msg:"383,omitempty"` + Priority *int32 `protobuf:"varint,122,opt,name=priority,proto3,oneof" json:"priority,omitempty" msg:"38,omitempty" type:"3,omitempty"` // Specifies whether the email sender requests a read receipt from all recipients when this email message is read or opened. - ReadReceiptRequested *bool `protobuf:"varint,123,opt,name=read_receipt_requested,json=readReceiptRequested,proto3,oneof" json:"read_receipt_requested,omitempty" msg:"4111,omitempty"` + ReadReceiptRequested *bool `protobuf:"varint,123,opt,name=read_receipt_requested,json=readReceiptRequested,proto3,oneof" json:"read_receipt_requested,omitempty" msg:"41,omitempty" type:"11,omitempty"` // Contains the sent time for a message disposition notification, as specified in [RFC3798]. - ReceiptTime *int64 `protobuf:"varint,124,opt,name=receipt_time,json=receiptTime,proto3,oneof" json:"receipt_time,omitempty" msg:"4264,omitempty"` + ReceiptTime *int64 `protobuf:"varint,124,opt,name=receipt_time,json=receiptTime,proto3,oneof" json:"receipt_time,omitempty" msg:"42,omitempty" type:"64,omitempty"` // Contains the email message receiver's email address. - ReceivedByEmailAddress *string `protobuf:"bytes,125,opt,name=received_by_email_address,json=receivedByEmailAddress,proto3,oneof" json:"received_by_email_address,omitempty" msg:"11831,omitempty"` + ReceivedByEmailAddress *string `protobuf:"bytes,125,opt,name=received_by_email_address,json=receivedByEmailAddress,proto3,oneof" json:"received_by_email_address,omitempty" msg:"118,omitempty" type:"31,omitempty"` // Contains the email message receiver's display name. - ReceivedByName *string `protobuf:"bytes,127,opt,name=received_by_name,json=receivedByName,proto3,oneof" json:"received_by_name,omitempty" msg:"6431,omitempty"` + ReceivedByName *string `protobuf:"bytes,127,opt,name=received_by_name,json=receivedByName,proto3,oneof" json:"received_by_name,omitempty" msg:"64,omitempty" type:"31,omitempty"` // Contains the email address type for the end user represented by the receiving mailbox owner. - ReceivedRepresentingAddressType *string `protobuf:"bytes,129,opt,name=received_representing_address_type,json=receivedRepresentingAddressType,proto3,oneof" json:"received_representing_address_type,omitempty" msg:"11931,omitempty"` + ReceivedRepresentingAddressType *string `protobuf:"bytes,129,opt,name=received_representing_address_type,json=receivedRepresentingAddressType,proto3,oneof" json:"received_representing_address_type,omitempty" msg:"119,omitempty" type:"31,omitempty"` // Contains the email address for the end user represented by the receiving mailbox owner. - ReceivedRepresentingEmailAddress *string `protobuf:"bytes,130,opt,name=received_representing_email_address,json=receivedRepresentingEmailAddress,proto3,oneof" json:"received_representing_email_address,omitempty" msg:"12031,omitempty"` + ReceivedRepresentingEmailAddress *string `protobuf:"bytes,130,opt,name=received_representing_email_address,json=receivedRepresentingEmailAddress,proto3,oneof" json:"received_representing_email_address,omitempty" msg:"120,omitempty" type:"31,omitempty"` // Contains the display name for the end user represented by the receiving mailbox owner. - ReceivedRepresentingName *string `protobuf:"bytes,132,opt,name=received_representing_name,json=receivedRepresentingName,proto3,oneof" json:"received_representing_name,omitempty" msg:"6831,omitempty"` + ReceivedRepresentingName *string `protobuf:"bytes,132,opt,name=received_representing_name,json=receivedRepresentingName,proto3,oneof" json:"received_representing_name,omitempty" msg:"68,omitempty" type:"31,omitempty"` // Represents the recipient type of a recipient on the message. - RecipientType *int32 `protobuf:"varint,134,opt,name=recipient_type,json=recipientType,proto3,oneof" json:"recipient_type,omitempty" msg:"30933,omitempty"` + RecipientType *int32 `protobuf:"varint,134,opt,name=recipient_type,json=recipientType,proto3,oneof" json:"recipient_type,omitempty" msg:"3093,omitempty" type:"3,omitempty"` // Contains the value of the Remote-MTA field for a delivery status notification, as specified in [RFC3464]. - RemoteMessageTransferAgent *string `protobuf:"bytes,135,opt,name=remote_message_transfer_agent,json=remoteMessageTransferAgent,proto3,oneof" json:"remote_message_transfer_agent,omitempty" msg:"310531,omitempty"` + RemoteMessageTransferAgent *string `protobuf:"bytes,135,opt,name=remote_message_transfer_agent,json=remoteMessageTransferAgent,proto3,oneof" json:"remote_message_transfer_agent,omitempty" msg:"3105,omitempty" type:"31,omitempty"` // Indicates whether a reply is requested to a Message object. - ReplyRequested *bool `protobuf:"varint,136,opt,name=reply_requested,json=replyRequested,proto3,oneof" json:"reply_requested,omitempty" msg:"309511,omitempty"` + ReplyRequested *bool `protobuf:"varint,136,opt,name=reply_requested,json=replyRequested,proto3,oneof" json:"reply_requested,omitempty" msg:"3095,omitempty" type:"11,omitempty"` // Contains a string indicating whether the original message was displayed to the user or deleted (report messages only). - ReportDisposition *string `protobuf:"bytes,137,opt,name=report_disposition,json=reportDisposition,proto3,oneof" json:"report_disposition,omitempty" msg:"12831,omitempty"` + ReportDisposition *string `protobuf:"bytes,137,opt,name=report_disposition,json=reportDisposition,proto3,oneof" json:"report_disposition,omitempty" msg:"128,omitempty" type:"31,omitempty"` // Contains a description of the action that a client has performed on behalf of a user (report messages only). - ReportDispositionMode *string `protobuf:"bytes,138,opt,name=report_disposition_mode,json=reportDispositionMode,proto3,oneof" json:"report_disposition_mode,omitempty" msg:"12931,omitempty"` + ReportDispositionMode *string `protobuf:"bytes,138,opt,name=report_disposition_mode,json=reportDispositionMode,proto3,oneof" json:"report_disposition_mode,omitempty" msg:"129,omitempty" type:"31,omitempty"` // Contains the value of the Reporting-MTA field for a delivery status notification, as specified in [RFC3464]. - ReportingMessageTransferAgent *string `protobuf:"bytes,139,opt,name=reporting_message_transfer_agent,json=reportingMessageTransferAgent,proto3,oneof" json:"reporting_message_transfer_agent,omitempty" msg:"2665631,omitempty"` + ReportingMessageTransferAgent *string `protobuf:"bytes,139,opt,name=reporting_message_transfer_agent,json=reportingMessageTransferAgent,proto3,oneof" json:"reporting_message_transfer_agent,omitempty" msg:"26656,omitempty" type:"31,omitempty"` // Specifies the date, in UTC, after which a Message object is expired by the server. - RetentionDate *int64 `protobuf:"varint,140,opt,name=retention_date,json=retentionDate,proto3,oneof" json:"retention_date,omitempty" msg:"1231664,omitempty"` + RetentionDate *int64 `protobuf:"varint,140,opt,name=retention_date,json=retentionDate,proto3,oneof" json:"retention_date,omitempty" msg:"12316,omitempty" type:"64,omitempty"` // Contains flags that specify the status or nature of an item's retention tag or archive tag. - RetentionFlags *int32 `protobuf:"varint,141,opt,name=retention_flags,json=retentionFlags,proto3,oneof" json:"retention_flags,omitempty" msg:"123173,omitempty"` + RetentionFlags *int32 `protobuf:"varint,141,opt,name=retention_flags,json=retentionFlags,proto3,oneof" json:"retention_flags,omitempty" msg:"12317,omitempty" type:"3,omitempty"` // Specifies the number of days that a Message object can remain unarchived. - RetentionPeriod *int32 `protobuf:"varint,142,opt,name=retention_period,json=retentionPeriod,proto3,oneof" json:"retention_period,omitempty" msg:"123143,omitempty"` + RetentionPeriod *int32 `protobuf:"varint,142,opt,name=retention_period,json=retentionPeriod,proto3,oneof" json:"retention_period,omitempty" msg:"12314,omitempty" type:"3,omitempty"` // Indicates whether the PidTagBody property (section 2.618) and the PidTagRtfCompressed property (section 2.941) contain the same text (ignoring formatting). - RtfInSync *bool `protobuf:"varint,144,opt,name=rtf_in_sync,json=rtfInSync,proto3,oneof" json:"rtf_in_sync,omitempty" msg:"361511,omitempty"` + RtfInSync *bool `protobuf:"varint,144,opt,name=rtf_in_sync,json=rtfInSync,proto3,oneof" json:"rtf_in_sync,omitempty" msg:"3615,omitempty" type:"11,omitempty"` // Contains the email address type of the sending mailbox owner. - SenderAddressType *string `protobuf:"bytes,145,opt,name=sender_address_type,json=senderAddressType,proto3,oneof" json:"sender_address_type,omitempty" msg:"310231,omitempty"` + SenderAddressType *string `protobuf:"bytes,145,opt,name=sender_address_type,json=senderAddressType,proto3,oneof" json:"sender_address_type,omitempty" msg:"3102,omitempty" type:"31,omitempty"` // Contains the email address of the sending mailbox owner. - SenderEmailAddress *string `protobuf:"bytes,146,opt,name=sender_email_address,json=senderEmailAddress,proto3,oneof" json:"sender_email_address,omitempty" msg:"310331,omitempty"` + SenderEmailAddress *string `protobuf:"bytes,146,opt,name=sender_email_address,json=senderEmailAddress,proto3,oneof" json:"sender_email_address,omitempty" msg:"3103,omitempty" type:"31,omitempty"` // Reports the results of a Sender-ID check. - SenderIdStatus *int32 `protobuf:"varint,148,opt,name=sender_id_status,json=senderIdStatus,proto3,oneof" json:"sender_id_status,omitempty" msg:"165053,omitempty"` + SenderIdStatus *int32 `protobuf:"varint,148,opt,name=sender_id_status,json=senderIdStatus,proto3,oneof" json:"sender_id_status,omitempty" msg:"16505,omitempty" type:"3,omitempty"` // Contains the display name of the sending mailbox owner. - SenderName *string `protobuf:"bytes,149,opt,name=sender_name,json=senderName,proto3,oneof" json:"sender_name,omitempty" msg:"309831,omitempty"` + SenderName *string `protobuf:"bytes,149,opt,name=sender_name,json=senderName,proto3,oneof" json:"sender_name,omitempty" msg:"3098,omitempty" type:"31,omitempty"` // Contains a bitmask of message encoding preferences for email sent to an email-enabled entity that is represented by this Address Book object. - SendInternetEncoding *int32 `protobuf:"varint,151,opt,name=send_internet_encoding,json=sendInternetEncoding,proto3,oneof" json:"send_internet_encoding,omitempty" msg:"149613,omitempty"` + SendInternetEncoding *int32 `protobuf:"varint,151,opt,name=send_internet_encoding,json=sendInternetEncoding,proto3,oneof" json:"send_internet_encoding,omitempty" msg:"14961,omitempty" type:"3,omitempty"` // Indicates whether the email-enabled entity represented by the Address Book object can receive all message content, including Rich Text Format (RTF) and other embedded objects. - SendRichInfo *bool `protobuf:"varint,152,opt,name=send_rich_info,json=sendRichInfo,proto3,oneof" json:"send_rich_info,omitempty" msg:"1491211,omitempty"` + SendRichInfo *bool `protobuf:"varint,152,opt,name=send_rich_info,json=sendRichInfo,proto3,oneof" json:"send_rich_info,omitempty" msg:"14912,omitempty" type:"11,omitempty"` // Indicates the sender's assessment of the sensitivity of the Message object. - Sensitivity *int32 `protobuf:"varint,153,opt,name=sensitivity,proto3,oneof" json:"sensitivity,omitempty" msg:"543,omitempty"` + Sensitivity *int32 `protobuf:"varint,153,opt,name=sensitivity,proto3,oneof" json:"sensitivity,omitempty" msg:"54,omitempty" type:"3,omitempty"` // Contains an email address type. - SentRepresentingAddressType *string `protobuf:"bytes,154,opt,name=sent_representing_address_type,json=sentRepresentingAddressType,proto3,oneof" json:"sent_representing_address_type,omitempty" msg:"10031,omitempty"` + SentRepresentingAddressType *string `protobuf:"bytes,154,opt,name=sent_representing_address_type,json=sentRepresentingAddressType,proto3,oneof" json:"sent_representing_address_type,omitempty" msg:"100,omitempty" type:"31,omitempty"` // Contains an email address for the end user who is represented by the sending mailbox owner. - SentRepresentingEmailAddress *string `protobuf:"bytes,155,opt,name=sent_representing_email_address,json=sentRepresentingEmailAddress,proto3,oneof" json:"sent_representing_email_address,omitempty" msg:"10131,omitempty"` + SentRepresentingEmailAddress *string `protobuf:"bytes,155,opt,name=sent_representing_email_address,json=sentRepresentingEmailAddress,proto3,oneof" json:"sent_representing_email_address,omitempty" msg:"101,omitempty" type:"31,omitempty"` // Contains the display name for the end user who is represented by the sending mailbox owner. - SentRepresentingName *string `protobuf:"bytes,157,opt,name=sent_representing_name,json=sentRepresentingName,proto3,oneof" json:"sent_representing_name,omitempty" msg:"6631,omitempty"` + SentRepresentingName *string `protobuf:"bytes,157,opt,name=sent_representing_name,json=sentRepresentingName,proto3,oneof" json:"sent_representing_name,omitempty" msg:"66,omitempty" type:"31,omitempty"` // Contains the SMTP address of the Message object. - SmtpAddress *string `protobuf:"bytes,159,opt,name=smtp_address,json=smtpAddress,proto3,oneof" json:"smtp_address,omitempty" msg:"1484631,omitempty"` + SmtpAddress *string `protobuf:"bytes,159,opt,name=smtp_address,json=smtpAddress,proto3,oneof" json:"smtp_address,omitempty" msg:"14846,omitempty" type:"31,omitempty"` // Contains the subject of the email message. - Subject *string `protobuf:"bytes,161,opt,name=subject,proto3,oneof" json:"subject,omitempty" msg:"5531,omitempty"` + Subject *string `protobuf:"bytes,161,opt,name=subject,proto3,oneof" json:"subject,omitempty" msg:"55,omitempty" type:"31,omitempty"` // Contains the prefix for the subject of the message. - SubjectPrefix *string `protobuf:"bytes,162,opt,name=subject_prefix,json=subjectPrefix,proto3,oneof" json:"subject_prefix,omitempty" msg:"6131,omitempty"` + SubjectPrefix *string `protobuf:"bytes,162,opt,name=subject_prefix,json=subjectPrefix,proto3,oneof" json:"subject_prefix,omitempty" msg:"61,omitempty" type:"31,omitempty"` // Contains supplementary information about a delivery status notification, as specified in [RFC3464]. - SupplementaryInfo *string `protobuf:"bytes,163,opt,name=supplementary_info,json=supplementaryInfo,proto3,oneof" json:"supplementary_info,omitempty" msg:"309931,omitempty"` + SupplementaryInfo *string `protobuf:"bytes,163,opt,name=supplementary_info,json=supplementaryInfo,proto3,oneof" json:"supplementary_info,omitempty" msg:"3099,omitempty" type:"31,omitempty"` // Contains an Address Book object's display name that is transmitted with the message. - TransmittableDisplayName *string `protobuf:"bytes,164,opt,name=transmittable_display_name,json=transmittableDisplayName,proto3,oneof" json:"transmittable_display_name,omitempty" msg:"1488031,omitempty"` + TransmittableDisplayName *string `protobuf:"bytes,164,opt,name=transmittable_display_name,json=transmittableDisplayName,proto3,oneof" json:"transmittable_display_name,omitempty" msg:"14880,omitempty" type:"31,omitempty"` // Contains transport-specific message envelope information for email. - TransportMessageHeaders *string `protobuf:"bytes,165,opt,name=transport_message_headers,json=transportMessageHeaders,proto3,oneof" json:"transport_message_headers,omitempty" msg:"12531,omitempty"` + TransportMessageHeaders *string `protobuf:"bytes,165,opt,name=transport_message_headers,json=transportMessageHeaders,proto3,oneof" json:"transport_message_headers,omitempty" msg:"125,omitempty" type:"31,omitempty"` } func (x *Message) Reset() { diff --git a/pkg/properties/message.pb_gen.go b/pkg/properties/message.pb_gen.go index 97c77f0..784f285 100644 --- a/pkg/properties/message.pb_gen.go +++ b/pkg/properties/message.pb_gen.go @@ -24,7 +24,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "2673063": + case "267306": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26736531": + case "267365": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26762231": + case "267622": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26762331": + case "267623": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26762431": + case "267624": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26762611": + case "267626": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26762111": + case "267621": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26730364": + case "267303": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26730264": + case "267302": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2674263": + case "267426": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26742831": + case "267428": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26752031": + case "267520": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26752131": + case "267521": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26727011": + case "267270": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26733231": + case "267332": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -474,7 +474,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1229031": + case "12290": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -492,7 +492,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "211": + case "2": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -510,7 +510,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1231964": + case "12319": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -528,7 +528,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "123183": + case "12318": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -546,7 +546,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1489631": + case "14896": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -564,7 +564,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1489431": + case "14894": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -582,7 +582,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "163513": + case "16351": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -600,7 +600,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "42463": + case "4246": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -618,7 +618,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "409631": + case "4096": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -636,7 +636,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "411631": + case "4116": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -654,7 +654,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "411531": + case "4115": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -672,7 +672,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "5764": + case "57": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -690,7 +690,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "165023": + case "16502": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -708,7 +708,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "11231": + case "112": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -726,7 +726,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1229564": + case "12295": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -744,7 +744,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1637631": + case "16376": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -762,7 +762,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1664": + case "16": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -780,7 +780,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "358631": + case "3586": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -798,7 +798,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "358731": + case "3587": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -816,7 +816,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "358831": + case "3588": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -834,7 +834,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "42243": + case "4224": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -852,7 +852,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "233": + case "23": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -870,7 +870,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1485831": + case "14858": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -888,7 +888,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "416231": + case "4162": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -906,7 +906,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "227863": + case "22786": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -924,7 +924,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "414931": + case "4149": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -942,7 +942,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "415331": + case "4153": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -960,7 +960,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1489331": + case "14893": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -978,7 +978,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1485931": + case "14859": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -996,7 +996,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1486031": + case "14860": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1014,7 +1014,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1229664": + case "12296": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1032,7 +1032,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1488731": + case "14887": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1050,7 +1050,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1486131": + case "14861": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1068,7 +1068,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1492631": + case "14926": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1086,7 +1086,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "8811": + case "88": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1104,7 +1104,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "359064": + case "3590": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1122,7 +1122,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35913": + case "3591": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1140,7 +1140,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1486331": + case "14863": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1158,7 +1158,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "8911": + case "89": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1176,7 +1176,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35923": + case "3592": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1194,7 +1194,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "359220": + case "3592": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1212,7 +1212,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "36073": + case "3607": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1230,7 +1230,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "8711": + case "87": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1248,7 +1248,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1491631": + case "14916": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1266,7 +1266,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1487631": + case "14876": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1284,7 +1284,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1492731": + case "14927": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1302,7 +1302,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "30773": + case "3077": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1320,7 +1320,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "30763": + case "3076": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1338,7 +1338,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "30783": + case "3078": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1356,7 +1356,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "361331": + case "3613": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1374,7 +1374,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1487331": + case "14873": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1392,7 +1392,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1486431": + case "14864": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1410,7 +1410,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "7731": + case "77": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1428,7 +1428,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "8564": + case "85": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1446,7 +1446,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "11431": + case "114": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1464,7 +1464,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "11531": + case "115": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1482,7 +1482,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "11631": + case "116": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1500,7 +1500,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "7531": + case "75": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1518,7 +1518,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "10231": + case "102": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1536,7 +1536,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "10331": + case "103": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1554,7 +1554,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "9031": + case "90": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1572,7 +1572,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "463": + case "46": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1590,7 +1590,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "10431": + case "104": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1608,7 +1608,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "10531": + case "105": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1626,7 +1626,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "9331": + case "93": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1644,7 +1644,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "7331": + case "73": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1662,7 +1662,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "7864": + case "78": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1680,7 +1680,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3511": + case "35": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1698,7 +1698,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "308011": + case "3080": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1716,7 +1716,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1494331": + case "14943": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1734,7 +1734,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1494431": + case "14944": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1752,7 +1752,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1494531": + case "14945": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1770,7 +1770,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1494831": + case "14948": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1788,7 +1788,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1494631": + case "14946": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1806,7 +1806,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1494731": + case "14947": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1824,7 +1824,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1487931": + case "14879": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1842,7 +1842,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1488131": + case "14881": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1860,7 +1860,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "383": + case "38": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1878,7 +1878,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4111": + case "41": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1896,7 +1896,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4264": + case "42": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1914,7 +1914,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "11831": + case "118": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1932,7 +1932,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "6431": + case "64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1950,7 +1950,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "11931": + case "119": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1968,7 +1968,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "12031": + case "120": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1986,7 +1986,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "6831": + case "68": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2004,7 +2004,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "30933": + case "3093": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2022,7 +2022,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "310531": + case "3105": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2040,7 +2040,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "309511": + case "3095": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2058,7 +2058,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "12831": + case "128": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2076,7 +2076,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "12931": + case "129": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2094,7 +2094,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2665631": + case "26656": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2112,7 +2112,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1231664": + case "12316": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2130,7 +2130,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "123173": + case "12317": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2148,7 +2148,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "123143": + case "12314": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2166,7 +2166,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "361511": + case "3615": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2184,7 +2184,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "310231": + case "3102": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2202,7 +2202,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "310331": + case "3103": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2220,7 +2220,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "165053": + case "16505": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2238,7 +2238,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "309831": + case "3098": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2256,7 +2256,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "149613": + case "14961": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2274,7 +2274,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1491211": + case "14912": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2292,7 +2292,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "543": + case "54": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2310,7 +2310,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "10031": + case "100": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2328,7 +2328,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "10131": + case "101": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2346,7 +2346,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "6631": + case "66": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2364,7 +2364,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1484631": + case "14846": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2382,7 +2382,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "5531": + case "55": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2400,7 +2400,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "6131": + case "61": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2418,7 +2418,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "309931": + case "3099": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2436,7 +2436,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1488031": + case "14880": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2454,7 +2454,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "12531": + case "125": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -3001,8 +3001,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // write "2673063" - err = en.Append(0xa7, 0x32, 0x36, 0x37, 0x33, 0x30, 0x36, 0x33) + // write "267306" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x36) if err != nil { return } @@ -3020,8 +3020,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // write "26736531" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x36, 0x35, 0x33, 0x31) + // write "267365" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x35) if err != nil { return } @@ -3039,8 +3039,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // write "26762231" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x36, 0x32, 0x32, 0x33, 0x31) + // write "267622" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x32) if err != nil { return } @@ -3058,8 +3058,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // write "26762331" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x36, 0x32, 0x33, 0x33, 0x31) + // write "267623" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x33) if err != nil { return } @@ -3077,8 +3077,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // write "26762431" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x36, 0x32, 0x34, 0x33, 0x31) + // write "267624" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x34) if err != nil { return } @@ -3096,8 +3096,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // write "26762611" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x36, 0x32, 0x36, 0x31, 0x31) + // write "267626" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x36) if err != nil { return } @@ -3115,8 +3115,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // write "26762111" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x36, 0x32, 0x31, 0x31, 0x31) + // write "267621" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x31) if err != nil { return } @@ -3134,8 +3134,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // write "26730364" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x30, 0x33, 0x36, 0x34) + // write "267303" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x33) if err != nil { return } @@ -3153,8 +3153,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // write "26730264" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x30, 0x32, 0x36, 0x34) + // write "267302" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x32) if err != nil { return } @@ -3172,8 +3172,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // write "2674263" - err = en.Append(0xa7, 0x32, 0x36, 0x37, 0x34, 0x32, 0x36, 0x33) + // write "267426" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x34, 0x32, 0x36) if err != nil { return } @@ -3191,8 +3191,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // write "26742831" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x34, 0x32, 0x38, 0x33, 0x31) + // write "267428" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x34, 0x32, 0x38) if err != nil { return } @@ -3210,8 +3210,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // write "26752031" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x35, 0x32, 0x30, 0x33, 0x31) + // write "267520" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x35, 0x32, 0x30) if err != nil { return } @@ -3229,8 +3229,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // write "26752131" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x35, 0x32, 0x31, 0x33, 0x31) + // write "267521" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x35, 0x32, 0x31) if err != nil { return } @@ -3248,8 +3248,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // write "26727011" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x32, 0x37, 0x30, 0x31, 0x31) + // write "267270" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x32, 0x37, 0x30) if err != nil { return } @@ -3267,8 +3267,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // write "26733231" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x33, 0x32, 0x33, 0x31) + // write "267332" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x33, 0x32) if err != nil { return } @@ -3456,8 +3456,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // write "1229031" - err = en.Append(0xa7, 0x31, 0x32, 0x32, 0x39, 0x30, 0x33, 0x31) + // write "12290" + err = en.Append(0xa5, 0x31, 0x32, 0x32, 0x39, 0x30) if err != nil { return } @@ -3475,8 +3475,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // write "211" - err = en.Append(0xa3, 0x32, 0x31, 0x31) + // write "2" + err = en.Append(0xa1, 0x32) if err != nil { return } @@ -3494,8 +3494,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // write "1231964" - err = en.Append(0xa7, 0x31, 0x32, 0x33, 0x31, 0x39, 0x36, 0x34) + // write "12319" + err = en.Append(0xa5, 0x31, 0x32, 0x33, 0x31, 0x39) if err != nil { return } @@ -3513,8 +3513,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // write "123183" - err = en.Append(0xa6, 0x31, 0x32, 0x33, 0x31, 0x38, 0x33) + // write "12318" + err = en.Append(0xa5, 0x31, 0x32, 0x33, 0x31, 0x38) if err != nil { return } @@ -3532,8 +3532,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // write "1489631" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x39, 0x36, 0x33, 0x31) + // write "14896" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x36) if err != nil { return } @@ -3551,8 +3551,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // write "1489431" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x39, 0x34, 0x33, 0x31) + // write "14894" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x34) if err != nil { return } @@ -3570,8 +3570,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // write "163513" - err = en.Append(0xa6, 0x31, 0x36, 0x33, 0x35, 0x31, 0x33) + // write "16351" + err = en.Append(0xa5, 0x31, 0x36, 0x33, 0x35, 0x31) if err != nil { return } @@ -3589,8 +3589,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // write "42463" - err = en.Append(0xa5, 0x34, 0x32, 0x34, 0x36, 0x33) + // write "4246" + err = en.Append(0xa4, 0x34, 0x32, 0x34, 0x36) if err != nil { return } @@ -3608,8 +3608,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // write "409631" - err = en.Append(0xa6, 0x34, 0x30, 0x39, 0x36, 0x33, 0x31) + // write "4096" + err = en.Append(0xa4, 0x34, 0x30, 0x39, 0x36) if err != nil { return } @@ -3627,8 +3627,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // write "411631" - err = en.Append(0xa6, 0x34, 0x31, 0x31, 0x36, 0x33, 0x31) + // write "4116" + err = en.Append(0xa4, 0x34, 0x31, 0x31, 0x36) if err != nil { return } @@ -3646,8 +3646,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // write "411531" - err = en.Append(0xa6, 0x34, 0x31, 0x31, 0x35, 0x33, 0x31) + // write "4115" + err = en.Append(0xa4, 0x34, 0x31, 0x31, 0x35) if err != nil { return } @@ -3665,8 +3665,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // write "5764" - err = en.Append(0xa4, 0x35, 0x37, 0x36, 0x34) + // write "57" + err = en.Append(0xa2, 0x35, 0x37) if err != nil { return } @@ -3684,8 +3684,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // write "165023" - err = en.Append(0xa6, 0x31, 0x36, 0x35, 0x30, 0x32, 0x33) + // write "16502" + err = en.Append(0xa5, 0x31, 0x36, 0x35, 0x30, 0x32) if err != nil { return } @@ -3703,8 +3703,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // write "11231" - err = en.Append(0xa5, 0x31, 0x31, 0x32, 0x33, 0x31) + // write "112" + err = en.Append(0xa3, 0x31, 0x31, 0x32) if err != nil { return } @@ -3722,8 +3722,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // write "1229564" - err = en.Append(0xa7, 0x31, 0x32, 0x32, 0x39, 0x35, 0x36, 0x34) + // write "12295" + err = en.Append(0xa5, 0x31, 0x32, 0x32, 0x39, 0x35) if err != nil { return } @@ -3741,8 +3741,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // write "1637631" - err = en.Append(0xa7, 0x31, 0x36, 0x33, 0x37, 0x36, 0x33, 0x31) + // write "16376" + err = en.Append(0xa5, 0x31, 0x36, 0x33, 0x37, 0x36) if err != nil { return } @@ -3760,8 +3760,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // write "1664" - err = en.Append(0xa4, 0x31, 0x36, 0x36, 0x34) + // write "16" + err = en.Append(0xa2, 0x31, 0x36) if err != nil { return } @@ -3779,8 +3779,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // write "358631" - err = en.Append(0xa6, 0x33, 0x35, 0x38, 0x36, 0x33, 0x31) + // write "3586" + err = en.Append(0xa4, 0x33, 0x35, 0x38, 0x36) if err != nil { return } @@ -3798,8 +3798,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // write "358731" - err = en.Append(0xa6, 0x33, 0x35, 0x38, 0x37, 0x33, 0x31) + // write "3587" + err = en.Append(0xa4, 0x33, 0x35, 0x38, 0x37) if err != nil { return } @@ -3817,8 +3817,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // write "358831" - err = en.Append(0xa6, 0x33, 0x35, 0x38, 0x38, 0x33, 0x31) + // write "3588" + err = en.Append(0xa4, 0x33, 0x35, 0x38, 0x38) if err != nil { return } @@ -3836,8 +3836,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // write "42243" - err = en.Append(0xa5, 0x34, 0x32, 0x32, 0x34, 0x33) + // write "4224" + err = en.Append(0xa4, 0x34, 0x32, 0x32, 0x34) if err != nil { return } @@ -3855,8 +3855,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // write "233" - err = en.Append(0xa3, 0x32, 0x33, 0x33) + // write "23" + err = en.Append(0xa2, 0x32, 0x33) if err != nil { return } @@ -3874,8 +3874,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // write "1485831" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x35, 0x38, 0x33, 0x31) + // write "14858" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x38) if err != nil { return } @@ -3893,8 +3893,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // write "416231" - err = en.Append(0xa6, 0x34, 0x31, 0x36, 0x32, 0x33, 0x31) + // write "4162" + err = en.Append(0xa4, 0x34, 0x31, 0x36, 0x32) if err != nil { return } @@ -3912,8 +3912,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // write "227863" - err = en.Append(0xa6, 0x32, 0x32, 0x37, 0x38, 0x36, 0x33) + // write "22786" + err = en.Append(0xa5, 0x32, 0x32, 0x37, 0x38, 0x36) if err != nil { return } @@ -3931,8 +3931,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // write "414931" - err = en.Append(0xa6, 0x34, 0x31, 0x34, 0x39, 0x33, 0x31) + // write "4149" + err = en.Append(0xa4, 0x34, 0x31, 0x34, 0x39) if err != nil { return } @@ -3950,8 +3950,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // write "415331" - err = en.Append(0xa6, 0x34, 0x31, 0x35, 0x33, 0x33, 0x31) + // write "4153" + err = en.Append(0xa4, 0x34, 0x31, 0x35, 0x33) if err != nil { return } @@ -3969,8 +3969,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // write "1489331" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x39, 0x33, 0x33, 0x31) + // write "14893" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x33) if err != nil { return } @@ -3988,8 +3988,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // write "1485931" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x35, 0x39, 0x33, 0x31) + // write "14859" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x39) if err != nil { return } @@ -4007,8 +4007,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // write "1486031" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x36, 0x30, 0x33, 0x31) + // write "14860" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x36, 0x30) if err != nil { return } @@ -4026,8 +4026,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000000) == 0 { // if not empty - // write "1229664" - err = en.Append(0xa7, 0x31, 0x32, 0x32, 0x39, 0x36, 0x36, 0x34) + // write "12296" + err = en.Append(0xa5, 0x31, 0x32, 0x32, 0x39, 0x36) if err != nil { return } @@ -4045,8 +4045,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000000) == 0 { // if not empty - // write "1488731" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x38, 0x37, 0x33, 0x31) + // write "14887" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x37) if err != nil { return } @@ -4064,8 +4064,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000000) == 0 { // if not empty - // write "1486131" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x36, 0x31, 0x33, 0x31) + // write "14861" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x36, 0x31) if err != nil { return } @@ -4083,8 +4083,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000000) == 0 { // if not empty - // write "1492631" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x32, 0x36, 0x33, 0x31) + // write "14926" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x36) if err != nil { return } @@ -4102,8 +4102,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000000) == 0 { // if not empty - // write "8811" - err = en.Append(0xa4, 0x38, 0x38, 0x31, 0x31) + // write "88" + err = en.Append(0xa2, 0x38, 0x38) if err != nil { return } @@ -4121,8 +4121,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000000000) == 0 { // if not empty - // write "359064" - err = en.Append(0xa6, 0x33, 0x35, 0x39, 0x30, 0x36, 0x34) + // write "3590" + err = en.Append(0xa4, 0x33, 0x35, 0x39, 0x30) if err != nil { return } @@ -4140,8 +4140,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000000000) == 0 { // if not empty - // write "35913" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x31, 0x33) + // write "3591" + err = en.Append(0xa4, 0x33, 0x35, 0x39, 0x31) if err != nil { return } @@ -4159,8 +4159,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000000) == 0 { // if not empty - // write "1486331" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x36, 0x33, 0x33, 0x31) + // write "14863" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x36, 0x33) if err != nil { return } @@ -4178,8 +4178,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000000) == 0 { // if not empty - // write "8911" - err = en.Append(0xa4, 0x38, 0x39, 0x31, 0x31) + // write "89" + err = en.Append(0xa2, 0x38, 0x39) if err != nil { return } @@ -4197,8 +4197,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1) == 0 { // if not empty - // write "35923" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x32, 0x33) + // write "3592" + err = en.Append(0xa4, 0x33, 0x35, 0x39, 0x32) if err != nil { return } @@ -4216,8 +4216,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2) == 0 { // if not empty - // write "359220" - err = en.Append(0xa6, 0x33, 0x35, 0x39, 0x32, 0x32, 0x30) + // write "3592" + err = en.Append(0xa4, 0x33, 0x35, 0x39, 0x32) if err != nil { return } @@ -4235,8 +4235,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4) == 0 { // if not empty - // write "36073" - err = en.Append(0xa5, 0x33, 0x36, 0x30, 0x37, 0x33) + // write "3607" + err = en.Append(0xa4, 0x33, 0x36, 0x30, 0x37) if err != nil { return } @@ -4254,8 +4254,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8) == 0 { // if not empty - // write "8711" - err = en.Append(0xa4, 0x38, 0x37, 0x31, 0x31) + // write "87" + err = en.Append(0xa2, 0x38, 0x37) if err != nil { return } @@ -4273,8 +4273,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10) == 0 { // if not empty - // write "1491631" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x31, 0x36, 0x33, 0x31) + // write "14916" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x36) if err != nil { return } @@ -4292,8 +4292,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20) == 0 { // if not empty - // write "1487631" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x37, 0x36, 0x33, 0x31) + // write "14876" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x36) if err != nil { return } @@ -4311,8 +4311,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40) == 0 { // if not empty - // write "1492731" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x32, 0x37, 0x33, 0x31) + // write "14927" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x37) if err != nil { return } @@ -4330,8 +4330,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80) == 0 { // if not empty - // write "30773" - err = en.Append(0xa5, 0x33, 0x30, 0x37, 0x37, 0x33) + // write "3077" + err = en.Append(0xa4, 0x33, 0x30, 0x37, 0x37) if err != nil { return } @@ -4349,8 +4349,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100) == 0 { // if not empty - // write "30763" - err = en.Append(0xa5, 0x33, 0x30, 0x37, 0x36, 0x33) + // write "3076" + err = en.Append(0xa4, 0x33, 0x30, 0x37, 0x36) if err != nil { return } @@ -4368,8 +4368,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200) == 0 { // if not empty - // write "30783" - err = en.Append(0xa5, 0x33, 0x30, 0x37, 0x38, 0x33) + // write "3078" + err = en.Append(0xa4, 0x33, 0x30, 0x37, 0x38) if err != nil { return } @@ -4387,8 +4387,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400) == 0 { // if not empty - // write "361331" - err = en.Append(0xa6, 0x33, 0x36, 0x31, 0x33, 0x33, 0x31) + // write "3613" + err = en.Append(0xa4, 0x33, 0x36, 0x31, 0x33) if err != nil { return } @@ -4406,8 +4406,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800) == 0 { // if not empty - // write "1487331" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x37, 0x33, 0x33, 0x31) + // write "14873" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x33) if err != nil { return } @@ -4425,8 +4425,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000) == 0 { // if not empty - // write "1486431" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x36, 0x34, 0x33, 0x31) + // write "14864" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x36, 0x34) if err != nil { return } @@ -4444,8 +4444,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000) == 0 { // if not empty - // write "7731" - err = en.Append(0xa4, 0x37, 0x37, 0x33, 0x31) + // write "77" + err = en.Append(0xa2, 0x37, 0x37) if err != nil { return } @@ -4463,8 +4463,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000) == 0 { // if not empty - // write "8564" - err = en.Append(0xa4, 0x38, 0x35, 0x36, 0x34) + // write "85" + err = en.Append(0xa2, 0x38, 0x35) if err != nil { return } @@ -4482,8 +4482,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000) == 0 { // if not empty - // write "11431" - err = en.Append(0xa5, 0x31, 0x31, 0x34, 0x33, 0x31) + // write "114" + err = en.Append(0xa3, 0x31, 0x31, 0x34) if err != nil { return } @@ -4501,8 +4501,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000) == 0 { // if not empty - // write "11531" - err = en.Append(0xa5, 0x31, 0x31, 0x35, 0x33, 0x31) + // write "115" + err = en.Append(0xa3, 0x31, 0x31, 0x35) if err != nil { return } @@ -4520,8 +4520,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000) == 0 { // if not empty - // write "11631" - err = en.Append(0xa5, 0x31, 0x31, 0x36, 0x33, 0x31) + // write "116" + err = en.Append(0xa3, 0x31, 0x31, 0x36) if err != nil { return } @@ -4539,8 +4539,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000) == 0 { // if not empty - // write "7531" - err = en.Append(0xa4, 0x37, 0x35, 0x33, 0x31) + // write "75" + err = en.Append(0xa2, 0x37, 0x35) if err != nil { return } @@ -4558,8 +4558,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000) == 0 { // if not empty - // write "10231" - err = en.Append(0xa5, 0x31, 0x30, 0x32, 0x33, 0x31) + // write "102" + err = en.Append(0xa3, 0x31, 0x30, 0x32) if err != nil { return } @@ -4577,8 +4577,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000) == 0 { // if not empty - // write "10331" - err = en.Append(0xa5, 0x31, 0x30, 0x33, 0x33, 0x31) + // write "103" + err = en.Append(0xa3, 0x31, 0x30, 0x33) if err != nil { return } @@ -4596,8 +4596,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000) == 0 { // if not empty - // write "9031" - err = en.Append(0xa4, 0x39, 0x30, 0x33, 0x31) + // write "90" + err = en.Append(0xa2, 0x39, 0x30) if err != nil { return } @@ -4615,8 +4615,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000) == 0 { // if not empty - // write "463" - err = en.Append(0xa3, 0x34, 0x36, 0x33) + // write "46" + err = en.Append(0xa2, 0x34, 0x36) if err != nil { return } @@ -4634,8 +4634,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000) == 0 { // if not empty - // write "10431" - err = en.Append(0xa5, 0x31, 0x30, 0x34, 0x33, 0x31) + // write "104" + err = en.Append(0xa3, 0x31, 0x30, 0x34) if err != nil { return } @@ -4653,8 +4653,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000) == 0 { // if not empty - // write "10531" - err = en.Append(0xa5, 0x31, 0x30, 0x35, 0x33, 0x31) + // write "105" + err = en.Append(0xa3, 0x31, 0x30, 0x35) if err != nil { return } @@ -4672,8 +4672,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000) == 0 { // if not empty - // write "9331" - err = en.Append(0xa4, 0x39, 0x33, 0x33, 0x31) + // write "93" + err = en.Append(0xa2, 0x39, 0x33) if err != nil { return } @@ -4691,8 +4691,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000) == 0 { // if not empty - // write "7331" - err = en.Append(0xa4, 0x37, 0x33, 0x33, 0x31) + // write "73" + err = en.Append(0xa2, 0x37, 0x33) if err != nil { return } @@ -4710,8 +4710,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000) == 0 { // if not empty - // write "7864" - err = en.Append(0xa4, 0x37, 0x38, 0x36, 0x34) + // write "78" + err = en.Append(0xa2, 0x37, 0x38) if err != nil { return } @@ -4729,8 +4729,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000) == 0 { // if not empty - // write "3511" - err = en.Append(0xa4, 0x33, 0x35, 0x31, 0x31) + // write "35" + err = en.Append(0xa2, 0x33, 0x35) if err != nil { return } @@ -4748,8 +4748,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000) == 0 { // if not empty - // write "308011" - err = en.Append(0xa6, 0x33, 0x30, 0x38, 0x30, 0x31, 0x31) + // write "3080" + err = en.Append(0xa4, 0x33, 0x30, 0x38, 0x30) if err != nil { return } @@ -4767,8 +4767,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000) == 0 { // if not empty - // write "1494331" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x34, 0x33, 0x33, 0x31) + // write "14943" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x33) if err != nil { return } @@ -4786,8 +4786,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000) == 0 { // if not empty - // write "1494431" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x34, 0x34, 0x33, 0x31) + // write "14944" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x34) if err != nil { return } @@ -4805,8 +4805,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000) == 0 { // if not empty - // write "1494531" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x34, 0x35, 0x33, 0x31) + // write "14945" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x35) if err != nil { return } @@ -4824,8 +4824,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000000) == 0 { // if not empty - // write "1494831" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x34, 0x38, 0x33, 0x31) + // write "14948" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x38) if err != nil { return } @@ -4843,8 +4843,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000000) == 0 { // if not empty - // write "1494631" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x34, 0x36, 0x33, 0x31) + // write "14946" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x36) if err != nil { return } @@ -4862,8 +4862,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000000) == 0 { // if not empty - // write "1494731" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x34, 0x37, 0x33, 0x31) + // write "14947" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x37) if err != nil { return } @@ -4881,8 +4881,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000000) == 0 { // if not empty - // write "1487931" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x37, 0x39, 0x33, 0x31) + // write "14879" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x39) if err != nil { return } @@ -4900,8 +4900,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000000) == 0 { // if not empty - // write "1488131" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x38, 0x31, 0x33, 0x31) + // write "14881" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x31) if err != nil { return } @@ -4919,8 +4919,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000000) == 0 { // if not empty - // write "383" - err = en.Append(0xa3, 0x33, 0x38, 0x33) + // write "38" + err = en.Append(0xa2, 0x33, 0x38) if err != nil { return } @@ -4938,8 +4938,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000000) == 0 { // if not empty - // write "4111" - err = en.Append(0xa4, 0x34, 0x31, 0x31, 0x31) + // write "41" + err = en.Append(0xa2, 0x34, 0x31) if err != nil { return } @@ -4957,8 +4957,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000000) == 0 { // if not empty - // write "4264" - err = en.Append(0xa4, 0x34, 0x32, 0x36, 0x34) + // write "42" + err = en.Append(0xa2, 0x34, 0x32) if err != nil { return } @@ -4976,8 +4976,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000000) == 0 { // if not empty - // write "11831" - err = en.Append(0xa5, 0x31, 0x31, 0x38, 0x33, 0x31) + // write "118" + err = en.Append(0xa3, 0x31, 0x31, 0x38) if err != nil { return } @@ -4995,8 +4995,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000000) == 0 { // if not empty - // write "6431" - err = en.Append(0xa4, 0x36, 0x34, 0x33, 0x31) + // write "64" + err = en.Append(0xa2, 0x36, 0x34) if err != nil { return } @@ -5014,8 +5014,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000000) == 0 { // if not empty - // write "11931" - err = en.Append(0xa5, 0x31, 0x31, 0x39, 0x33, 0x31) + // write "119" + err = en.Append(0xa3, 0x31, 0x31, 0x39) if err != nil { return } @@ -5033,8 +5033,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000000) == 0 { // if not empty - // write "12031" - err = en.Append(0xa5, 0x31, 0x32, 0x30, 0x33, 0x31) + // write "120" + err = en.Append(0xa3, 0x31, 0x32, 0x30) if err != nil { return } @@ -5052,8 +5052,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000000000) == 0 { // if not empty - // write "6831" - err = en.Append(0xa4, 0x36, 0x38, 0x33, 0x31) + // write "68" + err = en.Append(0xa2, 0x36, 0x38) if err != nil { return } @@ -5071,8 +5071,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000000000) == 0 { // if not empty - // write "30933" - err = en.Append(0xa5, 0x33, 0x30, 0x39, 0x33, 0x33) + // write "3093" + err = en.Append(0xa4, 0x33, 0x30, 0x39, 0x33) if err != nil { return } @@ -5090,8 +5090,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000000000) == 0 { // if not empty - // write "310531" - err = en.Append(0xa6, 0x33, 0x31, 0x30, 0x35, 0x33, 0x31) + // write "3105" + err = en.Append(0xa4, 0x33, 0x31, 0x30, 0x35) if err != nil { return } @@ -5109,8 +5109,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000000000) == 0 { // if not empty - // write "309511" - err = en.Append(0xa6, 0x33, 0x30, 0x39, 0x35, 0x31, 0x31) + // write "3095" + err = en.Append(0xa4, 0x33, 0x30, 0x39, 0x35) if err != nil { return } @@ -5128,8 +5128,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000000000) == 0 { // if not empty - // write "12831" - err = en.Append(0xa5, 0x31, 0x32, 0x38, 0x33, 0x31) + // write "128" + err = en.Append(0xa3, 0x31, 0x32, 0x38) if err != nil { return } @@ -5147,8 +5147,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000000000) == 0 { // if not empty - // write "12931" - err = en.Append(0xa5, 0x31, 0x32, 0x39, 0x33, 0x31) + // write "129" + err = en.Append(0xa3, 0x31, 0x32, 0x39) if err != nil { return } @@ -5166,8 +5166,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000000000) == 0 { // if not empty - // write "2665631" - err = en.Append(0xa7, 0x32, 0x36, 0x36, 0x35, 0x36, 0x33, 0x31) + // write "26656" + err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x35, 0x36) if err != nil { return } @@ -5185,8 +5185,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000000000) == 0 { // if not empty - // write "1231664" - err = en.Append(0xa7, 0x31, 0x32, 0x33, 0x31, 0x36, 0x36, 0x34) + // write "12316" + err = en.Append(0xa5, 0x31, 0x32, 0x33, 0x31, 0x36) if err != nil { return } @@ -5204,8 +5204,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000000000) == 0 { // if not empty - // write "123173" - err = en.Append(0xa6, 0x31, 0x32, 0x33, 0x31, 0x37, 0x33) + // write "12317" + err = en.Append(0xa5, 0x31, 0x32, 0x33, 0x31, 0x37) if err != nil { return } @@ -5223,8 +5223,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000000000) == 0 { // if not empty - // write "123143" - err = en.Append(0xa6, 0x31, 0x32, 0x33, 0x31, 0x34, 0x33) + // write "12314" + err = en.Append(0xa5, 0x31, 0x32, 0x33, 0x31, 0x34) if err != nil { return } @@ -5242,8 +5242,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000000000) == 0 { // if not empty - // write "361511" - err = en.Append(0xa6, 0x33, 0x36, 0x31, 0x35, 0x31, 0x31) + // write "3615" + err = en.Append(0xa4, 0x33, 0x36, 0x31, 0x35) if err != nil { return } @@ -5261,8 +5261,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000000000) == 0 { // if not empty - // write "310231" - err = en.Append(0xa6, 0x33, 0x31, 0x30, 0x32, 0x33, 0x31) + // write "3102" + err = en.Append(0xa4, 0x33, 0x31, 0x30, 0x32) if err != nil { return } @@ -5280,8 +5280,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000000000000) == 0 { // if not empty - // write "310331" - err = en.Append(0xa6, 0x33, 0x31, 0x30, 0x33, 0x33, 0x31) + // write "3103" + err = en.Append(0xa4, 0x33, 0x31, 0x30, 0x33) if err != nil { return } @@ -5299,8 +5299,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000000000000) == 0 { // if not empty - // write "165053" - err = en.Append(0xa6, 0x31, 0x36, 0x35, 0x30, 0x35, 0x33) + // write "16505" + err = en.Append(0xa5, 0x31, 0x36, 0x35, 0x30, 0x35) if err != nil { return } @@ -5318,8 +5318,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000000000000) == 0 { // if not empty - // write "309831" - err = en.Append(0xa6, 0x33, 0x30, 0x39, 0x38, 0x33, 0x31) + // write "3098" + err = en.Append(0xa4, 0x33, 0x30, 0x39, 0x38) if err != nil { return } @@ -5337,8 +5337,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000000000000) == 0 { // if not empty - // write "149613" - err = en.Append(0xa6, 0x31, 0x34, 0x39, 0x36, 0x31, 0x33) + // write "14961" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x36, 0x31) if err != nil { return } @@ -5356,8 +5356,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000000000000) == 0 { // if not empty - // write "1491211" - err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x31, 0x32, 0x31, 0x31) + // write "14912" + err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x32) if err != nil { return } @@ -5375,8 +5375,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000000000000) == 0 { // if not empty - // write "543" - err = en.Append(0xa3, 0x35, 0x34, 0x33) + // write "54" + err = en.Append(0xa2, 0x35, 0x34) if err != nil { return } @@ -5394,8 +5394,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000000000000) == 0 { // if not empty - // write "10031" - err = en.Append(0xa5, 0x31, 0x30, 0x30, 0x33, 0x31) + // write "100" + err = en.Append(0xa3, 0x31, 0x30, 0x30) if err != nil { return } @@ -5413,8 +5413,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x1) == 0 { // if not empty - // write "10131" - err = en.Append(0xa5, 0x31, 0x30, 0x31, 0x33, 0x31) + // write "101" + err = en.Append(0xa3, 0x31, 0x30, 0x31) if err != nil { return } @@ -5432,8 +5432,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x2) == 0 { // if not empty - // write "6631" - err = en.Append(0xa4, 0x36, 0x36, 0x33, 0x31) + // write "66" + err = en.Append(0xa2, 0x36, 0x36) if err != nil { return } @@ -5451,8 +5451,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x4) == 0 { // if not empty - // write "1484631" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x34, 0x36, 0x33, 0x31) + // write "14846" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x34, 0x36) if err != nil { return } @@ -5470,8 +5470,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x8) == 0 { // if not empty - // write "5531" - err = en.Append(0xa4, 0x35, 0x35, 0x33, 0x31) + // write "55" + err = en.Append(0xa2, 0x35, 0x35) if err != nil { return } @@ -5489,8 +5489,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x10) == 0 { // if not empty - // write "6131" - err = en.Append(0xa4, 0x36, 0x31, 0x33, 0x31) + // write "61" + err = en.Append(0xa2, 0x36, 0x31) if err != nil { return } @@ -5508,8 +5508,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x20) == 0 { // if not empty - // write "309931" - err = en.Append(0xa6, 0x33, 0x30, 0x39, 0x39, 0x33, 0x31) + // write "3099" + err = en.Append(0xa4, 0x33, 0x30, 0x39, 0x39) if err != nil { return } @@ -5527,8 +5527,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x40) == 0 { // if not empty - // write "1488031" - err = en.Append(0xa7, 0x31, 0x34, 0x38, 0x38, 0x30, 0x33, 0x31) + // write "14880" + err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x30) if err != nil { return } @@ -5546,8 +5546,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x80) == 0 { // if not empty - // write "12531" - err = en.Append(0xa5, 0x31, 0x32, 0x35, 0x33, 0x31) + // write "125" + err = en.Append(0xa3, 0x31, 0x32, 0x35) if err != nil { return } @@ -6083,8 +6083,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // string "2673063" - o = append(o, 0xa7, 0x32, 0x36, 0x37, 0x33, 0x30, 0x36, 0x33) + // string "267306" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x36) if z.AutoProcessState == nil { o = msgp.AppendNil(o) } else { @@ -6092,8 +6092,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // string "26736531" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x36, 0x35, 0x33, 0x31) + // string "267365" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x35) if z.Billing == nil { o = msgp.AppendNil(o) } else { @@ -6101,8 +6101,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // string "26762231" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x36, 0x32, 0x32, 0x33, 0x31) + // string "267622" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x32) if z.Classification == nil { o = msgp.AppendNil(o) } else { @@ -6110,8 +6110,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // string "26762331" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x36, 0x32, 0x33, 0x33, 0x31) + // string "267623" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x33) if z.ClassificationDescription == nil { o = msgp.AppendNil(o) } else { @@ -6119,8 +6119,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // string "26762431" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x36, 0x32, 0x34, 0x33, 0x31) + // string "267624" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x34) if z.ClassificationGuid == nil { o = msgp.AppendNil(o) } else { @@ -6128,8 +6128,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // string "26762611" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x36, 0x32, 0x36, 0x31, 0x31) + // string "267626" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x36) if z.ClassificationKeep == nil { o = msgp.AppendNil(o) } else { @@ -6137,8 +6137,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // string "26762111" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x36, 0x32, 0x31, 0x31, 0x31) + // string "267621" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x31) if z.Classified == nil { o = msgp.AppendNil(o) } else { @@ -6146,8 +6146,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // string "26730364" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x30, 0x33, 0x36, 0x34) + // string "267303" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x33) if z.CommonEnd == nil { o = msgp.AppendNil(o) } else { @@ -6155,8 +6155,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // string "26730264" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x30, 0x32, 0x36, 0x34) + // string "267302" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x32) if z.CommonStart == nil { o = msgp.AppendNil(o) } else { @@ -6164,8 +6164,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // string "2674263" - o = append(o, 0xa7, 0x32, 0x36, 0x37, 0x34, 0x32, 0x36, 0x33) + // string "267426" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x34, 0x32, 0x36) if z.CurrentVersion == nil { o = msgp.AppendNil(o) } else { @@ -6173,8 +6173,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // string "26742831" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x34, 0x32, 0x38, 0x33, 0x31) + // string "267428" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x34, 0x32, 0x38) if z.CurrentVersionName == nil { o = msgp.AppendNil(o) } else { @@ -6182,8 +6182,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // string "26752031" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x35, 0x32, 0x30, 0x33, 0x31) + // string "267520" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x35, 0x32, 0x30) if z.InternetAccountName == nil { o = msgp.AppendNil(o) } else { @@ -6191,8 +6191,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // string "26752131" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x35, 0x32, 0x31, 0x33, 0x31) + // string "267521" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x35, 0x32, 0x31) if z.InternetAccountStamp == nil { o = msgp.AppendNil(o) } else { @@ -6200,8 +6200,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // string "26727011" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x32, 0x37, 0x30, 0x31, 0x31) + // string "267270" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x32, 0x37, 0x30) if z.Private == nil { o = msgp.AppendNil(o) } else { @@ -6209,8 +6209,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // string "26733231" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x33, 0x32, 0x33, 0x31) + // string "267332" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x33, 0x32) if z.VerbResponse == nil { o = msgp.AppendNil(o) } else { @@ -6288,8 +6288,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.AppendInt32(o, *z.PhishingStamp) } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // string "1229031" - o = append(o, 0xa7, 0x31, 0x32, 0x32, 0x39, 0x30, 0x33, 0x31) + // string "12290" + o = append(o, 0xa5, 0x31, 0x32, 0x32, 0x39, 0x30) if z.AddressType == nil { o = msgp.AppendNil(o) } else { @@ -6297,8 +6297,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // string "211" - o = append(o, 0xa3, 0x32, 0x31, 0x31) + // string "2" + o = append(o, 0xa1, 0x32) if z.AlternateRecipientAllowed == nil { o = msgp.AppendNil(o) } else { @@ -6306,8 +6306,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // string "1231964" - o = append(o, 0xa7, 0x31, 0x32, 0x33, 0x31, 0x39, 0x36, 0x34) + // string "12319" + o = append(o, 0xa5, 0x31, 0x32, 0x33, 0x31, 0x39) if z.ArchiveDate == nil { o = msgp.AppendNil(o) } else { @@ -6315,8 +6315,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // string "123183" - o = append(o, 0xa6, 0x31, 0x32, 0x33, 0x31, 0x38, 0x33) + // string "12318" + o = append(o, 0xa5, 0x31, 0x32, 0x33, 0x31, 0x38) if z.ArchivePeriod == nil { o = msgp.AppendNil(o) } else { @@ -6324,8 +6324,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // string "1489631" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x39, 0x36, 0x33, 0x31) + // string "14896" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x36) if z.Assistant == nil { o = msgp.AppendNil(o) } else { @@ -6333,8 +6333,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // string "1489431" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x39, 0x34, 0x33, 0x31) + // string "14894" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x34) if z.AssistantTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -6342,8 +6342,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // string "163513" - o = append(o, 0xa6, 0x31, 0x36, 0x33, 0x35, 0x31, 0x33) + // string "16351" + o = append(o, 0xa5, 0x31, 0x36, 0x33, 0x35, 0x31) if z.AutoResponseSuppress == nil { o = msgp.AppendNil(o) } else { @@ -6351,8 +6351,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // string "42463" - o = append(o, 0xa5, 0x34, 0x32, 0x34, 0x36, 0x33) + // string "4246" + o = append(o, 0xa4, 0x34, 0x32, 0x34, 0x36) if z.BlockStatus == nil { o = msgp.AppendNil(o) } else { @@ -6360,8 +6360,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // string "409631" - o = append(o, 0xa6, 0x34, 0x30, 0x39, 0x36, 0x33, 0x31) + // string "4096" + o = append(o, 0xa4, 0x34, 0x30, 0x39, 0x36) if z.Body == nil { o = msgp.AppendNil(o) } else { @@ -6369,8 +6369,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // string "411631" - o = append(o, 0xa6, 0x34, 0x31, 0x31, 0x36, 0x33, 0x31) + // string "4116" + o = append(o, 0xa4, 0x34, 0x31, 0x31, 0x36) if z.BodyContentLocation == nil { o = msgp.AppendNil(o) } else { @@ -6378,8 +6378,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // string "411531" - o = append(o, 0xa6, 0x34, 0x31, 0x31, 0x35, 0x33, 0x31) + // string "4115" + o = append(o, 0xa4, 0x34, 0x31, 0x31, 0x35) if z.BodyHtml == nil { o = msgp.AppendNil(o) } else { @@ -6387,8 +6387,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // string "5764" - o = append(o, 0xa4, 0x35, 0x37, 0x36, 0x34) + // string "57" + o = append(o, 0xa2, 0x35, 0x37) if z.ClientSubmitTime == nil { o = msgp.AppendNil(o) } else { @@ -6396,8 +6396,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // string "165023" - o = append(o, 0xa6, 0x31, 0x36, 0x35, 0x30, 0x32, 0x33) + // string "16502" + o = append(o, 0xa5, 0x31, 0x36, 0x35, 0x30, 0x32) if z.ContentFilterSpamConfidenceLevel == nil { o = msgp.AppendNil(o) } else { @@ -6405,8 +6405,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // string "11231" - o = append(o, 0xa5, 0x31, 0x31, 0x32, 0x33, 0x31) + // string "112" + o = append(o, 0xa3, 0x31, 0x31, 0x32) if z.ConversationTopic == nil { o = msgp.AppendNil(o) } else { @@ -6414,8 +6414,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // string "1229564" - o = append(o, 0xa7, 0x31, 0x32, 0x32, 0x39, 0x35, 0x36, 0x34) + // string "12295" + o = append(o, 0xa5, 0x31, 0x32, 0x32, 0x39, 0x35) if z.CreationTime == nil { o = msgp.AppendNil(o) } else { @@ -6423,8 +6423,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // string "1637631" - o = append(o, 0xa7, 0x31, 0x36, 0x33, 0x37, 0x36, 0x33, 0x31) + // string "16376" + o = append(o, 0xa5, 0x31, 0x36, 0x33, 0x37, 0x36) if z.CreatorName == nil { o = msgp.AppendNil(o) } else { @@ -6432,8 +6432,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // string "1664" - o = append(o, 0xa4, 0x31, 0x36, 0x36, 0x34) + // string "16" + o = append(o, 0xa2, 0x31, 0x36) if z.DeliverTime == nil { o = msgp.AppendNil(o) } else { @@ -6441,8 +6441,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // string "358631" - o = append(o, 0xa6, 0x33, 0x35, 0x38, 0x36, 0x33, 0x31) + // string "3586" + o = append(o, 0xa4, 0x33, 0x35, 0x38, 0x36) if z.DisplayBcc == nil { o = msgp.AppendNil(o) } else { @@ -6450,8 +6450,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // string "358731" - o = append(o, 0xa6, 0x33, 0x35, 0x38, 0x37, 0x33, 0x31) + // string "3587" + o = append(o, 0xa4, 0x33, 0x35, 0x38, 0x37) if z.DisplayCc == nil { o = msgp.AppendNil(o) } else { @@ -6459,8 +6459,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // string "358831" - o = append(o, 0xa6, 0x33, 0x35, 0x38, 0x38, 0x33, 0x31) + // string "3588" + o = append(o, 0xa4, 0x33, 0x35, 0x38, 0x38) if z.DisplayTo == nil { o = msgp.AppendNil(o) } else { @@ -6468,8 +6468,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // string "42243" - o = append(o, 0xa5, 0x34, 0x32, 0x32, 0x34, 0x33) + // string "4224" + o = append(o, 0xa4, 0x34, 0x32, 0x32, 0x34) if z.IconIndex == nil { o = msgp.AppendNil(o) } else { @@ -6477,8 +6477,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // string "233" - o = append(o, 0xa3, 0x32, 0x33, 0x33) + // string "23" + o = append(o, 0xa2, 0x32, 0x33) if z.Importance == nil { o = msgp.AppendNil(o) } else { @@ -6486,8 +6486,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // string "1485831" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x35, 0x38, 0x33, 0x31) + // string "14858" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x38) if z.Initials == nil { o = msgp.AppendNil(o) } else { @@ -6495,8 +6495,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // string "416231" - o = append(o, 0xa6, 0x34, 0x31, 0x36, 0x32, 0x33, 0x31) + // string "4162" + o = append(o, 0xa4, 0x34, 0x31, 0x36, 0x32) if z.InReplyToId == nil { o = msgp.AppendNil(o) } else { @@ -6504,8 +6504,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // string "227863" - o = append(o, 0xa6, 0x32, 0x32, 0x37, 0x38, 0x36, 0x33) + // string "22786" + o = append(o, 0xa5, 0x32, 0x32, 0x37, 0x38, 0x36) if z.InternetMailOverrideFormat == nil { o = msgp.AppendNil(o) } else { @@ -6513,8 +6513,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // string "414931" - o = append(o, 0xa6, 0x34, 0x31, 0x34, 0x39, 0x33, 0x31) + // string "4149" + o = append(o, 0xa4, 0x34, 0x31, 0x34, 0x39) if z.InternetMessageId == nil { o = msgp.AppendNil(o) } else { @@ -6522,8 +6522,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // string "415331" - o = append(o, 0xa6, 0x34, 0x31, 0x35, 0x33, 0x33, 0x31) + // string "4153" + o = append(o, 0xa4, 0x34, 0x31, 0x35, 0x33) if z.InternetReferences == nil { o = msgp.AppendNil(o) } else { @@ -6531,8 +6531,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // string "1489331" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x39, 0x33, 0x33, 0x31) + // string "14893" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x33) if z.IsdnNumber == nil { o = msgp.AppendNil(o) } else { @@ -6540,8 +6540,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // string "1485931" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x35, 0x39, 0x33, 0x31) + // string "14859" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x39) if z.Keyword == nil { o = msgp.AppendNil(o) } else { @@ -6549,8 +6549,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // string "1486031" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x36, 0x30, 0x33, 0x31) + // string "14860" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x36, 0x30) if z.Language == nil { o = msgp.AppendNil(o) } else { @@ -6558,8 +6558,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000000) == 0 { // if not empty - // string "1229664" - o = append(o, 0xa7, 0x31, 0x32, 0x32, 0x39, 0x36, 0x36, 0x34) + // string "12296" + o = append(o, 0xa5, 0x31, 0x32, 0x32, 0x39, 0x36) if z.LastModificationTime == nil { o = msgp.AppendNil(o) } else { @@ -6567,8 +6567,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000000) == 0 { // if not empty - // string "1488731" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x38, 0x37, 0x33, 0x31) + // string "14887" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x37) if z.Locality == nil { o = msgp.AppendNil(o) } else { @@ -6576,8 +6576,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000000) == 0 { // if not empty - // string "1486131" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x36, 0x31, 0x33, 0x31) + // string "14861" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x36, 0x31) if z.Location == nil { o = msgp.AppendNil(o) } else { @@ -6585,8 +6585,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000000) == 0 { // if not empty - // string "1492631" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x32, 0x36, 0x33, 0x31) + // string "14926" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x36) if z.ManagerName == nil { o = msgp.AppendNil(o) } else { @@ -6594,8 +6594,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000000) == 0 { // if not empty - // string "8811" - o = append(o, 0xa4, 0x38, 0x38, 0x31, 0x31) + // string "88" + o = append(o, 0xa2, 0x38, 0x38) if z.MessageCcMe == nil { o = msgp.AppendNil(o) } else { @@ -6603,8 +6603,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000000000) == 0 { // if not empty - // string "359064" - o = append(o, 0xa6, 0x33, 0x35, 0x39, 0x30, 0x36, 0x34) + // string "3590" + o = append(o, 0xa4, 0x33, 0x35, 0x39, 0x30) if z.MessageDeliveryTime == nil { o = msgp.AppendNil(o) } else { @@ -6612,8 +6612,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000000000) == 0 { // if not empty - // string "35913" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x31, 0x33) + // string "3591" + o = append(o, 0xa4, 0x33, 0x35, 0x39, 0x31) if z.MessageFlags == nil { o = msgp.AppendNil(o) } else { @@ -6621,8 +6621,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000000000) == 0 { // if not empty - // string "1486331" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x36, 0x33, 0x33, 0x31) + // string "14863" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x36, 0x33) if z.MessageHandlingSystemCommonName == nil { o = msgp.AppendNil(o) } else { @@ -6630,8 +6630,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000000) == 0 { // if not empty - // string "8911" - o = append(o, 0xa4, 0x38, 0x39, 0x31, 0x31) + // string "89" + o = append(o, 0xa2, 0x38, 0x39) if z.MessageRecipientMe == nil { o = msgp.AppendNil(o) } else { @@ -6639,8 +6639,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1) == 0 { // if not empty - // string "35923" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x32, 0x33) + // string "3592" + o = append(o, 0xa4, 0x33, 0x35, 0x39, 0x32) if z.MessageSize == nil { o = msgp.AppendNil(o) } else { @@ -6648,8 +6648,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2) == 0 { // if not empty - // string "359220" - o = append(o, 0xa6, 0x33, 0x35, 0x39, 0x32, 0x32, 0x30) + // string "3592" + o = append(o, 0xa4, 0x33, 0x35, 0x39, 0x32) if z.MessageSizeExtended == nil { o = msgp.AppendNil(o) } else { @@ -6657,8 +6657,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4) == 0 { // if not empty - // string "36073" - o = append(o, 0xa5, 0x33, 0x36, 0x30, 0x37, 0x33) + // string "3607" + o = append(o, 0xa4, 0x33, 0x36, 0x30, 0x37) if z.MessageStatus == nil { o = msgp.AppendNil(o) } else { @@ -6666,8 +6666,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8) == 0 { // if not empty - // string "8711" - o = append(o, 0xa4, 0x38, 0x37, 0x31, 0x31) + // string "87" + o = append(o, 0xa2, 0x38, 0x37) if z.MessageToMe == nil { o = msgp.AppendNil(o) } else { @@ -6675,8 +6675,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10) == 0 { // if not empty - // string "1491631" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x31, 0x36, 0x33, 0x31) + // string "14916" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x36) if z.MiddleName == nil { o = msgp.AppendNil(o) } else { @@ -6684,8 +6684,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20) == 0 { // if not empty - // string "1487631" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x37, 0x36, 0x33, 0x31) + // string "14876" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x36) if z.MobileTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -6693,8 +6693,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40) == 0 { // if not empty - // string "1492731" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x32, 0x37, 0x33, 0x31) + // string "14927" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x37) if z.Nickname == nil { o = msgp.AppendNil(o) } else { @@ -6702,8 +6702,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80) == 0 { // if not empty - // string "30773" - o = append(o, 0xa5, 0x33, 0x30, 0x37, 0x37, 0x33) + // string "3077" + o = append(o, 0xa4, 0x33, 0x30, 0x37, 0x37) if z.NonDeliveryReportDiagCode == nil { o = msgp.AppendNil(o) } else { @@ -6711,8 +6711,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100) == 0 { // if not empty - // string "30763" - o = append(o, 0xa5, 0x33, 0x30, 0x37, 0x36, 0x33) + // string "3076" + o = append(o, 0xa4, 0x33, 0x30, 0x37, 0x36) if z.NonDeliveryReportReasonCode == nil { o = msgp.AppendNil(o) } else { @@ -6720,8 +6720,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200) == 0 { // if not empty - // string "30783" - o = append(o, 0xa5, 0x33, 0x30, 0x37, 0x38, 0x33) + // string "3078" + o = append(o, 0xa4, 0x33, 0x30, 0x37, 0x38) if z.NonDeliveryReportStatusCode == nil { o = msgp.AppendNil(o) } else { @@ -6729,8 +6729,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400) == 0 { // if not empty - // string "361331" - o = append(o, 0xa6, 0x33, 0x36, 0x31, 0x33, 0x33, 0x31) + // string "3613" + o = append(o, 0xa4, 0x33, 0x36, 0x31, 0x33) if z.NormalizedSubject == nil { o = msgp.AppendNil(o) } else { @@ -6738,8 +6738,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800) == 0 { // if not empty - // string "1487331" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x37, 0x33, 0x33, 0x31) + // string "14873" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x33) if z.OfficeLocation == nil { o = msgp.AppendNil(o) } else { @@ -6747,8 +6747,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000) == 0 { // if not empty - // string "1486431" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x36, 0x34, 0x33, 0x31) + // string "14864" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x36, 0x34) if z.OrganizationalIdNumber == nil { o = msgp.AppendNil(o) } else { @@ -6756,8 +6756,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000) == 0 { // if not empty - // string "7731" - o = append(o, 0xa4, 0x37, 0x37, 0x33, 0x31) + // string "77" + o = append(o, 0xa2, 0x37, 0x37) if z.OriginalAuthorName == nil { o = msgp.AppendNil(o) } else { @@ -6765,8 +6765,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000) == 0 { // if not empty - // string "8564" - o = append(o, 0xa4, 0x38, 0x35, 0x36, 0x34) + // string "85" + o = append(o, 0xa2, 0x38, 0x35) if z.OriginalDeliveryTime == nil { o = msgp.AppendNil(o) } else { @@ -6774,8 +6774,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000) == 0 { // if not empty - // string "11431" - o = append(o, 0xa5, 0x31, 0x31, 0x34, 0x33, 0x31) + // string "114" + o = append(o, 0xa3, 0x31, 0x31, 0x34) if z.OriginalDisplayBcc == nil { o = msgp.AppendNil(o) } else { @@ -6783,8 +6783,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000) == 0 { // if not empty - // string "11531" - o = append(o, 0xa5, 0x31, 0x31, 0x35, 0x33, 0x31) + // string "115" + o = append(o, 0xa3, 0x31, 0x31, 0x35) if z.OriginalDisplayCc == nil { o = msgp.AppendNil(o) } else { @@ -6792,8 +6792,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000) == 0 { // if not empty - // string "11631" - o = append(o, 0xa5, 0x31, 0x31, 0x36, 0x33, 0x31) + // string "116" + o = append(o, 0xa3, 0x31, 0x31, 0x36) if z.OriginalDisplayTo == nil { o = msgp.AppendNil(o) } else { @@ -6801,8 +6801,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000) == 0 { // if not empty - // string "7531" - o = append(o, 0xa4, 0x37, 0x35, 0x33, 0x31) + // string "75" + o = append(o, 0xa2, 0x37, 0x35) if z.OriginalMessageClass == nil { o = msgp.AppendNil(o) } else { @@ -6810,8 +6810,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000) == 0 { // if not empty - // string "10231" - o = append(o, 0xa5, 0x31, 0x30, 0x32, 0x33, 0x31) + // string "102" + o = append(o, 0xa3, 0x31, 0x30, 0x32) if z.OriginalSenderAddressType == nil { o = msgp.AppendNil(o) } else { @@ -6819,8 +6819,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000) == 0 { // if not empty - // string "10331" - o = append(o, 0xa5, 0x31, 0x30, 0x33, 0x33, 0x31) + // string "103" + o = append(o, 0xa3, 0x31, 0x30, 0x33) if z.OriginalSenderEmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -6828,8 +6828,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000) == 0 { // if not empty - // string "9031" - o = append(o, 0xa4, 0x39, 0x30, 0x33, 0x31) + // string "90" + o = append(o, 0xa2, 0x39, 0x30) if z.OriginalSenderName == nil { o = msgp.AppendNil(o) } else { @@ -6837,8 +6837,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000) == 0 { // if not empty - // string "463" - o = append(o, 0xa3, 0x34, 0x36, 0x33) + // string "46" + o = append(o, 0xa2, 0x34, 0x36) if z.OriginalSensitivity == nil { o = msgp.AppendNil(o) } else { @@ -6846,8 +6846,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000) == 0 { // if not empty - // string "10431" - o = append(o, 0xa5, 0x31, 0x30, 0x34, 0x33, 0x31) + // string "104" + o = append(o, 0xa3, 0x31, 0x30, 0x34) if z.OriginalSentRepresentingAddressType == nil { o = msgp.AppendNil(o) } else { @@ -6855,8 +6855,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000) == 0 { // if not empty - // string "10531" - o = append(o, 0xa5, 0x31, 0x30, 0x35, 0x33, 0x31) + // string "105" + o = append(o, 0xa3, 0x31, 0x30, 0x35) if z.OriginalSentRepresentingEmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -6864,8 +6864,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000) == 0 { // if not empty - // string "9331" - o = append(o, 0xa4, 0x39, 0x33, 0x33, 0x31) + // string "93" + o = append(o, 0xa2, 0x39, 0x33) if z.OriginalSentRepresentingName == nil { o = msgp.AppendNil(o) } else { @@ -6873,8 +6873,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000) == 0 { // if not empty - // string "7331" - o = append(o, 0xa4, 0x37, 0x33, 0x33, 0x31) + // string "73" + o = append(o, 0xa2, 0x37, 0x33) if z.OriginalSubject == nil { o = msgp.AppendNil(o) } else { @@ -6882,8 +6882,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000) == 0 { // if not empty - // string "7864" - o = append(o, 0xa4, 0x37, 0x38, 0x36, 0x34) + // string "78" + o = append(o, 0xa2, 0x37, 0x38) if z.OriginalSubmitTime == nil { o = msgp.AppendNil(o) } else { @@ -6891,8 +6891,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000) == 0 { // if not empty - // string "3511" - o = append(o, 0xa4, 0x33, 0x35, 0x31, 0x31) + // string "35" + o = append(o, 0xa2, 0x33, 0x35) if z.OriginatorDeliveryReportRequested == nil { o = msgp.AppendNil(o) } else { @@ -6900,8 +6900,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000) == 0 { // if not empty - // string "308011" - o = append(o, 0xa6, 0x33, 0x30, 0x38, 0x30, 0x31, 0x31) + // string "3080" + o = append(o, 0xa4, 0x33, 0x30, 0x38, 0x30) if z.OriginatorNonDeliveryReportRequested == nil { o = msgp.AppendNil(o) } else { @@ -6909,8 +6909,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000) == 0 { // if not empty - // string "1494331" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x34, 0x33, 0x33, 0x31) + // string "14943" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x33) if z.OtherAddressCity == nil { o = msgp.AppendNil(o) } else { @@ -6918,8 +6918,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000) == 0 { // if not empty - // string "1494431" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x34, 0x34, 0x33, 0x31) + // string "14944" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x34) if z.OtherAddressCountry == nil { o = msgp.AppendNil(o) } else { @@ -6927,8 +6927,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000) == 0 { // if not empty - // string "1494531" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x34, 0x35, 0x33, 0x31) + // string "14945" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x35) if z.OtherAddressPostalCode == nil { o = msgp.AppendNil(o) } else { @@ -6936,8 +6936,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000000) == 0 { // if not empty - // string "1494831" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x34, 0x38, 0x33, 0x31) + // string "14948" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x38) if z.OtherAddressPostOfficeBox == nil { o = msgp.AppendNil(o) } else { @@ -6945,8 +6945,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000000) == 0 { // if not empty - // string "1494631" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x34, 0x36, 0x33, 0x31) + // string "14946" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x36) if z.OtherAddressStateOrProvince == nil { o = msgp.AppendNil(o) } else { @@ -6954,8 +6954,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000000) == 0 { // if not empty - // string "1494731" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x34, 0x37, 0x33, 0x31) + // string "14947" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x37) if z.OtherAddressStreet == nil { o = msgp.AppendNil(o) } else { @@ -6963,8 +6963,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000000) == 0 { // if not empty - // string "1487931" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x37, 0x39, 0x33, 0x31) + // string "14879" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x39) if z.OtherTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -6972,8 +6972,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000000) == 0 { // if not empty - // string "1488131" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x38, 0x31, 0x33, 0x31) + // string "14881" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x31) if z.PagerTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -6981,8 +6981,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000000) == 0 { // if not empty - // string "383" - o = append(o, 0xa3, 0x33, 0x38, 0x33) + // string "38" + o = append(o, 0xa2, 0x33, 0x38) if z.Priority == nil { o = msgp.AppendNil(o) } else { @@ -6990,8 +6990,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000000) == 0 { // if not empty - // string "4111" - o = append(o, 0xa4, 0x34, 0x31, 0x31, 0x31) + // string "41" + o = append(o, 0xa2, 0x34, 0x31) if z.ReadReceiptRequested == nil { o = msgp.AppendNil(o) } else { @@ -6999,8 +6999,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000000) == 0 { // if not empty - // string "4264" - o = append(o, 0xa4, 0x34, 0x32, 0x36, 0x34) + // string "42" + o = append(o, 0xa2, 0x34, 0x32) if z.ReceiptTime == nil { o = msgp.AppendNil(o) } else { @@ -7008,8 +7008,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000000) == 0 { // if not empty - // string "11831" - o = append(o, 0xa5, 0x31, 0x31, 0x38, 0x33, 0x31) + // string "118" + o = append(o, 0xa3, 0x31, 0x31, 0x38) if z.ReceivedByEmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -7017,8 +7017,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000000) == 0 { // if not empty - // string "6431" - o = append(o, 0xa4, 0x36, 0x34, 0x33, 0x31) + // string "64" + o = append(o, 0xa2, 0x36, 0x34) if z.ReceivedByName == nil { o = msgp.AppendNil(o) } else { @@ -7026,8 +7026,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000000) == 0 { // if not empty - // string "11931" - o = append(o, 0xa5, 0x31, 0x31, 0x39, 0x33, 0x31) + // string "119" + o = append(o, 0xa3, 0x31, 0x31, 0x39) if z.ReceivedRepresentingAddressType == nil { o = msgp.AppendNil(o) } else { @@ -7035,8 +7035,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000000) == 0 { // if not empty - // string "12031" - o = append(o, 0xa5, 0x31, 0x32, 0x30, 0x33, 0x31) + // string "120" + o = append(o, 0xa3, 0x31, 0x32, 0x30) if z.ReceivedRepresentingEmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -7044,8 +7044,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000000000) == 0 { // if not empty - // string "6831" - o = append(o, 0xa4, 0x36, 0x38, 0x33, 0x31) + // string "68" + o = append(o, 0xa2, 0x36, 0x38) if z.ReceivedRepresentingName == nil { o = msgp.AppendNil(o) } else { @@ -7053,8 +7053,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000000000) == 0 { // if not empty - // string "30933" - o = append(o, 0xa5, 0x33, 0x30, 0x39, 0x33, 0x33) + // string "3093" + o = append(o, 0xa4, 0x33, 0x30, 0x39, 0x33) if z.RecipientType == nil { o = msgp.AppendNil(o) } else { @@ -7062,8 +7062,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000000000) == 0 { // if not empty - // string "310531" - o = append(o, 0xa6, 0x33, 0x31, 0x30, 0x35, 0x33, 0x31) + // string "3105" + o = append(o, 0xa4, 0x33, 0x31, 0x30, 0x35) if z.RemoteMessageTransferAgent == nil { o = msgp.AppendNil(o) } else { @@ -7071,8 +7071,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000000000) == 0 { // if not empty - // string "309511" - o = append(o, 0xa6, 0x33, 0x30, 0x39, 0x35, 0x31, 0x31) + // string "3095" + o = append(o, 0xa4, 0x33, 0x30, 0x39, 0x35) if z.ReplyRequested == nil { o = msgp.AppendNil(o) } else { @@ -7080,8 +7080,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000000000) == 0 { // if not empty - // string "12831" - o = append(o, 0xa5, 0x31, 0x32, 0x38, 0x33, 0x31) + // string "128" + o = append(o, 0xa3, 0x31, 0x32, 0x38) if z.ReportDisposition == nil { o = msgp.AppendNil(o) } else { @@ -7089,8 +7089,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000000000) == 0 { // if not empty - // string "12931" - o = append(o, 0xa5, 0x31, 0x32, 0x39, 0x33, 0x31) + // string "129" + o = append(o, 0xa3, 0x31, 0x32, 0x39) if z.ReportDispositionMode == nil { o = msgp.AppendNil(o) } else { @@ -7098,8 +7098,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000000000) == 0 { // if not empty - // string "2665631" - o = append(o, 0xa7, 0x32, 0x36, 0x36, 0x35, 0x36, 0x33, 0x31) + // string "26656" + o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x35, 0x36) if z.ReportingMessageTransferAgent == nil { o = msgp.AppendNil(o) } else { @@ -7107,8 +7107,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000000000) == 0 { // if not empty - // string "1231664" - o = append(o, 0xa7, 0x31, 0x32, 0x33, 0x31, 0x36, 0x36, 0x34) + // string "12316" + o = append(o, 0xa5, 0x31, 0x32, 0x33, 0x31, 0x36) if z.RetentionDate == nil { o = msgp.AppendNil(o) } else { @@ -7116,8 +7116,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000000000) == 0 { // if not empty - // string "123173" - o = append(o, 0xa6, 0x31, 0x32, 0x33, 0x31, 0x37, 0x33) + // string "12317" + o = append(o, 0xa5, 0x31, 0x32, 0x33, 0x31, 0x37) if z.RetentionFlags == nil { o = msgp.AppendNil(o) } else { @@ -7125,8 +7125,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000000000) == 0 { // if not empty - // string "123143" - o = append(o, 0xa6, 0x31, 0x32, 0x33, 0x31, 0x34, 0x33) + // string "12314" + o = append(o, 0xa5, 0x31, 0x32, 0x33, 0x31, 0x34) if z.RetentionPeriod == nil { o = msgp.AppendNil(o) } else { @@ -7134,8 +7134,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000000000) == 0 { // if not empty - // string "361511" - o = append(o, 0xa6, 0x33, 0x36, 0x31, 0x35, 0x31, 0x31) + // string "3615" + o = append(o, 0xa4, 0x33, 0x36, 0x31, 0x35) if z.RtfInSync == nil { o = msgp.AppendNil(o) } else { @@ -7143,8 +7143,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000000000) == 0 { // if not empty - // string "310231" - o = append(o, 0xa6, 0x33, 0x31, 0x30, 0x32, 0x33, 0x31) + // string "3102" + o = append(o, 0xa4, 0x33, 0x31, 0x30, 0x32) if z.SenderAddressType == nil { o = msgp.AppendNil(o) } else { @@ -7152,8 +7152,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000000000000) == 0 { // if not empty - // string "310331" - o = append(o, 0xa6, 0x33, 0x31, 0x30, 0x33, 0x33, 0x31) + // string "3103" + o = append(o, 0xa4, 0x33, 0x31, 0x30, 0x33) if z.SenderEmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -7161,8 +7161,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000000000000) == 0 { // if not empty - // string "165053" - o = append(o, 0xa6, 0x31, 0x36, 0x35, 0x30, 0x35, 0x33) + // string "16505" + o = append(o, 0xa5, 0x31, 0x36, 0x35, 0x30, 0x35) if z.SenderIdStatus == nil { o = msgp.AppendNil(o) } else { @@ -7170,8 +7170,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000000000000) == 0 { // if not empty - // string "309831" - o = append(o, 0xa6, 0x33, 0x30, 0x39, 0x38, 0x33, 0x31) + // string "3098" + o = append(o, 0xa4, 0x33, 0x30, 0x39, 0x38) if z.SenderName == nil { o = msgp.AppendNil(o) } else { @@ -7179,8 +7179,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000000000000) == 0 { // if not empty - // string "149613" - o = append(o, 0xa6, 0x31, 0x34, 0x39, 0x36, 0x31, 0x33) + // string "14961" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x36, 0x31) if z.SendInternetEncoding == nil { o = msgp.AppendNil(o) } else { @@ -7188,8 +7188,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000000000000) == 0 { // if not empty - // string "1491211" - o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x31, 0x32, 0x31, 0x31) + // string "14912" + o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x32) if z.SendRichInfo == nil { o = msgp.AppendNil(o) } else { @@ -7197,8 +7197,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000000000000) == 0 { // if not empty - // string "543" - o = append(o, 0xa3, 0x35, 0x34, 0x33) + // string "54" + o = append(o, 0xa2, 0x35, 0x34) if z.Sensitivity == nil { o = msgp.AppendNil(o) } else { @@ -7206,8 +7206,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000000000000) == 0 { // if not empty - // string "10031" - o = append(o, 0xa5, 0x31, 0x30, 0x30, 0x33, 0x31) + // string "100" + o = append(o, 0xa3, 0x31, 0x30, 0x30) if z.SentRepresentingAddressType == nil { o = msgp.AppendNil(o) } else { @@ -7215,8 +7215,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x1) == 0 { // if not empty - // string "10131" - o = append(o, 0xa5, 0x31, 0x30, 0x31, 0x33, 0x31) + // string "101" + o = append(o, 0xa3, 0x31, 0x30, 0x31) if z.SentRepresentingEmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -7224,8 +7224,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x2) == 0 { // if not empty - // string "6631" - o = append(o, 0xa4, 0x36, 0x36, 0x33, 0x31) + // string "66" + o = append(o, 0xa2, 0x36, 0x36) if z.SentRepresentingName == nil { o = msgp.AppendNil(o) } else { @@ -7233,8 +7233,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x4) == 0 { // if not empty - // string "1484631" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x34, 0x36, 0x33, 0x31) + // string "14846" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x34, 0x36) if z.SmtpAddress == nil { o = msgp.AppendNil(o) } else { @@ -7242,8 +7242,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x8) == 0 { // if not empty - // string "5531" - o = append(o, 0xa4, 0x35, 0x35, 0x33, 0x31) + // string "55" + o = append(o, 0xa2, 0x35, 0x35) if z.Subject == nil { o = msgp.AppendNil(o) } else { @@ -7251,8 +7251,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x10) == 0 { // if not empty - // string "6131" - o = append(o, 0xa4, 0x36, 0x31, 0x33, 0x31) + // string "61" + o = append(o, 0xa2, 0x36, 0x31) if z.SubjectPrefix == nil { o = msgp.AppendNil(o) } else { @@ -7260,8 +7260,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x20) == 0 { // if not empty - // string "309931" - o = append(o, 0xa6, 0x33, 0x30, 0x39, 0x39, 0x33, 0x31) + // string "3099" + o = append(o, 0xa4, 0x33, 0x30, 0x39, 0x39) if z.SupplementaryInfo == nil { o = msgp.AppendNil(o) } else { @@ -7269,8 +7269,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x40) == 0 { // if not empty - // string "1488031" - o = append(o, 0xa7, 0x31, 0x34, 0x38, 0x38, 0x30, 0x33, 0x31) + // string "14880" + o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x30) if z.TransmittableDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -7278,8 +7278,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x80) == 0 { // if not empty - // string "12531" - o = append(o, 0xa5, 0x31, 0x32, 0x35, 0x33, 0x31) + // string "125" + o = append(o, 0xa3, 0x31, 0x32, 0x35) if z.TransportMessageHeaders == nil { o = msgp.AppendNil(o) } else { @@ -7307,7 +7307,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "2673063": + case "267306": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7324,7 +7324,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26736531": + case "267365": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7341,7 +7341,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26762231": + case "267622": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7358,7 +7358,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26762331": + case "267623": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7375,7 +7375,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26762431": + case "267624": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7392,7 +7392,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26762611": + case "267626": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7409,7 +7409,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26762111": + case "267621": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7426,7 +7426,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26730364": + case "267303": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7443,7 +7443,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26730264": + case "267302": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7460,7 +7460,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2674263": + case "267426": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7477,7 +7477,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26742831": + case "267428": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7494,7 +7494,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26752031": + case "267520": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7511,7 +7511,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26752131": + case "267521": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7528,7 +7528,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26727011": + case "267270": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7545,7 +7545,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26733231": + case "267332": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7732,7 +7732,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1229031": + case "12290": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7749,7 +7749,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "211": + case "2": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7766,7 +7766,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1231964": + case "12319": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7783,7 +7783,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "123183": + case "12318": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7800,7 +7800,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1489631": + case "14896": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7817,7 +7817,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1489431": + case "14894": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7834,7 +7834,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "163513": + case "16351": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7851,7 +7851,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "42463": + case "4246": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7868,7 +7868,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "409631": + case "4096": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7885,7 +7885,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "411631": + case "4116": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7902,7 +7902,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "411531": + case "4115": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7919,7 +7919,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "5764": + case "57": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7936,7 +7936,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "165023": + case "16502": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7953,7 +7953,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "11231": + case "112": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7970,7 +7970,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1229564": + case "12295": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7987,7 +7987,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1637631": + case "16376": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8004,7 +8004,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1664": + case "16": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8021,7 +8021,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "358631": + case "3586": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8038,7 +8038,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "358731": + case "3587": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8055,7 +8055,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "358831": + case "3588": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8072,7 +8072,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "42243": + case "4224": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8089,7 +8089,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "233": + case "23": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8106,7 +8106,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1485831": + case "14858": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8123,7 +8123,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "416231": + case "4162": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8140,7 +8140,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "227863": + case "22786": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8157,7 +8157,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "414931": + case "4149": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8174,7 +8174,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "415331": + case "4153": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8191,7 +8191,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1489331": + case "14893": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8208,7 +8208,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1485931": + case "14859": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8225,7 +8225,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1486031": + case "14860": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8242,7 +8242,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1229664": + case "12296": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8259,7 +8259,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1488731": + case "14887": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8276,7 +8276,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1486131": + case "14861": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8293,7 +8293,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1492631": + case "14926": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8310,7 +8310,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "8811": + case "88": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8327,7 +8327,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "359064": + case "3590": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8344,7 +8344,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35913": + case "3591": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8361,7 +8361,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1486331": + case "14863": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8378,7 +8378,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "8911": + case "89": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8395,7 +8395,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35923": + case "3592": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8412,7 +8412,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "359220": + case "3592": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8429,7 +8429,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "36073": + case "3607": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8446,7 +8446,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "8711": + case "87": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8463,7 +8463,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1491631": + case "14916": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8480,7 +8480,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1487631": + case "14876": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8497,7 +8497,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1492731": + case "14927": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8514,7 +8514,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "30773": + case "3077": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8531,7 +8531,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "30763": + case "3076": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8548,7 +8548,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "30783": + case "3078": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8565,7 +8565,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "361331": + case "3613": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8582,7 +8582,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1487331": + case "14873": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8599,7 +8599,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1486431": + case "14864": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8616,7 +8616,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "7731": + case "77": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8633,7 +8633,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "8564": + case "85": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8650,7 +8650,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "11431": + case "114": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8667,7 +8667,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "11531": + case "115": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8684,7 +8684,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "11631": + case "116": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8701,7 +8701,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "7531": + case "75": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8718,7 +8718,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "10231": + case "102": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8735,7 +8735,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "10331": + case "103": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8752,7 +8752,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "9031": + case "90": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8769,7 +8769,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "463": + case "46": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8786,7 +8786,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "10431": + case "104": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8803,7 +8803,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "10531": + case "105": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8820,7 +8820,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "9331": + case "93": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8837,7 +8837,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "7331": + case "73": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8854,7 +8854,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "7864": + case "78": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8871,7 +8871,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3511": + case "35": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8888,7 +8888,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "308011": + case "3080": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8905,7 +8905,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1494331": + case "14943": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8922,7 +8922,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1494431": + case "14944": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8939,7 +8939,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1494531": + case "14945": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8956,7 +8956,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1494831": + case "14948": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8973,7 +8973,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1494631": + case "14946": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8990,7 +8990,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1494731": + case "14947": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9007,7 +9007,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1487931": + case "14879": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9024,7 +9024,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1488131": + case "14881": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9041,7 +9041,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "383": + case "38": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9058,7 +9058,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4111": + case "41": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9075,7 +9075,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4264": + case "42": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9092,7 +9092,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "11831": + case "118": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9109,7 +9109,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "6431": + case "64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9126,7 +9126,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "11931": + case "119": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9143,7 +9143,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "12031": + case "120": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9160,7 +9160,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "6831": + case "68": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9177,7 +9177,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "30933": + case "3093": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9194,7 +9194,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "310531": + case "3105": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9211,7 +9211,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "309511": + case "3095": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9228,7 +9228,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "12831": + case "128": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9245,7 +9245,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "12931": + case "129": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9262,7 +9262,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2665631": + case "26656": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9279,7 +9279,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1231664": + case "12316": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9296,7 +9296,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "123173": + case "12317": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9313,7 +9313,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "123143": + case "12314": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9330,7 +9330,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "361511": + case "3615": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9347,7 +9347,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "310231": + case "3102": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9364,7 +9364,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "310331": + case "3103": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9381,7 +9381,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "165053": + case "16505": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9398,7 +9398,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "309831": + case "3098": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9415,7 +9415,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "149613": + case "14961": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9432,7 +9432,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1491211": + case "14912": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9449,7 +9449,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "543": + case "54": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9466,7 +9466,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "10031": + case "100": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9483,7 +9483,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "10131": + case "101": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9500,7 +9500,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "6631": + case "66": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9517,7 +9517,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1484631": + case "14846": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9534,7 +9534,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "5531": + case "55": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9551,7 +9551,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "6131": + case "61": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9568,7 +9568,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "309931": + case "3099": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9585,7 +9585,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1488031": + case "14880": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9602,7 +9602,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "12531": + case "125": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9633,91 +9633,91 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Message) Msgsize() (s int) { - s = 3 + 8 + s = 3 + 7 if z.AutoProcessState == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.Billing == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Billing) } - s += 9 + s += 7 if z.Classification == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Classification) } - s += 9 + s += 7 if z.ClassificationDescription == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ClassificationDescription) } - s += 9 + s += 7 if z.ClassificationGuid == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ClassificationGuid) } - s += 9 + s += 7 if z.ClassificationKeep == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.Classified == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.CommonEnd == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.CommonStart == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.CurrentVersion == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.CurrentVersionName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CurrentVersionName) } - s += 9 + s += 7 if z.InternetAccountName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.InternetAccountName) } - s += 9 + s += 7 if z.InternetAccountStamp == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.InternetAccountStamp) } - s += 9 + s += 7 if z.Private == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.VerbResponse == nil { s += msgp.NilSize } else { @@ -9783,667 +9783,667 @@ func (z *Message) Msgsize() (s int) { } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressType) } - s += 4 + s += 2 if z.AlternateRecipientAllowed == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.ArchiveDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 6 if z.ArchivePeriod == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.Assistant == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Assistant) } - s += 8 + s += 6 if z.AssistantTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AssistantTelephoneNumber) } - s += 7 + s += 6 if z.AutoResponseSuppress == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 5 if z.BlockStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 5 if z.Body == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Body) } - s += 7 + s += 5 if z.BodyContentLocation == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.BodyContentLocation) } - s += 7 + s += 5 if z.BodyHtml == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.BodyHtml) } - s += 5 + s += 3 if z.ClientSubmitTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 6 if z.ContentFilterSpamConfidenceLevel == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 4 if z.ConversationTopic == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ConversationTopic) } - s += 8 + s += 6 if z.CreationTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 6 if z.CreatorName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CreatorName) } - s += 5 + s += 3 if z.DeliverTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 5 if z.DisplayBcc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.DisplayBcc) } - s += 7 + s += 5 if z.DisplayCc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.DisplayCc) } - s += 7 + s += 5 if z.DisplayTo == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.DisplayTo) } - s += 6 + s += 5 if z.IconIndex == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 3 if z.Importance == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.Initials == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Initials) } - s += 7 + s += 5 if z.InReplyToId == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.InReplyToId) } - s += 7 + s += 6 if z.InternetMailOverrideFormat == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 5 if z.InternetMessageId == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.InternetMessageId) } - s += 7 + s += 5 if z.InternetReferences == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.InternetReferences) } - s += 8 + s += 6 if z.IsdnNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.IsdnNumber) } - s += 8 + s += 6 if z.Keyword == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Keyword) } - s += 8 + s += 6 if z.Language == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Language) } - s += 8 + s += 6 if z.LastModificationTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 6 if z.Locality == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Locality) } - s += 8 + s += 6 if z.Location == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Location) } - s += 8 + s += 6 if z.ManagerName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ManagerName) } - s += 5 + s += 3 if z.MessageCcMe == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 5 if z.MessageDeliveryTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 6 + s += 5 if z.MessageFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.MessageHandlingSystemCommonName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.MessageHandlingSystemCommonName) } - s += 5 + s += 3 if z.MessageRecipientMe == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 5 if z.MessageSize == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 5 if z.MessageSizeExtended == nil { s += msgp.NilSize } else { s += msgp.Float64Size } - s += 6 + s += 5 if z.MessageStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 3 if z.MessageToMe == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.MiddleName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.MiddleName) } - s += 8 + s += 6 if z.MobileTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.MobileTelephoneNumber) } - s += 8 + s += 6 if z.Nickname == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Nickname) } - s += 6 + s += 5 if z.NonDeliveryReportDiagCode == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 5 if z.NonDeliveryReportReasonCode == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 5 if z.NonDeliveryReportStatusCode == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 5 if z.NormalizedSubject == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.NormalizedSubject) } - s += 8 + s += 6 if z.OfficeLocation == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OfficeLocation) } - s += 8 + s += 6 if z.OrganizationalIdNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OrganizationalIdNumber) } - s += 5 + s += 3 if z.OriginalAuthorName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalAuthorName) } - s += 5 + s += 3 if z.OriginalDeliveryTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 6 + s += 4 if z.OriginalDisplayBcc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalDisplayBcc) } - s += 6 + s += 4 if z.OriginalDisplayCc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalDisplayCc) } - s += 6 + s += 4 if z.OriginalDisplayTo == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalDisplayTo) } - s += 5 + s += 3 if z.OriginalMessageClass == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalMessageClass) } - s += 6 + s += 4 if z.OriginalSenderAddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSenderAddressType) } - s += 6 + s += 4 if z.OriginalSenderEmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSenderEmailAddress) } - s += 5 + s += 3 if z.OriginalSenderName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSenderName) } - s += 4 + s += 3 if z.OriginalSensitivity == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 4 if z.OriginalSentRepresentingAddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSentRepresentingAddressType) } - s += 6 + s += 4 if z.OriginalSentRepresentingEmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSentRepresentingEmailAddress) } - s += 5 + s += 3 if z.OriginalSentRepresentingName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSentRepresentingName) } - s += 5 + s += 3 if z.OriginalSubject == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSubject) } - s += 5 + s += 3 if z.OriginalSubmitTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 5 + s += 3 if z.OriginatorDeliveryReportRequested == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 5 if z.OriginatorNonDeliveryReportRequested == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 6 if z.OtherAddressCity == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressCity) } - s += 8 + s += 6 if z.OtherAddressCountry == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressCountry) } - s += 8 + s += 6 if z.OtherAddressPostalCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressPostalCode) } - s += 8 + s += 6 if z.OtherAddressPostOfficeBox == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressPostOfficeBox) } - s += 8 + s += 6 if z.OtherAddressStateOrProvince == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressStateOrProvince) } - s += 8 + s += 6 if z.OtherAddressStreet == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressStreet) } - s += 8 + s += 6 if z.OtherTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherTelephoneNumber) } - s += 8 + s += 6 if z.PagerTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PagerTelephoneNumber) } - s += 4 + s += 3 if z.Priority == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 3 if z.ReadReceiptRequested == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 5 + s += 3 if z.ReceiptTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 6 + s += 4 if z.ReceivedByEmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReceivedByEmailAddress) } - s += 5 + s += 3 if z.ReceivedByName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReceivedByName) } - s += 6 + s += 4 if z.ReceivedRepresentingAddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReceivedRepresentingAddressType) } - s += 6 + s += 4 if z.ReceivedRepresentingEmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReceivedRepresentingEmailAddress) } - s += 5 + s += 3 if z.ReceivedRepresentingName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReceivedRepresentingName) } - s += 6 + s += 5 if z.RecipientType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 5 if z.RemoteMessageTransferAgent == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.RemoteMessageTransferAgent) } - s += 7 + s += 5 if z.ReplyRequested == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 4 if z.ReportDisposition == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReportDisposition) } - s += 6 + s += 4 if z.ReportDispositionMode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReportDispositionMode) } - s += 8 + s += 6 if z.ReportingMessageTransferAgent == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReportingMessageTransferAgent) } - s += 8 + s += 6 if z.RetentionDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 6 if z.RetentionFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 6 if z.RetentionPeriod == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 5 if z.RtfInSync == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 5 if z.SenderAddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SenderAddressType) } - s += 7 + s += 5 if z.SenderEmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SenderEmailAddress) } - s += 7 + s += 6 if z.SenderIdStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 5 if z.SenderName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SenderName) } - s += 7 + s += 6 if z.SendInternetEncoding == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.SendRichInfo == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 4 + s += 3 if z.Sensitivity == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 4 if z.SentRepresentingAddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SentRepresentingAddressType) } - s += 6 + s += 4 if z.SentRepresentingEmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SentRepresentingEmailAddress) } - s += 5 + s += 3 if z.SentRepresentingName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SentRepresentingName) } - s += 8 + s += 6 if z.SmtpAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SmtpAddress) } - s += 5 + s += 3 if z.Subject == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Subject) } - s += 5 + s += 3 if z.SubjectPrefix == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SubjectPrefix) } - s += 7 + s += 5 if z.SupplementaryInfo == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SupplementaryInfo) } - s += 8 + s += 6 if z.TransmittableDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TransmittableDisplayName) } - s += 6 + s += 4 if z.TransportMessageHeaders == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/note.pb.go b/pkg/properties/note.pb.go index 732cb16..d51cbe8 100644 --- a/pkg/properties/note.pb.go +++ b/pkg/properties/note.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: note.proto package properties @@ -44,15 +44,15 @@ type Note struct { unknownFields protoimpl.UnknownFields // Specifies the suggested background color of the Note object. - NoteColor *int32 `protobuf:"varint,1,opt,name=note_color,json=noteColor,proto3,oneof" json:"note_color,omitempty" msg:"2734083,omitempty"` + NoteColor *int32 `protobuf:"varint,1,opt,name=note_color,json=noteColor,proto3,oneof" json:"note_color,omitempty" msg:"273408,omitempty" type:"3,omitempty"` // Specifies the height of the visible message window in pixels. - NoteHeight *int32 `protobuf:"varint,2,opt,name=note_height,json=noteHeight,proto3,oneof" json:"note_height,omitempty" msg:"2734113,omitempty"` + NoteHeight *int32 `protobuf:"varint,2,opt,name=note_height,json=noteHeight,proto3,oneof" json:"note_height,omitempty" msg:"273411,omitempty" type:"3,omitempty"` // Specifies the width of the visible message window in pixels. - NoteWidth *int32 `protobuf:"varint,3,opt,name=note_width,json=noteWidth,proto3,oneof" json:"note_width,omitempty" msg:"2734103,omitempty"` + NoteWidth *int32 `protobuf:"varint,3,opt,name=note_width,json=noteWidth,proto3,oneof" json:"note_width,omitempty" msg:"273410,omitempty" type:"3,omitempty"` // Specifies the distance, in pixels, from the left edge of the screen that a user interface displays a Note object. - NoteX *int32 `protobuf:"varint,4,opt,name=note_x,json=noteX,proto3,oneof" json:"note_x,omitempty" msg:"2734123,omitempty"` + NoteX *int32 `protobuf:"varint,4,opt,name=note_x,json=noteX,proto3,oneof" json:"note_x,omitempty" msg:"273412,omitempty" type:"3,omitempty"` // Specifies the distance, in pixels, from the top edge of the screen that a user interface displays a Note object. - NoteY *int32 `protobuf:"varint,5,opt,name=note_y,json=noteY,proto3,oneof" json:"note_y,omitempty" msg:"2734133,omitempty"` + NoteY *int32 `protobuf:"varint,5,opt,name=note_y,json=noteY,proto3,oneof" json:"note_y,omitempty" msg:"273413,omitempty" type:"3,omitempty"` } func (x *Note) Reset() { diff --git a/pkg/properties/note.pb_gen.go b/pkg/properties/note.pb_gen.go index 89802d6..93db9e4 100644 --- a/pkg/properties/note.pb_gen.go +++ b/pkg/properties/note.pb_gen.go @@ -24,7 +24,7 @@ func (z *Note) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "2734083": + case "273408": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Note) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2734113": + case "273411": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Note) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2734103": + case "273410": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Note) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2734123": + case "273412": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Note) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2734133": + case "273413": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -159,8 +159,8 @@ func (z *Note) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // write "2734083" - err = en.Append(0xa7, 0x32, 0x37, 0x33, 0x34, 0x30, 0x38, 0x33) + // write "273408" + err = en.Append(0xa6, 0x32, 0x37, 0x33, 0x34, 0x30, 0x38) if err != nil { return } @@ -178,8 +178,8 @@ func (z *Note) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // write "2734113" - err = en.Append(0xa7, 0x32, 0x37, 0x33, 0x34, 0x31, 0x31, 0x33) + // write "273411" + err = en.Append(0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x31) if err != nil { return } @@ -197,8 +197,8 @@ func (z *Note) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // write "2734103" - err = en.Append(0xa7, 0x32, 0x37, 0x33, 0x34, 0x31, 0x30, 0x33) + // write "273410" + err = en.Append(0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x30) if err != nil { return } @@ -216,8 +216,8 @@ func (z *Note) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // write "2734123" - err = en.Append(0xa7, 0x32, 0x37, 0x33, 0x34, 0x31, 0x32, 0x33) + // write "273412" + err = en.Append(0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x32) if err != nil { return } @@ -235,8 +235,8 @@ func (z *Note) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "2734133" - err = en.Append(0xa7, 0x32, 0x37, 0x33, 0x34, 0x31, 0x33, 0x33) + // write "273413" + err = en.Append(0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x33) if err != nil { return } @@ -288,8 +288,8 @@ func (z *Note) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // string "2734083" - o = append(o, 0xa7, 0x32, 0x37, 0x33, 0x34, 0x30, 0x38, 0x33) + // string "273408" + o = append(o, 0xa6, 0x32, 0x37, 0x33, 0x34, 0x30, 0x38) if z.NoteColor == nil { o = msgp.AppendNil(o) } else { @@ -297,8 +297,8 @@ func (z *Note) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // string "2734113" - o = append(o, 0xa7, 0x32, 0x37, 0x33, 0x34, 0x31, 0x31, 0x33) + // string "273411" + o = append(o, 0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x31) if z.NoteHeight == nil { o = msgp.AppendNil(o) } else { @@ -306,8 +306,8 @@ func (z *Note) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // string "2734103" - o = append(o, 0xa7, 0x32, 0x37, 0x33, 0x34, 0x31, 0x30, 0x33) + // string "273410" + o = append(o, 0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x30) if z.NoteWidth == nil { o = msgp.AppendNil(o) } else { @@ -315,8 +315,8 @@ func (z *Note) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // string "2734123" - o = append(o, 0xa7, 0x32, 0x37, 0x33, 0x34, 0x31, 0x32, 0x33) + // string "273412" + o = append(o, 0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x32) if z.NoteX == nil { o = msgp.AppendNil(o) } else { @@ -324,8 +324,8 @@ func (z *Note) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "2734133" - o = append(o, 0xa7, 0x32, 0x37, 0x33, 0x34, 0x31, 0x33, 0x33) + // string "273413" + o = append(o, 0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x33) if z.NoteY == nil { o = msgp.AppendNil(o) } else { @@ -353,7 +353,7 @@ func (z *Note) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "2734083": + case "273408": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -370,7 +370,7 @@ func (z *Note) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2734113": + case "273411": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -387,7 +387,7 @@ func (z *Note) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2734103": + case "273410": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -404,7 +404,7 @@ func (z *Note) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2734123": + case "273412": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -421,7 +421,7 @@ func (z *Note) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2734133": + case "273413": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -452,31 +452,31 @@ func (z *Note) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Note) Msgsize() (s int) { - s = 1 + 8 + s = 1 + 7 if z.NoteColor == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.NoteHeight == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.NoteWidth == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.NoteX == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.NoteY == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/rss.pb.go b/pkg/properties/rss.pb.go index 6e87cd9..542b780 100644 --- a/pkg/properties/rss.pb.go +++ b/pkg/properties/rss.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: rss.proto package properties @@ -44,19 +44,19 @@ type RSS struct { unknownFields protoimpl.UnknownFields // Contains the contents of the title field from the XML of the Atom feed or RSS channel. - PostRssChannel *string `protobuf:"bytes,1,opt,name=post_rss_channel,json=postRssChannel,proto3,oneof" json:"post_rss_channel,omitempty" msg:"27136431,omitempty"` + PostRssChannel *string `protobuf:"bytes,1,opt,name=post_rss_channel,json=postRssChannel,proto3,oneof" json:"post_rss_channel,omitempty" msg:"271364,omitempty" type:"31,omitempty"` // Contains the URL of the RSS or Atom feed from which the XML file came. - PostRssChannelLink *string `protobuf:"bytes,2,opt,name=post_rss_channel_link,json=postRssChannelLink,proto3,oneof" json:"post_rss_channel_link,omitempty" msg:"27136031,omitempty"` + PostRssChannelLink *string `protobuf:"bytes,2,opt,name=post_rss_channel_link,json=postRssChannelLink,proto3,oneof" json:"post_rss_channel_link,omitempty" msg:"271360,omitempty" type:"31,omitempty"` // Contains a unique identifier for the RSS object. - PostRssItemGuid *string `protobuf:"bytes,3,opt,name=post_rss_item_guid,json=postRssItemGuid,proto3,oneof" json:"post_rss_item_guid,omitempty" msg:"27136331,omitempty"` + PostRssItemGuid *string `protobuf:"bytes,3,opt,name=post_rss_item_guid,json=postRssItemGuid,proto3,oneof" json:"post_rss_item_guid,omitempty" msg:"271363,omitempty" type:"31,omitempty"` // Contains a hash of the feed XML computed by using an implementation-dependent algorithm. - PostRssItemHash *int32 `protobuf:"varint,4,opt,name=post_rss_item_hash,json=postRssItemHash,proto3,oneof" json:"post_rss_item_hash,omitempty" msg:"2713623,omitempty"` + PostRssItemHash *int32 `protobuf:"varint,4,opt,name=post_rss_item_hash,json=postRssItemHash,proto3,oneof" json:"post_rss_item_hash,omitempty" msg:"271362,omitempty" type:"3,omitempty"` // Contains the URL of the link from an RSS or Atom item. - PostRssItemLink *string `protobuf:"bytes,5,opt,name=post_rss_item_link,json=postRssItemLink,proto3,oneof" json:"post_rss_item_link,omitempty" msg:"27136131,omitempty"` + PostRssItemLink *string `protobuf:"bytes,5,opt,name=post_rss_item_link,json=postRssItemLink,proto3,oneof" json:"post_rss_item_link,omitempty" msg:"271361,omitempty" type:"31,omitempty"` // Contains the item element and all of its sub-elements from an RSS feed, or the entry element and all of its sub-elements from an Atom feed. - PostRssItemXml *string `protobuf:"bytes,6,opt,name=post_rss_item_xml,json=postRssItemXml,proto3,oneof" json:"post_rss_item_xml,omitempty" msg:"27136531,omitempty"` + PostRssItemXml *string `protobuf:"bytes,6,opt,name=post_rss_item_xml,json=postRssItemXml,proto3,oneof" json:"post_rss_item_xml,omitempty" msg:"271365,omitempty" type:"31,omitempty"` // Contains the user's preferred name for the RSS or Atom subscription. - PostRssSubscription *string `protobuf:"bytes,7,opt,name=post_rss_subscription,json=postRssSubscription,proto3,oneof" json:"post_rss_subscription,omitempty" msg:"27136631,omitempty"` + PostRssSubscription *string `protobuf:"bytes,7,opt,name=post_rss_subscription,json=postRssSubscription,proto3,oneof" json:"post_rss_subscription,omitempty" msg:"271366,omitempty" type:"31,omitempty"` } func (x *RSS) Reset() { diff --git a/pkg/properties/rss.pb_gen.go b/pkg/properties/rss.pb_gen.go index 9aa6c15..44900f7 100644 --- a/pkg/properties/rss.pb_gen.go +++ b/pkg/properties/rss.pb_gen.go @@ -24,7 +24,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "27136431": + case "271364": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27136031": + case "271360": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27136331": + case "271363": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2713623": + case "271362": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27136131": + case "271361": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27136531": + case "271365": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27136631": + case "271366": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -203,8 +203,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // write "27136431" - err = en.Append(0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x34, 0x33, 0x31) + // write "271364" + err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x34) if err != nil { return } @@ -222,8 +222,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // write "27136031" - err = en.Append(0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x30, 0x33, 0x31) + // write "271360" + err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x30) if err != nil { return } @@ -241,8 +241,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // write "27136331" - err = en.Append(0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x33, 0x33, 0x31) + // write "271363" + err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x33) if err != nil { return } @@ -260,8 +260,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // write "2713623" - err = en.Append(0xa7, 0x32, 0x37, 0x31, 0x33, 0x36, 0x32, 0x33) + // write "271362" + err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x32) if err != nil { return } @@ -279,8 +279,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "27136131" - err = en.Append(0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x31, 0x33, 0x31) + // write "271361" + err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x31) if err != nil { return } @@ -298,8 +298,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // write "27136531" - err = en.Append(0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x35, 0x33, 0x31) + // write "271365" + err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x35) if err != nil { return } @@ -317,8 +317,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // write "27136631" - err = en.Append(0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x36, 0x33, 0x31) + // write "271366" + err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x36) if err != nil { return } @@ -378,8 +378,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // string "27136431" - o = append(o, 0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x34, 0x33, 0x31) + // string "271364" + o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x34) if z.PostRssChannel == nil { o = msgp.AppendNil(o) } else { @@ -387,8 +387,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // string "27136031" - o = append(o, 0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x30, 0x33, 0x31) + // string "271360" + o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x30) if z.PostRssChannelLink == nil { o = msgp.AppendNil(o) } else { @@ -396,8 +396,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // string "27136331" - o = append(o, 0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x33, 0x33, 0x31) + // string "271363" + o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x33) if z.PostRssItemGuid == nil { o = msgp.AppendNil(o) } else { @@ -405,8 +405,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // string "2713623" - o = append(o, 0xa7, 0x32, 0x37, 0x31, 0x33, 0x36, 0x32, 0x33) + // string "271362" + o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x32) if z.PostRssItemHash == nil { o = msgp.AppendNil(o) } else { @@ -414,8 +414,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "27136131" - o = append(o, 0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x31, 0x33, 0x31) + // string "271361" + o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x31) if z.PostRssItemLink == nil { o = msgp.AppendNil(o) } else { @@ -423,8 +423,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // string "27136531" - o = append(o, 0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x35, 0x33, 0x31) + // string "271365" + o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x35) if z.PostRssItemXml == nil { o = msgp.AppendNil(o) } else { @@ -432,8 +432,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // string "27136631" - o = append(o, 0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x36, 0x33, 0x31) + // string "271366" + o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x36) if z.PostRssSubscription == nil { o = msgp.AppendNil(o) } else { @@ -461,7 +461,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "27136431": + case "271364": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -478,7 +478,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27136031": + case "271360": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -495,7 +495,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27136331": + case "271363": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -512,7 +512,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2713623": + case "271362": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -529,7 +529,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27136131": + case "271361": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -546,7 +546,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27136531": + case "271365": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -563,7 +563,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27136631": + case "271366": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -594,43 +594,43 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *RSS) Msgsize() (s int) { - s = 1 + 9 + s = 1 + 7 if z.PostRssChannel == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostRssChannel) } - s += 9 + s += 7 if z.PostRssChannelLink == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostRssChannelLink) } - s += 9 + s += 7 if z.PostRssItemGuid == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostRssItemGuid) } - s += 8 + s += 7 if z.PostRssItemHash == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.PostRssItemLink == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostRssItemLink) } - s += 9 + s += 7 if z.PostRssItemXml == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostRssItemXml) } - s += 9 + s += 7 if z.PostRssSubscription == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/sharing.pb.go b/pkg/properties/sharing.pb.go index bab227e..04456d9 100644 --- a/pkg/properties/sharing.pb.go +++ b/pkg/properties/sharing.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: sharing.proto package properties @@ -44,115 +44,115 @@ type Sharing struct { unknownFields protoimpl.UnknownFields // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingAnonymity *int32 `protobuf:"varint,1,opt,name=sharing_anonymity,json=sharingAnonymity,proto3,oneof" json:"sharing_anonymity,omitempty" msg:"2724253,omitempty"` + SharingAnonymity *int32 `protobuf:"varint,1,opt,name=sharing_anonymity,json=sharingAnonymity,proto3,oneof" json:"sharing_anonymity,omitempty" msg:"272425,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingBrowseUrl *string `protobuf:"bytes,3,opt,name=sharing_browse_url,json=sharingBrowseUrl,proto3,oneof" json:"sharing_browse_url,omitempty" msg:"27254531,omitempty"` + SharingBrowseUrl *string `protobuf:"bytes,3,opt,name=sharing_browse_url,json=sharingBrowseUrl,proto3,oneof" json:"sharing_browse_url,omitempty" msg:"272545,omitempty" type:"31,omitempty"` // Indicates that the Message object relates to a special folder. - SharingCapabilities *int32 `protobuf:"varint,4,opt,name=sharing_capabilities,json=sharingCapabilities,proto3,oneof" json:"sharing_capabilities,omitempty" msg:"2724233,omitempty"` + SharingCapabilities *int32 `protobuf:"varint,4,opt,name=sharing_capabilities,json=sharingCapabilities,proto3,oneof" json:"sharing_capabilities,omitempty" msg:"272423,omitempty" type:"3,omitempty"` // Contains a zero-length string. - SharingConfigurationUrl *string `protobuf:"bytes,5,opt,name=sharing_configuration_url,json=sharingConfigurationUrl,proto3,oneof" json:"sharing_configuration_url,omitempty" msg:"27245231,omitempty"` + SharingConfigurationUrl *string `protobuf:"bytes,5,opt,name=sharing_configuration_url,json=sharingConfigurationUrl,proto3,oneof" json:"sharing_configuration_url,omitempty" msg:"272452,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingDataRangeEnd *int64 `protobuf:"varint,6,opt,name=sharing_data_range_end,json=sharingDataRangeEnd,proto3,oneof" json:"sharing_data_range_end,omitempty" msg:"27251764,omitempty"` + SharingDataRangeEnd *int64 `protobuf:"varint,6,opt,name=sharing_data_range_end,json=sharingDataRangeEnd,proto3,oneof" json:"sharing_data_range_end,omitempty" msg:"272517,omitempty" type:"64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingDataRangeStart *int64 `protobuf:"varint,7,opt,name=sharing_data_range_start,json=sharingDataRangeStart,proto3,oneof" json:"sharing_data_range_start,omitempty" msg:"27251664,omitempty"` + SharingDataRangeStart *int64 `protobuf:"varint,7,opt,name=sharing_data_range_start,json=sharingDataRangeStart,proto3,oneof" json:"sharing_data_range_start,omitempty" msg:"272516,omitempty" type:"64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingDetail *int32 `protobuf:"varint,8,opt,name=sharing_detail,json=sharingDetail,proto3,oneof" json:"sharing_detail,omitempty" msg:"2724593,omitempty"` + SharingDetail *int32 `protobuf:"varint,8,opt,name=sharing_detail,json=sharingDetail,proto3,oneof" json:"sharing_detail,omitempty" msg:"272459,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingExtensionXml *string `protobuf:"bytes,9,opt,name=sharing_extension_xml,json=sharingExtensionXml,proto3,oneof" json:"sharing_extension_xml,omitempty" msg:"27244931,omitempty"` + SharingExtensionXml *string `protobuf:"bytes,9,opt,name=sharing_extension_xml,json=sharingExtensionXml,proto3,oneof" json:"sharing_extension_xml,omitempty" msg:"272449,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingFlags *int32 `protobuf:"varint,11,opt,name=sharing_flags,json=sharingFlags,proto3,oneof" json:"sharing_flags,omitempty" msg:"2723943,omitempty"` + SharingFlags *int32 `protobuf:"varint,11,opt,name=sharing_flags,json=sharingFlags,proto3,oneof" json:"sharing_flags,omitempty" msg:"272394,omitempty" type:"3,omitempty"` // Indicates the type of Sharing Message object. - SharingFlavor *int32 `protobuf:"varint,12,opt,name=sharing_flavor,json=sharingFlavor,proto3,oneof" json:"sharing_flavor,omitempty" msg:"2724243,omitempty"` + SharingFlavor *int32 `protobuf:"varint,12,opt,name=sharing_flavor,json=sharingFlavor,proto3,oneof" json:"sharing_flavor,omitempty" msg:"272424,omitempty" type:"3,omitempty"` // Contains the value of the PidTagDisplayName property (section 2.676) from the Address Book object identified by the PidLidSharingInitiatorEntryId property (section 2.248). - SharingInitiatorName *string `protobuf:"bytes,16,opt,name=sharing_initiator_name,json=sharingInitiatorName,proto3,oneof" json:"sharing_initiator_name,omitempty" msg:"27239131,omitempty"` + SharingInitiatorName *string `protobuf:"bytes,16,opt,name=sharing_initiator_name,json=sharingInitiatorName,proto3,oneof" json:"sharing_initiator_name,omitempty" msg:"272391,omitempty" type:"31,omitempty"` // Contains the value of the PidTagSmtpAddress property (section 2.1020) from the Address Book object identified by the PidLidSharingInitiatorEntryId property (section 2.248). - SharingInitiatorSmtp *string `protobuf:"bytes,17,opt,name=sharing_initiator_smtp,json=sharingInitiatorSmtp,proto3,oneof" json:"sharing_initiator_smtp,omitempty" msg:"27239231,omitempty"` + SharingInitiatorSmtp *string `protobuf:"bytes,17,opt,name=sharing_initiator_smtp,json=sharingInitiatorSmtp,proto3,oneof" json:"sharing_initiator_smtp,omitempty" msg:"272392,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLastAutoSyncTime *int64 `protobuf:"varint,19,opt,name=sharing_last_auto_sync_time,json=sharingLastAutoSyncTime,proto3,oneof" json:"sharing_last_auto_sync_time,omitempty" msg:"27254964,omitempty"` + SharingLastAutoSyncTime *int64 `protobuf:"varint,19,opt,name=sharing_last_auto_sync_time,json=sharingLastAutoSyncTime,proto3,oneof" json:"sharing_last_auto_sync_time,omitempty" msg:"272549,omitempty" type:"64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLastSyncTime *int64 `protobuf:"varint,20,opt,name=sharing_last_sync_time,json=sharingLastSyncTime,proto3,oneof" json:"sharing_last_sync_time,omitempty" msg:"27243164,omitempty"` + SharingLastSyncTime *int64 `protobuf:"varint,20,opt,name=sharing_last_sync_time,json=sharingLastSyncTime,proto3,oneof" json:"sharing_last_sync_time,omitempty" msg:"272431,omitempty" type:"64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLocalComment *string `protobuf:"bytes,21,opt,name=sharing_local_comment,json=sharingLocalComment,proto3,oneof" json:"sharing_local_comment,omitempty" msg:"27252531,omitempty"` + SharingLocalComment *string `protobuf:"bytes,21,opt,name=sharing_local_comment,json=sharingLocalComment,proto3,oneof" json:"sharing_local_comment,omitempty" msg:"272525,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLocalLastModificationTime *int64 `protobuf:"varint,22,opt,name=sharing_local_last_modification_time,json=sharingLocalLastModificationTime,proto3,oneof" json:"sharing_local_last_modification_time,omitempty" msg:"27245164,omitempty"` + SharingLocalLastModificationTime *int64 `protobuf:"varint,22,opt,name=sharing_local_last_modification_time,json=sharingLocalLastModificationTime,proto3,oneof" json:"sharing_local_last_modification_time,omitempty" msg:"272451,omitempty" type:"64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLocalName *string `protobuf:"bytes,23,opt,name=sharing_local_name,json=sharingLocalName,proto3,oneof" json:"sharing_local_name,omitempty" msg:"27239931,omitempty"` + SharingLocalName *string `protobuf:"bytes,23,opt,name=sharing_local_name,json=sharingLocalName,proto3,oneof" json:"sharing_local_name,omitempty" msg:"272399,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLocalPath *string `protobuf:"bytes,24,opt,name=sharing_local_path,json=sharingLocalPath,proto3,oneof" json:"sharing_local_path,omitempty" msg:"27239831,omitempty"` + SharingLocalPath *string `protobuf:"bytes,24,opt,name=sharing_local_path,json=sharingLocalPath,proto3,oneof" json:"sharing_local_path,omitempty" msg:"272398,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLocalStoreUid *string `protobuf:"bytes,25,opt,name=sharing_local_store_uid,json=sharingLocalStoreUid,proto3,oneof" json:"sharing_local_store_uid,omitempty" msg:"27252131,omitempty"` + SharingLocalStoreUid *string `protobuf:"bytes,25,opt,name=sharing_local_store_uid,json=sharingLocalStoreUid,proto3,oneof" json:"sharing_local_store_uid,omitempty" msg:"272521,omitempty" type:"31,omitempty"` // Contains the value of the PidTagContainerClass property (section 2.642) of the folder being shared. - SharingLocalType *string `protobuf:"bytes,26,opt,name=sharing_local_type,json=sharingLocalType,proto3,oneof" json:"sharing_local_type,omitempty" msg:"27242031,omitempty"` + SharingLocalType *string `protobuf:"bytes,26,opt,name=sharing_local_type,json=sharingLocalType,proto3,oneof" json:"sharing_local_type,omitempty" msg:"272420,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLocalUid *string `protobuf:"bytes,27,opt,name=sharing_local_uid,json=sharingLocalUid,proto3,oneof" json:"sharing_local_uid,omitempty" msg:"27241631,omitempty"` + SharingLocalUid *string `protobuf:"bytes,27,opt,name=sharing_local_uid,json=sharingLocalUid,proto3,oneof" json:"sharing_local_uid,omitempty" msg:"272416,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingParticipants *string `protobuf:"bytes,30,opt,name=sharing_participants,json=sharingParticipants,proto3,oneof" json:"sharing_participants,omitempty" msg:"27243031,omitempty"` + SharingParticipants *string `protobuf:"bytes,30,opt,name=sharing_participants,json=sharingParticipants,proto3,oneof" json:"sharing_participants,omitempty" msg:"272430,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingPermissions *int32 `protobuf:"varint,31,opt,name=sharing_permissions,json=sharingPermissions,proto3,oneof" json:"sharing_permissions,omitempty" msg:"2724273,omitempty"` + SharingPermissions *int32 `protobuf:"varint,31,opt,name=sharing_permissions,json=sharingPermissions,proto3,oneof" json:"sharing_permissions,omitempty" msg:"272427,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingProviderExtension *string `protobuf:"bytes,32,opt,name=sharing_provider_extension,json=sharingProviderExtension,proto3,oneof" json:"sharing_provider_extension,omitempty" msg:"27239531,omitempty"` + SharingProviderExtension *string `protobuf:"bytes,32,opt,name=sharing_provider_extension,json=sharingProviderExtension,proto3,oneof" json:"sharing_provider_extension,omitempty" msg:"272395,omitempty" type:"31,omitempty"` // Contains a user-displayable name of the sharing provider identified by the PidLidSharingProviderGuid property (section 2.266). - SharingProviderName *string `protobuf:"bytes,34,opt,name=sharing_provider_name,json=sharingProviderName,proto3,oneof" json:"sharing_provider_name,omitempty" msg:"27238631,omitempty"` + SharingProviderName *string `protobuf:"bytes,34,opt,name=sharing_provider_name,json=sharingProviderName,proto3,oneof" json:"sharing_provider_name,omitempty" msg:"272386,omitempty" type:"31,omitempty"` // Contains a URL related to the sharing provider identified by the PidLidSharingProviderGuid property (section 2.266). - SharingProviderUrl *string `protobuf:"bytes,35,opt,name=sharing_provider_url,json=sharingProviderUrl,proto3,oneof" json:"sharing_provider_url,omitempty" msg:"27238731,omitempty"` + SharingProviderUrl *string `protobuf:"bytes,35,opt,name=sharing_provider_url,json=sharingProviderUrl,proto3,oneof" json:"sharing_provider_url,omitempty" msg:"272387,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRangeEnd *int32 `protobuf:"varint,36,opt,name=sharing_range_end,json=sharingRangeEnd,proto3,oneof" json:"sharing_range_end,omitempty" msg:"2725193,omitempty"` + SharingRangeEnd *int32 `protobuf:"varint,36,opt,name=sharing_range_end,json=sharingRangeEnd,proto3,oneof" json:"sharing_range_end,omitempty" msg:"272519,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRangeStart *int32 `protobuf:"varint,37,opt,name=sharing_range_start,json=sharingRangeStart,proto3,oneof" json:"sharing_range_start,omitempty" msg:"2725183,omitempty"` + SharingRangeStart *int32 `protobuf:"varint,37,opt,name=sharing_range_start,json=sharingRangeStart,proto3,oneof" json:"sharing_range_start,omitempty" msg:"272518,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingReciprocation *int32 `protobuf:"varint,38,opt,name=sharing_reciprocation,json=sharingReciprocation,proto3,oneof" json:"sharing_reciprocation,omitempty" msg:"2724263,omitempty"` + SharingReciprocation *int32 `protobuf:"varint,38,opt,name=sharing_reciprocation,json=sharingReciprocation,proto3,oneof" json:"sharing_reciprocation,omitempty" msg:"272426,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteByteSize *int32 `protobuf:"varint,39,opt,name=sharing_remote_byte_size,json=sharingRemoteByteSize,proto3,oneof" json:"sharing_remote_byte_size,omitempty" msg:"2725233,omitempty"` + SharingRemoteByteSize *int32 `protobuf:"varint,39,opt,name=sharing_remote_byte_size,json=sharingRemoteByteSize,proto3,oneof" json:"sharing_remote_byte_size,omitempty" msg:"272523,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteComment *string `protobuf:"bytes,40,opt,name=sharing_remote_comment,json=sharingRemoteComment,proto3,oneof" json:"sharing_remote_comment,omitempty" msg:"27246331,omitempty"` + SharingRemoteComment *string `protobuf:"bytes,40,opt,name=sharing_remote_comment,json=sharingRemoteComment,proto3,oneof" json:"sharing_remote_comment,omitempty" msg:"272463,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteCrc *int32 `protobuf:"varint,41,opt,name=sharing_remote_crc,json=sharingRemoteCrc,proto3,oneof" json:"sharing_remote_crc,omitempty" msg:"2725243,omitempty"` + SharingRemoteCrc *int32 `protobuf:"varint,41,opt,name=sharing_remote_crc,json=sharingRemoteCrc,proto3,oneof" json:"sharing_remote_crc,omitempty" msg:"272524,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteLastModificationTime *int64 `protobuf:"varint,42,opt,name=sharing_remote_last_modification_time,json=sharingRemoteLastModificationTime,proto3,oneof" json:"sharing_remote_last_modification_time,omitempty" msg:"27245064,omitempty"` + SharingRemoteLastModificationTime *int64 `protobuf:"varint,42,opt,name=sharing_remote_last_modification_time,json=sharingRemoteLastModificationTime,proto3,oneof" json:"sharing_remote_last_modification_time,omitempty" msg:"272450,omitempty" type:"64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteMessageCount *int32 `protobuf:"varint,43,opt,name=sharing_remote_message_count,json=sharingRemoteMessageCount,proto3,oneof" json:"sharing_remote_message_count,omitempty" msg:"2725273,omitempty"` + SharingRemoteMessageCount *int32 `protobuf:"varint,43,opt,name=sharing_remote_message_count,json=sharingRemoteMessageCount,proto3,oneof" json:"sharing_remote_message_count,omitempty" msg:"272527,omitempty" type:"3,omitempty"` // Contains the value of the PidTagDisplayName property (section 2.676) on the folder being shared. - SharingRemoteName *string `protobuf:"bytes,44,opt,name=sharing_remote_name,json=sharingRemoteName,proto3,oneof" json:"sharing_remote_name,omitempty" msg:"27238931,omitempty"` + SharingRemoteName *string `protobuf:"bytes,44,opt,name=sharing_remote_name,json=sharingRemoteName,proto3,oneof" json:"sharing_remote_name,omitempty" msg:"272389,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemotePass *string `protobuf:"bytes,45,opt,name=sharing_remote_pass,json=sharingRemotePass,proto3,oneof" json:"sharing_remote_pass,omitempty" msg:"27239731,omitempty"` + SharingRemotePass *string `protobuf:"bytes,45,opt,name=sharing_remote_pass,json=sharingRemotePass,proto3,oneof" json:"sharing_remote_pass,omitempty" msg:"272397,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemotePath *string `protobuf:"bytes,46,opt,name=sharing_remote_path,json=sharingRemotePath,proto3,oneof" json:"sharing_remote_path,omitempty" msg:"27238831,omitempty"` + SharingRemotePath *string `protobuf:"bytes,46,opt,name=sharing_remote_path,json=sharingRemotePath,proto3,oneof" json:"sharing_remote_path,omitempty" msg:"272388,omitempty" type:"31,omitempty"` // Contains a hexadecimal string representation of the value of the PidTagStoreEntryId property (section 2.1028) on the folder being shared. - SharingRemoteStoreUid *string `protobuf:"bytes,47,opt,name=sharing_remote_store_uid,json=sharingRemoteStoreUid,proto3,oneof" json:"sharing_remote_store_uid,omitempty" msg:"27252031,omitempty"` + SharingRemoteStoreUid *string `protobuf:"bytes,47,opt,name=sharing_remote_store_uid,json=sharingRemoteStoreUid,proto3,oneof" json:"sharing_remote_store_uid,omitempty" msg:"272520,omitempty" type:"31,omitempty"` // Contains the same value as the PidLidSharingLocalType property (section 2.259). - SharingRemoteType *string `protobuf:"bytes,48,opt,name=sharing_remote_type,json=sharingRemoteType,proto3,oneof" json:"sharing_remote_type,omitempty" msg:"27242931,omitempty"` + SharingRemoteType *string `protobuf:"bytes,48,opt,name=sharing_remote_type,json=sharingRemoteType,proto3,oneof" json:"sharing_remote_type,omitempty" msg:"272429,omitempty" type:"31,omitempty"` // Contains the EntryID of the folder being shared. - SharingRemoteUid *string `protobuf:"bytes,49,opt,name=sharing_remote_uid,json=sharingRemoteUid,proto3,oneof" json:"sharing_remote_uid,omitempty" msg:"27239031,omitempty"` + SharingRemoteUid *string `protobuf:"bytes,49,opt,name=sharing_remote_uid,json=sharingRemoteUid,proto3,oneof" json:"sharing_remote_uid,omitempty" msg:"272390,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteUser *string `protobuf:"bytes,50,opt,name=sharing_remote_user,json=sharingRemoteUser,proto3,oneof" json:"sharing_remote_user,omitempty" msg:"27239631,omitempty"` + SharingRemoteUser *string `protobuf:"bytes,50,opt,name=sharing_remote_user,json=sharingRemoteUser,proto3,oneof" json:"sharing_remote_user,omitempty" msg:"272396,omitempty" type:"31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteVersion *string `protobuf:"bytes,51,opt,name=sharing_remote_version,json=sharingRemoteVersion,proto3,oneof" json:"sharing_remote_version,omitempty" msg:"27255531,omitempty"` + SharingRemoteVersion *string `protobuf:"bytes,51,opt,name=sharing_remote_version,json=sharingRemoteVersion,proto3,oneof" json:"sharing_remote_version,omitempty" msg:"272555,omitempty" type:"31,omitempty"` // Contains the time at which the recipient of the sharing request sent a sharing response. - SharingResponseTime *int64 `protobuf:"varint,52,opt,name=sharing_response_time,json=sharingResponseTime,proto3,oneof" json:"sharing_response_time,omitempty" msg:"27245664,omitempty"` + SharingResponseTime *int64 `protobuf:"varint,52,opt,name=sharing_response_time,json=sharingResponseTime,proto3,oneof" json:"sharing_response_time,omitempty" msg:"272456,omitempty" type:"64,omitempty"` // Contains the type of response with which the recipient of the sharing request responded. - SharingResponseType *int32 `protobuf:"varint,53,opt,name=sharing_response_type,json=sharingResponseType,proto3,oneof" json:"sharing_response_type,omitempty" msg:"2724553,omitempty"` + SharingResponseType *int32 `protobuf:"varint,53,opt,name=sharing_response_type,json=sharingResponseType,proto3,oneof" json:"sharing_response_type,omitempty" msg:"272455,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRoamLog *int32 `protobuf:"varint,54,opt,name=sharing_roam_log,json=sharingRoamLog,proto3,oneof" json:"sharing_roam_log,omitempty" msg:"2725263,omitempty"` + SharingRoamLog *int32 `protobuf:"varint,54,opt,name=sharing_roam_log,json=sharingRoamLog,proto3,oneof" json:"sharing_roam_log,omitempty" msg:"272526,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingStart *int64 `protobuf:"varint,55,opt,name=sharing_start,json=sharingStart,proto3,oneof" json:"sharing_start,omitempty" msg:"27245364,omitempty"` + SharingStart *int64 `protobuf:"varint,55,opt,name=sharing_start,json=sharingStart,proto3,oneof" json:"sharing_start,omitempty" msg:"272453,omitempty" type:"64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingStatus *int32 `protobuf:"varint,56,opt,name=sharing_status,json=sharingStatus,proto3,oneof" json:"sharing_status,omitempty" msg:"2723843,omitempty"` + SharingStatus *int32 `protobuf:"varint,56,opt,name=sharing_status,json=sharingStatus,proto3,oneof" json:"sharing_status,omitempty" msg:"272384,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingStop *int64 `protobuf:"varint,57,opt,name=sharing_stop,json=sharingStop,proto3,oneof" json:"sharing_stop,omitempty" msg:"27245464,omitempty"` + SharingStop *int64 `protobuf:"varint,57,opt,name=sharing_stop,json=sharingStop,proto3,oneof" json:"sharing_stop,omitempty" msg:"272454,omitempty" type:"64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingSyncFlags *int32 `protobuf:"varint,58,opt,name=sharing_sync_flags,json=sharingSyncFlags,proto3,oneof" json:"sharing_sync_flags,omitempty" msg:"2725763,omitempty"` + SharingSyncFlags *int32 `protobuf:"varint,58,opt,name=sharing_sync_flags,json=sharingSyncFlags,proto3,oneof" json:"sharing_sync_flags,omitempty" msg:"272576,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingSyncInterval *int32 `protobuf:"varint,59,opt,name=sharing_sync_interval,json=sharingSyncInterval,proto3,oneof" json:"sharing_sync_interval,omitempty" msg:"2724583,omitempty"` + SharingSyncInterval *int32 `protobuf:"varint,59,opt,name=sharing_sync_interval,json=sharingSyncInterval,proto3,oneof" json:"sharing_sync_interval,omitempty" msg:"272458,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingTimeToLive *int32 `protobuf:"varint,60,opt,name=sharing_time_to_live,json=sharingTimeToLive,proto3,oneof" json:"sharing_time_to_live,omitempty" msg:"2724603,omitempty"` + SharingTimeToLive *int32 `protobuf:"varint,60,opt,name=sharing_time_to_live,json=sharingTimeToLive,proto3,oneof" json:"sharing_time_to_live,omitempty" msg:"272460,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingTimeToLiveAuto *int32 `protobuf:"varint,61,opt,name=sharing_time_to_live_auto,json=sharingTimeToLiveAuto,proto3,oneof" json:"sharing_time_to_live_auto,omitempty" msg:"2725503,omitempty"` + SharingTimeToLiveAuto *int32 `protobuf:"varint,61,opt,name=sharing_time_to_live_auto,json=sharingTimeToLiveAuto,proto3,oneof" json:"sharing_time_to_live_auto,omitempty" msg:"272550,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingWorkingHoursDays *int32 `protobuf:"varint,62,opt,name=sharing_working_hours_days,json=sharingWorkingHoursDays,proto3,oneof" json:"sharing_working_hours_days,omitempty" msg:"2725143,omitempty"` + SharingWorkingHoursDays *int32 `protobuf:"varint,62,opt,name=sharing_working_hours_days,json=sharingWorkingHoursDays,proto3,oneof" json:"sharing_working_hours_days,omitempty" msg:"272514,omitempty" type:"3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingWorkingHoursEnd *int64 `protobuf:"varint,63,opt,name=sharing_working_hours_end,json=sharingWorkingHoursEnd,proto3,oneof" json:"sharing_working_hours_end,omitempty" msg:"27251364,omitempty"` + SharingWorkingHoursEnd *int64 `protobuf:"varint,63,opt,name=sharing_working_hours_end,json=sharingWorkingHoursEnd,proto3,oneof" json:"sharing_working_hours_end,omitempty" msg:"272513,omitempty" type:"64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingWorkingHoursStart *int64 `protobuf:"varint,64,opt,name=sharing_working_hours_start,json=sharingWorkingHoursStart,proto3,oneof" json:"sharing_working_hours_start,omitempty" msg:"27251264,omitempty"` + SharingWorkingHoursStart *int64 `protobuf:"varint,64,opt,name=sharing_working_hours_start,json=sharingWorkingHoursStart,proto3,oneof" json:"sharing_working_hours_start,omitempty" msg:"272512,omitempty" type:"64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. XSharingBrowseUrl_ *string `protobuf:"bytes,66,opt,name=x_sharing_browse_url,json=xSharingBrowseUrl,proto3,oneof" json:"x_sharing_browse_url,omitempty"` // Contains a string representation of the value of the PidLidSharingCapabilities property (section 2.237). diff --git a/pkg/properties/sharing.pb_gen.go b/pkg/properties/sharing.pb_gen.go index 8d09500..9de35a9 100644 --- a/pkg/properties/sharing.pb_gen.go +++ b/pkg/properties/sharing.pb_gen.go @@ -24,7 +24,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "2724253": + case "272425": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27254531": + case "272545": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2724233": + case "272423": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27245231": + case "272452": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27251764": + case "272517": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27251664": + case "272516": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2724593": + case "272459": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27244931": + case "272449": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2723943": + case "272394": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2724243": + case "272424": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27239131": + case "272391": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27239231": + case "272392": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27254964": + case "272549": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27243164": + case "272431": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27252531": + case "272525": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -294,7 +294,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27245164": + case "272451": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -312,7 +312,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27239931": + case "272399": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -330,7 +330,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27239831": + case "272398": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -348,7 +348,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27252131": + case "272521": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -366,7 +366,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27242031": + case "272420": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -384,7 +384,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27241631": + case "272416": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -402,7 +402,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27243031": + case "272430": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -420,7 +420,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2724273": + case "272427": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -438,7 +438,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27239531": + case "272395": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -456,7 +456,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27238631": + case "272386": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -474,7 +474,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27238731": + case "272387": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -492,7 +492,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2725193": + case "272519": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -510,7 +510,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2725183": + case "272518": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -528,7 +528,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2724263": + case "272426": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -546,7 +546,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2725233": + case "272523": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -564,7 +564,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27246331": + case "272463": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -582,7 +582,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2725243": + case "272524": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -600,7 +600,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27245064": + case "272450": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -618,7 +618,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2725273": + case "272527": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -636,7 +636,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27238931": + case "272389": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -654,7 +654,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27239731": + case "272397": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -672,7 +672,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27238831": + case "272388": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -690,7 +690,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27252031": + case "272520": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -708,7 +708,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27242931": + case "272429": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -726,7 +726,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27239031": + case "272390": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -744,7 +744,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27239631": + case "272396": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -762,7 +762,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27255531": + case "272555": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -780,7 +780,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27245664": + case "272456": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -798,7 +798,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2724553": + case "272455": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -816,7 +816,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2725263": + case "272526": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -834,7 +834,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27245364": + case "272453": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -852,7 +852,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2723843": + case "272384": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -870,7 +870,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27245464": + case "272454": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -888,7 +888,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2725763": + case "272576": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -906,7 +906,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2724583": + case "272458": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -924,7 +924,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2724603": + case "272460": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -942,7 +942,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2725503": + case "272550": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -960,7 +960,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2725143": + case "272514": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -978,7 +978,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27251364": + case "272513": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -996,7 +996,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "27251264": + case "272512": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1529,8 +1529,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // write "2724253" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x34, 0x32, 0x35, 0x33) + // write "272425" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x35) if err != nil { return } @@ -1548,8 +1548,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // write "27254531" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x34, 0x35, 0x33, 0x31) + // write "272545" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x34, 0x35) if err != nil { return } @@ -1567,8 +1567,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // write "2724233" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x34, 0x32, 0x33, 0x33) + // write "272423" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x33) if err != nil { return } @@ -1586,8 +1586,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // write "27245231" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x32, 0x33, 0x31) + // write "272452" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x32) if err != nil { return } @@ -1605,8 +1605,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // write "27251764" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x37, 0x36, 0x34) + // write "272517" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x37) if err != nil { return } @@ -1624,8 +1624,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // write "27251664" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x36, 0x36, 0x34) + // write "272516" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x36) if err != nil { return } @@ -1643,8 +1643,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // write "2724593" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x34, 0x35, 0x39, 0x33) + // write "272459" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x39) if err != nil { return } @@ -1662,8 +1662,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // write "27244931" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x34, 0x39, 0x33, 0x31) + // write "272449" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x34, 0x39) if err != nil { return } @@ -1681,8 +1681,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // write "2723943" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x33, 0x39, 0x34, 0x33) + // write "272394" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x34) if err != nil { return } @@ -1700,8 +1700,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // write "2724243" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x34, 0x32, 0x34, 0x33) + // write "272424" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x34) if err != nil { return } @@ -1719,8 +1719,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // write "27239131" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x31, 0x33, 0x31) + // write "272391" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x31) if err != nil { return } @@ -1738,8 +1738,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // write "27239231" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x32, 0x33, 0x31) + // write "272392" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x32) if err != nil { return } @@ -1757,8 +1757,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // write "27254964" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x34, 0x39, 0x36, 0x34) + // write "272549" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x34, 0x39) if err != nil { return } @@ -1776,8 +1776,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // write "27243164" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x33, 0x31, 0x36, 0x34) + // write "272431" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x33, 0x31) if err != nil { return } @@ -1795,8 +1795,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // write "27252531" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x35, 0x33, 0x31) + // write "272525" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x35) if err != nil { return } @@ -1814,8 +1814,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000) == 0 { // if not empty - // write "27245164" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x31, 0x36, 0x34) + // write "272451" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x31) if err != nil { return } @@ -1833,8 +1833,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000) == 0 { // if not empty - // write "27239931" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x39, 0x33, 0x31) + // write "272399" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x39) if err != nil { return } @@ -1852,8 +1852,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000) == 0 { // if not empty - // write "27239831" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x38, 0x33, 0x31) + // write "272398" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x38) if err != nil { return } @@ -1871,8 +1871,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000) == 0 { // if not empty - // write "27252131" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x31, 0x33, 0x31) + // write "272521" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x31) if err != nil { return } @@ -1890,8 +1890,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000) == 0 { // if not empty - // write "27242031" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x30, 0x33, 0x31) + // write "272420" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x30) if err != nil { return } @@ -1909,8 +1909,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000) == 0 { // if not empty - // write "27241631" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x31, 0x36, 0x33, 0x31) + // write "272416" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x31, 0x36) if err != nil { return } @@ -1928,8 +1928,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000) == 0 { // if not empty - // write "27243031" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x33, 0x30, 0x33, 0x31) + // write "272430" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x33, 0x30) if err != nil { return } @@ -1947,8 +1947,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000) == 0 { // if not empty - // write "2724273" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x34, 0x32, 0x37, 0x33) + // write "272427" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x37) if err != nil { return } @@ -1966,8 +1966,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000) == 0 { // if not empty - // write "27239531" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x35, 0x33, 0x31) + // write "272395" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x35) if err != nil { return } @@ -1985,8 +1985,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000) == 0 { // if not empty - // write "27238631" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x38, 0x36, 0x33, 0x31) + // write "272386" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x36) if err != nil { return } @@ -2004,8 +2004,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // write "27238731" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x38, 0x37, 0x33, 0x31) + // write "272387" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x37) if err != nil { return } @@ -2023,8 +2023,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // write "2725193" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x35, 0x31, 0x39, 0x33) + // write "272519" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x39) if err != nil { return } @@ -2042,8 +2042,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // write "2725183" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x35, 0x31, 0x38, 0x33) + // write "272518" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x38) if err != nil { return } @@ -2061,8 +2061,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // write "2724263" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x34, 0x32, 0x36, 0x33) + // write "272426" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x36) if err != nil { return } @@ -2080,8 +2080,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // write "2725233" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x35, 0x32, 0x33, 0x33) + // write "272523" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x33) if err != nil { return } @@ -2099,8 +2099,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // write "27246331" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x36, 0x33, 0x33, 0x31) + // write "272463" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x36, 0x33) if err != nil { return } @@ -2118,8 +2118,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // write "2725243" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x35, 0x32, 0x34, 0x33) + // write "272524" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x34) if err != nil { return } @@ -2137,8 +2137,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // write "27245064" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x30, 0x36, 0x34) + // write "272450" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x30) if err != nil { return } @@ -2156,8 +2156,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // write "2725273" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x35, 0x32, 0x37, 0x33) + // write "272527" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x37) if err != nil { return } @@ -2175,8 +2175,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // write "27238931" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x38, 0x39, 0x33, 0x31) + // write "272389" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x39) if err != nil { return } @@ -2194,8 +2194,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // write "27239731" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x37, 0x33, 0x31) + // write "272397" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x37) if err != nil { return } @@ -2213,8 +2213,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // write "27238831" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x38, 0x38, 0x33, 0x31) + // write "272388" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x38) if err != nil { return } @@ -2232,8 +2232,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // write "27252031" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x30, 0x33, 0x31) + // write "272520" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x30) if err != nil { return } @@ -2251,8 +2251,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // write "27242931" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x39, 0x33, 0x31) + // write "272429" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x39) if err != nil { return } @@ -2270,8 +2270,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // write "27239031" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x30, 0x33, 0x31) + // write "272390" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x30) if err != nil { return } @@ -2289,8 +2289,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // write "27239631" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x36, 0x33, 0x31) + // write "272396" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x36) if err != nil { return } @@ -2308,8 +2308,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // write "27255531" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x35, 0x35, 0x33, 0x31) + // write "272555" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x35, 0x35) if err != nil { return } @@ -2327,8 +2327,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // write "27245664" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x36, 0x36, 0x34) + // write "272456" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x36) if err != nil { return } @@ -2346,8 +2346,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // write "2724553" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x34, 0x35, 0x35, 0x33) + // write "272455" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x35) if err != nil { return } @@ -2365,8 +2365,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // write "2725263" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x35, 0x32, 0x36, 0x33) + // write "272526" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x36) if err != nil { return } @@ -2384,8 +2384,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // write "27245364" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x33, 0x36, 0x34) + // write "272453" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x33) if err != nil { return } @@ -2403,8 +2403,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // write "2723843" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x33, 0x38, 0x34, 0x33) + // write "272384" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x34) if err != nil { return } @@ -2422,8 +2422,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // write "27245464" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x34, 0x36, 0x34) + // write "272454" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x34) if err != nil { return } @@ -2441,8 +2441,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // write "2725763" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x35, 0x37, 0x36, 0x33) + // write "272576" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x37, 0x36) if err != nil { return } @@ -2460,8 +2460,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // write "2724583" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x34, 0x35, 0x38, 0x33) + // write "272458" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x38) if err != nil { return } @@ -2479,8 +2479,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // write "2724603" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x34, 0x36, 0x30, 0x33) + // write "272460" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x36, 0x30) if err != nil { return } @@ -2498,8 +2498,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // write "2725503" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x35, 0x35, 0x30, 0x33) + // write "272550" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x35, 0x30) if err != nil { return } @@ -2517,8 +2517,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // write "2725143" - err = en.Append(0xa7, 0x32, 0x37, 0x32, 0x35, 0x31, 0x34, 0x33) + // write "272514" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x34) if err != nil { return } @@ -2536,8 +2536,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // write "27251364" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x33, 0x36, 0x34) + // write "272513" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x33) if err != nil { return } @@ -2555,8 +2555,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // write "27251264" - err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x32, 0x36, 0x34) + // write "272512" + err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x32) if err != nil { return } @@ -3063,8 +3063,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // string "2724253" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x34, 0x32, 0x35, 0x33) + // string "272425" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x35) if z.SharingAnonymity == nil { o = msgp.AppendNil(o) } else { @@ -3072,8 +3072,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // string "27254531" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x34, 0x35, 0x33, 0x31) + // string "272545" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x34, 0x35) if z.SharingBrowseUrl == nil { o = msgp.AppendNil(o) } else { @@ -3081,8 +3081,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // string "2724233" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x34, 0x32, 0x33, 0x33) + // string "272423" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x33) if z.SharingCapabilities == nil { o = msgp.AppendNil(o) } else { @@ -3090,8 +3090,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // string "27245231" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x32, 0x33, 0x31) + // string "272452" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x32) if z.SharingConfigurationUrl == nil { o = msgp.AppendNil(o) } else { @@ -3099,8 +3099,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // string "27251764" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x37, 0x36, 0x34) + // string "272517" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x37) if z.SharingDataRangeEnd == nil { o = msgp.AppendNil(o) } else { @@ -3108,8 +3108,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // string "27251664" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x36, 0x36, 0x34) + // string "272516" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x36) if z.SharingDataRangeStart == nil { o = msgp.AppendNil(o) } else { @@ -3117,8 +3117,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // string "2724593" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x34, 0x35, 0x39, 0x33) + // string "272459" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x39) if z.SharingDetail == nil { o = msgp.AppendNil(o) } else { @@ -3126,8 +3126,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // string "27244931" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x34, 0x39, 0x33, 0x31) + // string "272449" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x34, 0x39) if z.SharingExtensionXml == nil { o = msgp.AppendNil(o) } else { @@ -3135,8 +3135,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // string "2723943" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x33, 0x39, 0x34, 0x33) + // string "272394" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x34) if z.SharingFlags == nil { o = msgp.AppendNil(o) } else { @@ -3144,8 +3144,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // string "2724243" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x34, 0x32, 0x34, 0x33) + // string "272424" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x34) if z.SharingFlavor == nil { o = msgp.AppendNil(o) } else { @@ -3153,8 +3153,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // string "27239131" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x31, 0x33, 0x31) + // string "272391" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x31) if z.SharingInitiatorName == nil { o = msgp.AppendNil(o) } else { @@ -3162,8 +3162,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // string "27239231" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x32, 0x33, 0x31) + // string "272392" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x32) if z.SharingInitiatorSmtp == nil { o = msgp.AppendNil(o) } else { @@ -3171,8 +3171,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // string "27254964" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x34, 0x39, 0x36, 0x34) + // string "272549" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x34, 0x39) if z.SharingLastAutoSyncTime == nil { o = msgp.AppendNil(o) } else { @@ -3180,8 +3180,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // string "27243164" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x33, 0x31, 0x36, 0x34) + // string "272431" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x33, 0x31) if z.SharingLastSyncTime == nil { o = msgp.AppendNil(o) } else { @@ -3189,8 +3189,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // string "27252531" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x35, 0x33, 0x31) + // string "272525" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x35) if z.SharingLocalComment == nil { o = msgp.AppendNil(o) } else { @@ -3198,8 +3198,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000) == 0 { // if not empty - // string "27245164" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x31, 0x36, 0x34) + // string "272451" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x31) if z.SharingLocalLastModificationTime == nil { o = msgp.AppendNil(o) } else { @@ -3207,8 +3207,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000) == 0 { // if not empty - // string "27239931" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x39, 0x33, 0x31) + // string "272399" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x39) if z.SharingLocalName == nil { o = msgp.AppendNil(o) } else { @@ -3216,8 +3216,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000) == 0 { // if not empty - // string "27239831" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x38, 0x33, 0x31) + // string "272398" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x38) if z.SharingLocalPath == nil { o = msgp.AppendNil(o) } else { @@ -3225,8 +3225,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000) == 0 { // if not empty - // string "27252131" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x31, 0x33, 0x31) + // string "272521" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x31) if z.SharingLocalStoreUid == nil { o = msgp.AppendNil(o) } else { @@ -3234,8 +3234,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000) == 0 { // if not empty - // string "27242031" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x30, 0x33, 0x31) + // string "272420" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x30) if z.SharingLocalType == nil { o = msgp.AppendNil(o) } else { @@ -3243,8 +3243,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000) == 0 { // if not empty - // string "27241631" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x31, 0x36, 0x33, 0x31) + // string "272416" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x31, 0x36) if z.SharingLocalUid == nil { o = msgp.AppendNil(o) } else { @@ -3252,8 +3252,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000) == 0 { // if not empty - // string "27243031" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x33, 0x30, 0x33, 0x31) + // string "272430" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x33, 0x30) if z.SharingParticipants == nil { o = msgp.AppendNil(o) } else { @@ -3261,8 +3261,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000) == 0 { // if not empty - // string "2724273" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x34, 0x32, 0x37, 0x33) + // string "272427" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x37) if z.SharingPermissions == nil { o = msgp.AppendNil(o) } else { @@ -3270,8 +3270,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000) == 0 { // if not empty - // string "27239531" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x35, 0x33, 0x31) + // string "272395" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x35) if z.SharingProviderExtension == nil { o = msgp.AppendNil(o) } else { @@ -3279,8 +3279,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000) == 0 { // if not empty - // string "27238631" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x38, 0x36, 0x33, 0x31) + // string "272386" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x36) if z.SharingProviderName == nil { o = msgp.AppendNil(o) } else { @@ -3288,8 +3288,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // string "27238731" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x38, 0x37, 0x33, 0x31) + // string "272387" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x37) if z.SharingProviderUrl == nil { o = msgp.AppendNil(o) } else { @@ -3297,8 +3297,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // string "2725193" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x35, 0x31, 0x39, 0x33) + // string "272519" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x39) if z.SharingRangeEnd == nil { o = msgp.AppendNil(o) } else { @@ -3306,8 +3306,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // string "2725183" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x35, 0x31, 0x38, 0x33) + // string "272518" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x38) if z.SharingRangeStart == nil { o = msgp.AppendNil(o) } else { @@ -3315,8 +3315,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // string "2724263" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x34, 0x32, 0x36, 0x33) + // string "272426" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x36) if z.SharingReciprocation == nil { o = msgp.AppendNil(o) } else { @@ -3324,8 +3324,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // string "2725233" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x35, 0x32, 0x33, 0x33) + // string "272523" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x33) if z.SharingRemoteByteSize == nil { o = msgp.AppendNil(o) } else { @@ -3333,8 +3333,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // string "27246331" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x36, 0x33, 0x33, 0x31) + // string "272463" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x36, 0x33) if z.SharingRemoteComment == nil { o = msgp.AppendNil(o) } else { @@ -3342,8 +3342,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // string "2725243" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x35, 0x32, 0x34, 0x33) + // string "272524" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x34) if z.SharingRemoteCrc == nil { o = msgp.AppendNil(o) } else { @@ -3351,8 +3351,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // string "27245064" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x30, 0x36, 0x34) + // string "272450" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x30) if z.SharingRemoteLastModificationTime == nil { o = msgp.AppendNil(o) } else { @@ -3360,8 +3360,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // string "2725273" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x35, 0x32, 0x37, 0x33) + // string "272527" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x37) if z.SharingRemoteMessageCount == nil { o = msgp.AppendNil(o) } else { @@ -3369,8 +3369,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // string "27238931" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x38, 0x39, 0x33, 0x31) + // string "272389" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x39) if z.SharingRemoteName == nil { o = msgp.AppendNil(o) } else { @@ -3378,8 +3378,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // string "27239731" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x37, 0x33, 0x31) + // string "272397" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x37) if z.SharingRemotePass == nil { o = msgp.AppendNil(o) } else { @@ -3387,8 +3387,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // string "27238831" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x38, 0x38, 0x33, 0x31) + // string "272388" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x38) if z.SharingRemotePath == nil { o = msgp.AppendNil(o) } else { @@ -3396,8 +3396,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // string "27252031" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x30, 0x33, 0x31) + // string "272520" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x30) if z.SharingRemoteStoreUid == nil { o = msgp.AppendNil(o) } else { @@ -3405,8 +3405,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // string "27242931" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x39, 0x33, 0x31) + // string "272429" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x39) if z.SharingRemoteType == nil { o = msgp.AppendNil(o) } else { @@ -3414,8 +3414,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // string "27239031" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x30, 0x33, 0x31) + // string "272390" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x30) if z.SharingRemoteUid == nil { o = msgp.AppendNil(o) } else { @@ -3423,8 +3423,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // string "27239631" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x36, 0x33, 0x31) + // string "272396" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x36) if z.SharingRemoteUser == nil { o = msgp.AppendNil(o) } else { @@ -3432,8 +3432,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // string "27255531" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x35, 0x35, 0x33, 0x31) + // string "272555" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x35, 0x35) if z.SharingRemoteVersion == nil { o = msgp.AppendNil(o) } else { @@ -3441,8 +3441,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // string "27245664" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x36, 0x36, 0x34) + // string "272456" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x36) if z.SharingResponseTime == nil { o = msgp.AppendNil(o) } else { @@ -3450,8 +3450,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // string "2724553" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x34, 0x35, 0x35, 0x33) + // string "272455" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x35) if z.SharingResponseType == nil { o = msgp.AppendNil(o) } else { @@ -3459,8 +3459,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // string "2725263" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x35, 0x32, 0x36, 0x33) + // string "272526" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x36) if z.SharingRoamLog == nil { o = msgp.AppendNil(o) } else { @@ -3468,8 +3468,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // string "27245364" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x33, 0x36, 0x34) + // string "272453" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x33) if z.SharingStart == nil { o = msgp.AppendNil(o) } else { @@ -3477,8 +3477,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // string "2723843" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x33, 0x38, 0x34, 0x33) + // string "272384" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x34) if z.SharingStatus == nil { o = msgp.AppendNil(o) } else { @@ -3486,8 +3486,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // string "27245464" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x34, 0x36, 0x34) + // string "272454" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x34) if z.SharingStop == nil { o = msgp.AppendNil(o) } else { @@ -3495,8 +3495,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // string "2725763" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x35, 0x37, 0x36, 0x33) + // string "272576" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x37, 0x36) if z.SharingSyncFlags == nil { o = msgp.AppendNil(o) } else { @@ -3504,8 +3504,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // string "2724583" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x34, 0x35, 0x38, 0x33) + // string "272458" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x38) if z.SharingSyncInterval == nil { o = msgp.AppendNil(o) } else { @@ -3513,8 +3513,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // string "2724603" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x34, 0x36, 0x30, 0x33) + // string "272460" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x36, 0x30) if z.SharingTimeToLive == nil { o = msgp.AppendNil(o) } else { @@ -3522,8 +3522,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // string "2725503" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x35, 0x35, 0x30, 0x33) + // string "272550" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x35, 0x30) if z.SharingTimeToLiveAuto == nil { o = msgp.AppendNil(o) } else { @@ -3531,8 +3531,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // string "2725143" - o = append(o, 0xa7, 0x32, 0x37, 0x32, 0x35, 0x31, 0x34, 0x33) + // string "272514" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x34) if z.SharingWorkingHoursDays == nil { o = msgp.AppendNil(o) } else { @@ -3540,8 +3540,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // string "27251364" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x33, 0x36, 0x34) + // string "272513" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x33) if z.SharingWorkingHoursEnd == nil { o = msgp.AppendNil(o) } else { @@ -3549,8 +3549,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // string "27251264" - o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x32, 0x36, 0x34) + // string "272512" + o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x32) if z.SharingWorkingHoursStart == nil { o = msgp.AppendNil(o) } else { @@ -3683,7 +3683,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "2724253": + case "272425": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3700,7 +3700,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27254531": + case "272545": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3717,7 +3717,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2724233": + case "272423": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3734,7 +3734,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27245231": + case "272452": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3751,7 +3751,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27251764": + case "272517": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3768,7 +3768,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27251664": + case "272516": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3785,7 +3785,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2724593": + case "272459": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3802,7 +3802,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27244931": + case "272449": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3819,7 +3819,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2723943": + case "272394": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3836,7 +3836,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2724243": + case "272424": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3853,7 +3853,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27239131": + case "272391": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3870,7 +3870,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27239231": + case "272392": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3887,7 +3887,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27254964": + case "272549": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3904,7 +3904,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27243164": + case "272431": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3921,7 +3921,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27252531": + case "272525": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3938,7 +3938,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27245164": + case "272451": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3955,7 +3955,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27239931": + case "272399": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3972,7 +3972,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27239831": + case "272398": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3989,7 +3989,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27252131": + case "272521": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4006,7 +4006,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27242031": + case "272420": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4023,7 +4023,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27241631": + case "272416": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4040,7 +4040,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27243031": + case "272430": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4057,7 +4057,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2724273": + case "272427": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4074,7 +4074,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27239531": + case "272395": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4091,7 +4091,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27238631": + case "272386": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4108,7 +4108,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27238731": + case "272387": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4125,7 +4125,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2725193": + case "272519": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4142,7 +4142,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2725183": + case "272518": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4159,7 +4159,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2724263": + case "272426": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4176,7 +4176,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2725233": + case "272523": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4193,7 +4193,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27246331": + case "272463": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4210,7 +4210,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2725243": + case "272524": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4227,7 +4227,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27245064": + case "272450": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4244,7 +4244,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2725273": + case "272527": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4261,7 +4261,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27238931": + case "272389": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4278,7 +4278,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27239731": + case "272397": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4295,7 +4295,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27238831": + case "272388": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4312,7 +4312,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27252031": + case "272520": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4329,7 +4329,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27242931": + case "272429": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4346,7 +4346,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27239031": + case "272390": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4363,7 +4363,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27239631": + case "272396": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4380,7 +4380,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27255531": + case "272555": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4397,7 +4397,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27245664": + case "272456": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4414,7 +4414,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2724553": + case "272455": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4431,7 +4431,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2725263": + case "272526": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4448,7 +4448,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27245364": + case "272453": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4465,7 +4465,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2723843": + case "272384": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4482,7 +4482,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27245464": + case "272454": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4499,7 +4499,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2725763": + case "272576": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4516,7 +4516,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2724583": + case "272458": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4533,7 +4533,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2724603": + case "272460": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4550,7 +4550,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2725503": + case "272550": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4567,7 +4567,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2725143": + case "272514": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4584,7 +4584,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27251364": + case "272513": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4601,7 +4601,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "27251264": + case "272512": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4887,331 +4887,331 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Sharing) Msgsize() (s int) { - s = 3 + 8 + s = 3 + 7 if z.SharingAnonymity == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.SharingBrowseUrl == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingBrowseUrl) } - s += 8 + s += 7 if z.SharingCapabilities == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.SharingConfigurationUrl == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingConfigurationUrl) } - s += 9 + s += 7 if z.SharingDataRangeEnd == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.SharingDataRangeStart == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.SharingDetail == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.SharingExtensionXml == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingExtensionXml) } - s += 8 + s += 7 if z.SharingFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.SharingFlavor == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.SharingInitiatorName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingInitiatorName) } - s += 9 + s += 7 if z.SharingInitiatorSmtp == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingInitiatorSmtp) } - s += 9 + s += 7 if z.SharingLastAutoSyncTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.SharingLastSyncTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.SharingLocalComment == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingLocalComment) } - s += 9 + s += 7 if z.SharingLocalLastModificationTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.SharingLocalName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingLocalName) } - s += 9 + s += 7 if z.SharingLocalPath == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingLocalPath) } - s += 9 + s += 7 if z.SharingLocalStoreUid == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingLocalStoreUid) } - s += 9 + s += 7 if z.SharingLocalType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingLocalType) } - s += 9 + s += 7 if z.SharingLocalUid == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingLocalUid) } - s += 9 + s += 7 if z.SharingParticipants == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingParticipants) } - s += 8 + s += 7 if z.SharingPermissions == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.SharingProviderExtension == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingProviderExtension) } - s += 9 + s += 7 if z.SharingProviderName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingProviderName) } - s += 9 + s += 7 if z.SharingProviderUrl == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingProviderUrl) } - s += 8 + s += 7 if z.SharingRangeEnd == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.SharingRangeStart == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.SharingReciprocation == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.SharingRemoteByteSize == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.SharingRemoteComment == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteComment) } - s += 8 + s += 7 if z.SharingRemoteCrc == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.SharingRemoteLastModificationTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.SharingRemoteMessageCount == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.SharingRemoteName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteName) } - s += 9 + s += 7 if z.SharingRemotePass == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemotePass) } - s += 9 + s += 7 if z.SharingRemotePath == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemotePath) } - s += 9 + s += 7 if z.SharingRemoteStoreUid == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteStoreUid) } - s += 9 + s += 7 if z.SharingRemoteType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteType) } - s += 9 + s += 7 if z.SharingRemoteUid == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteUid) } - s += 9 + s += 7 if z.SharingRemoteUser == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteUser) } - s += 9 + s += 7 if z.SharingRemoteVersion == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteVersion) } - s += 9 + s += 7 if z.SharingResponseTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.SharingResponseType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.SharingRoamLog == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.SharingStart == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.SharingStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.SharingStop == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.SharingSyncFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.SharingSyncInterval == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.SharingTimeToLive == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.SharingTimeToLiveAuto == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.SharingWorkingHoursDays == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.SharingWorkingHoursEnd == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.SharingWorkingHoursStart == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/sms.pb.go b/pkg/properties/sms.pb.go index bc0ed55..3ca12be 100644 --- a/pkg/properties/sms.pb.go +++ b/pkg/properties/sms.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: sms.proto package properties diff --git a/pkg/properties/spam.pb.go b/pkg/properties/spam.pb.go index b430788..1ce679c 100644 --- a/pkg/properties/spam.pb.go +++ b/pkg/properties/spam.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: spam.proto package properties @@ -44,15 +44,15 @@ type Spam struct { unknownFields protoimpl.UnknownFields // Indicates whether email recipients are to be added to the safe senders list. - JunkAddRecipientsToSafeSendersList *int32 `protobuf:"varint,2,opt,name=junk_add_recipients_to_safe_senders_list,json=junkAddRecipientsToSafeSendersList,proto3,oneof" json:"junk_add_recipients_to_safe_senders_list,omitempty" msg:"248353,omitempty"` + JunkAddRecipientsToSafeSendersList *int32 `protobuf:"varint,2,opt,name=junk_add_recipients_to_safe_senders_list,json=junkAddRecipientsToSafeSendersList,proto3,oneof" json:"junk_add_recipients_to_safe_senders_list,omitempty" msg:"24835,omitempty" type:"3,omitempty"` // Indicates whether email addresses of the contacts in the Contacts folder are treated in a special way with respect to the spam filter. - JunkIncludeContacts *int32 `protobuf:"varint,3,opt,name=junk_include_contacts,json=junkIncludeContacts,proto3,oneof" json:"junk_include_contacts,omitempty" msg:"248323,omitempty"` + JunkIncludeContacts *int32 `protobuf:"varint,3,opt,name=junk_include_contacts,json=junkIncludeContacts,proto3,oneof" json:"junk_include_contacts,omitempty" msg:"24832,omitempty" type:"3,omitempty"` // Indicates whether messages identified as spam can be permanently deleted. - JunkPermanentlyDelete *int32 `protobuf:"varint,4,opt,name=junk_permanently_delete,json=junkPermanentlyDelete,proto3,oneof" json:"junk_permanently_delete,omitempty" msg:"248343,omitempty"` + JunkPermanentlyDelete *int32 `protobuf:"varint,4,opt,name=junk_permanently_delete,json=junkPermanentlyDelete,proto3,oneof" json:"junk_permanently_delete,omitempty" msg:"24834,omitempty" type:"3,omitempty"` // Indicated whether the phishing stamp on a message is to be ignored. - JunkPhishingEnableLinks *bool `protobuf:"varint,5,opt,name=junk_phishing_enable_links,json=junkPhishingEnableLinks,proto3,oneof" json:"junk_phishing_enable_links,omitempty" msg:"2483911,omitempty"` + JunkPhishingEnableLinks *bool `protobuf:"varint,5,opt,name=junk_phishing_enable_links,json=junkPhishingEnableLinks,proto3,oneof" json:"junk_phishing_enable_links,omitempty" msg:"24839,omitempty" type:"11,omitempty"` // Indicates how aggressively incoming email is to be sent to the Junk Email folder. - JunkThreshold *int32 `protobuf:"varint,6,opt,name=junk_threshold,json=junkThreshold,proto3,oneof" json:"junk_threshold,omitempty" msg:"248333,omitempty"` + JunkThreshold *int32 `protobuf:"varint,6,opt,name=junk_threshold,json=junkThreshold,proto3,oneof" json:"junk_threshold,omitempty" msg:"24833,omitempty" type:"3,omitempty"` } func (x *Spam) Reset() { diff --git a/pkg/properties/spam.pb_gen.go b/pkg/properties/spam.pb_gen.go index d58588b..1baa177 100644 --- a/pkg/properties/spam.pb_gen.go +++ b/pkg/properties/spam.pb_gen.go @@ -24,7 +24,7 @@ func (z *Spam) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "248353": + case "24835": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Spam) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "248323": + case "24832": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Spam) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "248343": + case "24834": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Spam) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2483911": + case "24839": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Spam) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "248333": + case "24833": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -159,8 +159,8 @@ func (z *Spam) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // write "248353" - err = en.Append(0xa6, 0x32, 0x34, 0x38, 0x33, 0x35, 0x33) + // write "24835" + err = en.Append(0xa5, 0x32, 0x34, 0x38, 0x33, 0x35) if err != nil { return } @@ -178,8 +178,8 @@ func (z *Spam) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // write "248323" - err = en.Append(0xa6, 0x32, 0x34, 0x38, 0x33, 0x32, 0x33) + // write "24832" + err = en.Append(0xa5, 0x32, 0x34, 0x38, 0x33, 0x32) if err != nil { return } @@ -197,8 +197,8 @@ func (z *Spam) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // write "248343" - err = en.Append(0xa6, 0x32, 0x34, 0x38, 0x33, 0x34, 0x33) + // write "24834" + err = en.Append(0xa5, 0x32, 0x34, 0x38, 0x33, 0x34) if err != nil { return } @@ -216,8 +216,8 @@ func (z *Spam) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // write "2483911" - err = en.Append(0xa7, 0x32, 0x34, 0x38, 0x33, 0x39, 0x31, 0x31) + // write "24839" + err = en.Append(0xa5, 0x32, 0x34, 0x38, 0x33, 0x39) if err != nil { return } @@ -235,8 +235,8 @@ func (z *Spam) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "248333" - err = en.Append(0xa6, 0x32, 0x34, 0x38, 0x33, 0x33, 0x33) + // write "24833" + err = en.Append(0xa5, 0x32, 0x34, 0x38, 0x33, 0x33) if err != nil { return } @@ -288,8 +288,8 @@ func (z *Spam) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // string "248353" - o = append(o, 0xa6, 0x32, 0x34, 0x38, 0x33, 0x35, 0x33) + // string "24835" + o = append(o, 0xa5, 0x32, 0x34, 0x38, 0x33, 0x35) if z.JunkAddRecipientsToSafeSendersList == nil { o = msgp.AppendNil(o) } else { @@ -297,8 +297,8 @@ func (z *Spam) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // string "248323" - o = append(o, 0xa6, 0x32, 0x34, 0x38, 0x33, 0x32, 0x33) + // string "24832" + o = append(o, 0xa5, 0x32, 0x34, 0x38, 0x33, 0x32) if z.JunkIncludeContacts == nil { o = msgp.AppendNil(o) } else { @@ -306,8 +306,8 @@ func (z *Spam) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // string "248343" - o = append(o, 0xa6, 0x32, 0x34, 0x38, 0x33, 0x34, 0x33) + // string "24834" + o = append(o, 0xa5, 0x32, 0x34, 0x38, 0x33, 0x34) if z.JunkPermanentlyDelete == nil { o = msgp.AppendNil(o) } else { @@ -315,8 +315,8 @@ func (z *Spam) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // string "2483911" - o = append(o, 0xa7, 0x32, 0x34, 0x38, 0x33, 0x39, 0x31, 0x31) + // string "24839" + o = append(o, 0xa5, 0x32, 0x34, 0x38, 0x33, 0x39) if z.JunkPhishingEnableLinks == nil { o = msgp.AppendNil(o) } else { @@ -324,8 +324,8 @@ func (z *Spam) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "248333" - o = append(o, 0xa6, 0x32, 0x34, 0x38, 0x33, 0x33, 0x33) + // string "24833" + o = append(o, 0xa5, 0x32, 0x34, 0x38, 0x33, 0x33) if z.JunkThreshold == nil { o = msgp.AppendNil(o) } else { @@ -353,7 +353,7 @@ func (z *Spam) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "248353": + case "24835": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -370,7 +370,7 @@ func (z *Spam) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "248323": + case "24832": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -387,7 +387,7 @@ func (z *Spam) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "248343": + case "24834": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -404,7 +404,7 @@ func (z *Spam) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2483911": + case "24839": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -421,7 +421,7 @@ func (z *Spam) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "248333": + case "24833": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -452,31 +452,31 @@ func (z *Spam) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Spam) Msgsize() (s int) { - s = 1 + 7 + s = 1 + 6 if z.JunkAddRecipientsToSafeSendersList == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 6 if z.JunkIncludeContacts == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 6 if z.JunkPermanentlyDelete == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.JunkPhishingEnableLinks == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 6 if z.JunkThreshold == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/task.pb.go b/pkg/properties/task.pb.go index 4a2ad5e..95186ff 100644 --- a/pkg/properties/task.pb.go +++ b/pkg/properties/task.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: task.proto package properties @@ -44,83 +44,83 @@ type Task struct { unknownFields protoimpl.UnknownFields // Contains an index identifying one of a set of pre-defined text strings to be associated with the flag. - FlagString *int32 `protobuf:"varint,1,opt,name=flag_string,json=flagString,proto3,oneof" json:"flag_string,omitempty" msg:"2676483,omitempty"` + FlagString *int32 `protobuf:"varint,1,opt,name=flag_string,json=flagString,proto3,oneof" json:"flag_string,omitempty" msg:"267648,omitempty" type:"3,omitempty"` // Indicates whether a time-flagged Message object is complete. - PercentComplete *float64 `protobuf:"fixed64,3,opt,name=percent_complete,json=percentComplete,proto3,oneof" json:"percent_complete,omitempty" msg:"2631705,omitempty"` + PercentComplete *float64 `protobuf:"fixed64,3,opt,name=percent_complete,json=percentComplete,proto3,oneof" json:"percent_complete,omitempty" msg:"263170,omitempty" type:"5,omitempty"` // Indicates the acceptance state of the task. - TaskAcceptanceState *int32 `protobuf:"varint,4,opt,name=task_acceptance_state,json=taskAcceptanceState,proto3,oneof" json:"task_acceptance_state,omitempty" msg:"2632423,omitempty"` + TaskAcceptanceState *int32 `protobuf:"varint,4,opt,name=task_acceptance_state,json=taskAcceptanceState,proto3,oneof" json:"task_acceptance_state,omitempty" msg:"263242,omitempty" type:"3,omitempty"` // Indicates whether a task assignee has replied to a task request for this Task object. - TaskAccepted *bool `protobuf:"varint,5,opt,name=task_accepted,json=taskAccepted,proto3,oneof" json:"task_accepted,omitempty" msg:"26317611,omitempty"` + TaskAccepted *bool `protobuf:"varint,5,opt,name=task_accepted,json=taskAccepted,proto3,oneof" json:"task_accepted,omitempty" msg:"263176,omitempty" type:"11,omitempty"` // Indicates the number of minutes that the user actually spent working on a task. - TaskActualEffort *int32 `protobuf:"varint,6,opt,name=task_actual_effort,json=taskActualEffort,proto3,oneof" json:"task_actual_effort,omitempty" msg:"2632003,omitempty"` + TaskActualEffort *int32 `protobuf:"varint,6,opt,name=task_actual_effort,json=taskActualEffort,proto3,oneof" json:"task_actual_effort,omitempty" msg:"263200,omitempty" type:"3,omitempty"` // Specifies the name of the user that last assigned the task. - TaskAssigner *string `protobuf:"bytes,7,opt,name=task_assigner,json=taskAssigner,proto3,oneof" json:"task_assigner,omitempty" msg:"26323331,omitempty"` + TaskAssigner *string `protobuf:"bytes,7,opt,name=task_assigner,json=taskAssigner,proto3,oneof" json:"task_assigner,omitempty" msg:"263233,omitempty" type:"31,omitempty"` // Indicates that the task is complete. - TaskComplete *bool `protobuf:"varint,9,opt,name=task_complete,json=taskComplete,proto3,oneof" json:"task_complete,omitempty" msg:"26321211,omitempty"` + TaskComplete *bool `protobuf:"varint,9,opt,name=task_complete,json=taskComplete,proto3,oneof" json:"task_complete,omitempty" msg:"263212,omitempty" type:"11,omitempty"` // The client can set this property, but it has no impact on the Task-Related Objects Protocol and is ignored by the server. - TaskCustomFlags *int32 `protobuf:"varint,10,opt,name=task_custom_flags,json=taskCustomFlags,proto3,oneof" json:"task_custom_flags,omitempty" msg:"2632733,omitempty"` + TaskCustomFlags *int32 `protobuf:"varint,10,opt,name=task_custom_flags,json=taskCustomFlags,proto3,oneof" json:"task_custom_flags,omitempty" msg:"263273,omitempty" type:"3,omitempty"` // Specifies the date when the user completed work on the task. - TaskDateCompleted *int64 `protobuf:"varint,11,opt,name=task_date_completed,json=taskDateCompleted,proto3,oneof" json:"task_date_completed,omitempty" msg:"26318364,omitempty"` + TaskDateCompleted *int64 `protobuf:"varint,11,opt,name=task_date_completed,json=taskDateCompleted,proto3,oneof" json:"task_date_completed,omitempty" msg:"263183,omitempty" type:"64,omitempty"` // Indicates whether new occurrences remain to be generated. - TaskDeadOccurrence *bool `protobuf:"varint,12,opt,name=task_dead_occurrence,json=taskDeadOccurrence,proto3,oneof" json:"task_dead_occurrence,omitempty" msg:"26317711,omitempty"` + TaskDeadOccurrence *bool `protobuf:"varint,12,opt,name=task_dead_occurrence,json=taskDeadOccurrence,proto3,oneof" json:"task_dead_occurrence,omitempty" msg:"263177,omitempty" type:"11,omitempty"` // Specifies the date by which the user expects work on the task to be complete. - TaskDueDate *int64 `protobuf:"varint,13,opt,name=task_due_date,json=taskDueDate,proto3,oneof" json:"task_due_date,omitempty" msg:"26317364,omitempty"` + TaskDueDate *int64 `protobuf:"varint,13,opt,name=task_due_date,json=taskDueDate,proto3,oneof" json:"task_due_date,omitempty" msg:"263173,omitempty" type:"64,omitempty"` // Indicates the number of minutes that the user expects to work on a task. - TaskEstimatedEffort *int32 `protobuf:"varint,14,opt,name=task_estimated_effort,json=taskEstimatedEffort,proto3,oneof" json:"task_estimated_effort,omitempty" msg:"2632013,omitempty"` + TaskEstimatedEffort *int32 `protobuf:"varint,14,opt,name=task_estimated_effort,json=taskEstimatedEffort,proto3,oneof" json:"task_estimated_effort,omitempty" msg:"263201,omitempty" type:"3,omitempty"` // Indicates that the Task object was originally created by the action of the current user or user agent instead of by the processing of a task request. - TaskfCreator *bool `protobuf:"varint,15,opt,name=taskf_creator,json=taskfCreator,proto3,oneof" json:"taskf_creator,omitempty" msg:"26321411,omitempty"` + TaskfCreator *bool `protobuf:"varint,15,opt,name=taskf_creator,json=taskfCreator,proto3,oneof" json:"taskf_creator,omitempty" msg:"263214,omitempty" type:"11,omitempty"` // Indicates the accuracy of the PidLidTaskOwner property (section 2.328). - TaskfFixOffline *bool `protobuf:"varint,16,opt,name=taskf_fix_offline,json=taskfFixOffline,proto3,oneof" json:"taskf_fix_offline,omitempty" msg:"26324411,omitempty"` + TaskfFixOffline *bool `protobuf:"varint,16,opt,name=taskf_fix_offline,json=taskfFixOffline,proto3,oneof" json:"taskf_fix_offline,omitempty" msg:"263244,omitempty" type:"11,omitempty"` // Indicates whether the task includes a recurrence pattern. - TaskfRecurring *bool `protobuf:"varint,17,opt,name=taskf_recurring,json=taskfRecurring,proto3,oneof" json:"taskf_recurring,omitempty" msg:"26323811,omitempty"` + TaskfRecurring *bool `protobuf:"varint,17,opt,name=taskf_recurring,json=taskfRecurring,proto3,oneof" json:"taskf_recurring,omitempty" msg:"263238,omitempty" type:"11,omitempty"` // Indicates the type of change that was last made to the Task object. - TaskHistory *int32 `protobuf:"varint,19,opt,name=task_history,json=taskHistory,proto3,oneof" json:"task_history,omitempty" msg:"2632103,omitempty"` + TaskHistory *int32 `protobuf:"varint,19,opt,name=task_history,json=taskHistory,proto3,oneof" json:"task_history,omitempty" msg:"263210,omitempty" type:"3,omitempty"` // Contains the name of the user who most recently assigned the task, or the user to whom it was most recently assigned. - TaskLastDelegate *string `protobuf:"bytes,20,opt,name=task_last_delegate,json=taskLastDelegate,proto3,oneof" json:"task_last_delegate,omitempty" msg:"26323731,omitempty"` + TaskLastDelegate *string `protobuf:"bytes,20,opt,name=task_last_delegate,json=taskLastDelegate,proto3,oneof" json:"task_last_delegate,omitempty" msg:"263237,omitempty" type:"31,omitempty"` // Contains the date and time of the most recent change made to the Task object. - TaskLastUpdate *int64 `protobuf:"varint,21,opt,name=task_last_update,json=taskLastUpdate,proto3,oneof" json:"task_last_update,omitempty" msg:"26320564,omitempty"` + TaskLastUpdate *int64 `protobuf:"varint,21,opt,name=task_last_update,json=taskLastUpdate,proto3,oneof" json:"task_last_update,omitempty" msg:"263205,omitempty" type:"64,omitempty"` // Contains the name of the most recent user to have been the owner of the task. - TaskLastUser *string `protobuf:"bytes,22,opt,name=task_last_user,json=taskLastUser,proto3,oneof" json:"task_last_user,omitempty" msg:"26323431,omitempty"` + TaskLastUser *string `protobuf:"bytes,22,opt,name=task_last_user,json=taskLastUser,proto3,oneof" json:"task_last_user,omitempty" msg:"263234,omitempty" type:"31,omitempty"` // Specifies the assignment status of the embedded Task object. - TaskMode *int32 `protobuf:"varint,23,opt,name=task_mode,json=taskMode,proto3,oneof" json:"task_mode,omitempty" msg:"2673043,omitempty"` + TaskMode *int32 `protobuf:"varint,23,opt,name=task_mode,json=taskMode,proto3,oneof" json:"task_mode,omitempty" msg:"267304,omitempty" type:"3,omitempty"` // Provides optimization hints about the recipients of a Task object. - TaskMultipleRecipients *int32 `protobuf:"varint,24,opt,name=task_multiple_recipients,json=taskMultipleRecipients,proto3,oneof" json:"task_multiple_recipients,omitempty" msg:"2632323,omitempty"` + TaskMultipleRecipients *int32 `protobuf:"varint,24,opt,name=task_multiple_recipients,json=taskMultipleRecipients,proto3,oneof" json:"task_multiple_recipients,omitempty" msg:"263232,omitempty" type:"3,omitempty"` // Not used. The client can set this property, but it has no impact on the Task-Related Objects Protocol and is ignored by the server. - TaskNoCompute *bool `protobuf:"varint,25,opt,name=task_no_compute,json=taskNoCompute,proto3,oneof" json:"task_no_compute,omitempty" msg:"26323611,omitempty"` + TaskNoCompute *bool `protobuf:"varint,25,opt,name=task_no_compute,json=taskNoCompute,proto3,oneof" json:"task_no_compute,omitempty" msg:"263236,omitempty" type:"11,omitempty"` // Provides an aid to custom sorting of Task objects. - TaskOrdinal *int32 `protobuf:"varint,26,opt,name=task_ordinal,json=taskOrdinal,proto3,oneof" json:"task_ordinal,omitempty" msg:"2632353,omitempty"` + TaskOrdinal *int32 `protobuf:"varint,26,opt,name=task_ordinal,json=taskOrdinal,proto3,oneof" json:"task_ordinal,omitempty" msg:"263235,omitempty" type:"3,omitempty"` // Contains the name of the owner of the task. - TaskOwner *string `protobuf:"bytes,27,opt,name=task_owner,json=taskOwner,proto3,oneof" json:"task_owner,omitempty" msg:"26321531,omitempty"` + TaskOwner *string `protobuf:"bytes,27,opt,name=task_owner,json=taskOwner,proto3,oneof" json:"task_owner,omitempty" msg:"263215,omitempty" type:"31,omitempty"` // Indicates the role of the current user relative to the Task object. - TaskOwnership *int32 `protobuf:"varint,28,opt,name=task_ownership,json=taskOwnership,proto3,oneof" json:"task_ownership,omitempty" msg:"2632413,omitempty"` + TaskOwnership *int32 `protobuf:"varint,28,opt,name=task_ownership,json=taskOwnership,proto3,oneof" json:"task_ownership,omitempty" msg:"263241,omitempty" type:"3,omitempty"` // Indicates whether future instances of recurring tasks need reminders, even though the value of the PidLidReminderSet property (section 2.222) is 0x00. - TaskResetReminder *bool `protobuf:"varint,30,opt,name=task_reset_reminder,json=taskResetReminder,proto3,oneof" json:"task_reset_reminder,omitempty" msg:"26317511,omitempty"` + TaskResetReminder *bool `protobuf:"varint,30,opt,name=task_reset_reminder,json=taskResetReminder,proto3,oneof" json:"task_reset_reminder,omitempty" msg:"263175,omitempty" type:"11,omitempty"` // Not used. The client can set this property, but it has no impact on the Task-Related Objects Protocol and is ignored by the server. - TaskRole *string `protobuf:"bytes,31,opt,name=task_role,json=taskRole,proto3,oneof" json:"task_role,omitempty" msg:"26323931,omitempty"` + TaskRole *string `protobuf:"bytes,31,opt,name=task_role,json=taskRole,proto3,oneof" json:"task_role,omitempty" msg:"263239,omitempty" type:"31,omitempty"` // Specifies the date on which the user expects work on the task to begin. - TaskStartDate *int64 `protobuf:"varint,32,opt,name=task_start_date,json=taskStartDate,proto3,oneof" json:"task_start_date,omitempty" msg:"26317264,omitempty"` + TaskStartDate *int64 `protobuf:"varint,32,opt,name=task_start_date,json=taskStartDate,proto3,oneof" json:"task_start_date,omitempty" msg:"263172,omitempty" type:"64,omitempty"` // Indicates the current assignment state of the Task object. - TaskState *int32 `protobuf:"varint,33,opt,name=task_state,json=taskState,proto3,oneof" json:"task_state,omitempty" msg:"2632033,omitempty"` + TaskState *int32 `protobuf:"varint,33,opt,name=task_state,json=taskState,proto3,oneof" json:"task_state,omitempty" msg:"263203,omitempty" type:"3,omitempty"` // Specifies the status of a task. - TaskStatus *int32 `protobuf:"varint,34,opt,name=task_status,json=taskStatus,proto3,oneof" json:"task_status,omitempty" msg:"2631693,omitempty"` + TaskStatus *int32 `protobuf:"varint,34,opt,name=task_status,json=taskStatus,proto3,oneof" json:"task_status,omitempty" msg:"263169,omitempty" type:"3,omitempty"` // Indicates whether the task assignee has been requested to send an email message update upon completion of the assigned task. - TaskStatusOnComplete *bool `protobuf:"varint,35,opt,name=task_status_on_complete,json=taskStatusOnComplete,proto3,oneof" json:"task_status_on_complete,omitempty" msg:"26320911,omitempty"` + TaskStatusOnComplete *bool `protobuf:"varint,35,opt,name=task_status_on_complete,json=taskStatusOnComplete,proto3,oneof" json:"task_status_on_complete,omitempty" msg:"263209,omitempty" type:"11,omitempty"` // Indicates whether the task assignee has been requested to send a task update when the assigned Task object changes. - TaskUpdates *bool `protobuf:"varint,36,opt,name=task_updates,json=taskUpdates,proto3,oneof" json:"task_updates,omitempty" msg:"26321111,omitempty"` + TaskUpdates *bool `protobuf:"varint,36,opt,name=task_updates,json=taskUpdates,proto3,oneof" json:"task_updates,omitempty" msg:"263211,omitempty" type:"11,omitempty"` // Indicates which copy is the latest update of a Task object. - TaskVersion *int32 `protobuf:"varint,37,opt,name=task_version,json=taskVersion,proto3,oneof" json:"task_version,omitempty" msg:"2632023,omitempty"` + TaskVersion *int32 `protobuf:"varint,37,opt,name=task_version,json=taskVersion,proto3,oneof" json:"task_version,omitempty" msg:"263202,omitempty" type:"3,omitempty"` // This property is set by the client but is ignored by the server. - TeamTask *bool `protobuf:"varint,38,opt,name=team_task,json=teamTask,proto3,oneof" json:"team_task,omitempty" msg:"26317111,omitempty"` + TeamTask *bool `protobuf:"varint,38,opt,name=team_task,json=teamTask,proto3,oneof" json:"team_task,omitempty" msg:"263171,omitempty" type:"11,omitempty"` // Contains the current time, in UTC, which is used to determine the sort order of objects in a consolidated to-do list. - ToDoOrdinalDate *int64 `protobuf:"varint,39,opt,name=to_do_ordinal_date,json=toDoOrdinalDate,proto3,oneof" json:"to_do_ordinal_date,omitempty" msg:"26758464,omitempty"` + ToDoOrdinalDate *int64 `protobuf:"varint,39,opt,name=to_do_ordinal_date,json=toDoOrdinalDate,proto3,oneof" json:"to_do_ordinal_date,omitempty" msg:"267584,omitempty" type:"64,omitempty"` // Contains the numerals 0 through 9 that are used to break a tie when the PidLidToDoOrdinalDate property (section 2.344) is used to perform a sort of objects. - ToDoSubOrdinal *string `protobuf:"bytes,40,opt,name=to_do_sub_ordinal,json=toDoSubOrdinal,proto3,oneof" json:"to_do_sub_ordinal,omitempty" msg:"26758531,omitempty"` + ToDoSubOrdinal *string `protobuf:"bytes,40,opt,name=to_do_sub_ordinal,json=toDoSubOrdinal,proto3,oneof" json:"to_do_sub_ordinal,omitempty" msg:"267585,omitempty" type:"31,omitempty"` // Contains user-specifiable text to identify this Message object in a consolidated to-do list. - ToDoTitle *string `protobuf:"bytes,41,opt,name=to_do_title,json=toDoTitle,proto3,oneof" json:"to_do_title,omitempty" msg:"26758831,omitempty"` + ToDoTitle *string `protobuf:"bytes,41,opt,name=to_do_title,json=toDoTitle,proto3,oneof" json:"to_do_title,omitempty" msg:"267588,omitempty" type:"31,omitempty"` // Contains the value of the PidTagMessageDeliveryTime property (section 2.789) when modifying the PidLidFlagRequest property (section 2.136). - ValidFlagStringProof *int64 `protobuf:"varint,42,opt,name=valid_flag_string_proof,json=validFlagStringProof,proto3,oneof" json:"valid_flag_string_proof,omitempty" msg:"26763164,omitempty"` + ValidFlagStringProof *int64 `protobuf:"varint,42,opt,name=valid_flag_string_proof,json=validFlagStringProof,proto3,oneof" json:"valid_flag_string_proof,omitempty" msg:"267631,omitempty" type:"64,omitempty"` // Contains a positive number whose negative is less than or equal to the value of the PidLidTaskOrdinal property (section 2.327) of all of the Task objects in the folder. - OrdinalMost *int32 `protobuf:"varint,43,opt,name=ordinal_most,json=ordinalMost,proto3,oneof" json:"ordinal_most,omitempty" msg:"140503,omitempty"` + OrdinalMost *int32 `protobuf:"varint,43,opt,name=ordinal_most,json=ordinalMost,proto3,oneof" json:"ordinal_most,omitempty" msg:"14050,omitempty" type:"3,omitempty"` } func (x *Task) Reset() { diff --git a/pkg/properties/task.pb_gen.go b/pkg/properties/task.pb_gen.go index a08dd23..6ccc36f 100644 --- a/pkg/properties/task.pb_gen.go +++ b/pkg/properties/task.pb_gen.go @@ -24,7 +24,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "2676483": + case "267648": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2631705": + case "263170": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2632423": + case "263242": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26317611": + case "263176": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2632003": + case "263200": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26323331": + case "263233": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26321211": + case "263212": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2632733": + case "263273": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26318364": + case "263183": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26317711": + case "263177": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26317364": + case "263173": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2632013": + case "263201": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26321411": + case "263214": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26324411": + case "263244": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26323811": + case "263238": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -294,7 +294,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2632103": + case "263210": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -312,7 +312,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26323731": + case "263237": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -330,7 +330,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26320564": + case "263205": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -348,7 +348,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26323431": + case "263234": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -366,7 +366,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2673043": + case "267304": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -384,7 +384,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2632323": + case "263232": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -402,7 +402,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26323611": + case "263236": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -420,7 +420,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2632353": + case "263235": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -438,7 +438,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26321531": + case "263215": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -456,7 +456,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2632413": + case "263241": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -474,7 +474,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26317511": + case "263175": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -492,7 +492,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26323931": + case "263239": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -510,7 +510,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26317264": + case "263172": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -528,7 +528,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2632033": + case "263203": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -546,7 +546,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2631693": + case "263169": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -564,7 +564,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26320911": + case "263209": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -582,7 +582,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26321111": + case "263211": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -600,7 +600,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2632023": + case "263202": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -618,7 +618,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26317111": + case "263171": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -636,7 +636,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26758464": + case "267584": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -654,7 +654,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26758531": + case "267585": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -672,7 +672,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26758831": + case "267588": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -690,7 +690,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26763164": + case "267631": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -708,7 +708,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "140503": + case "14050": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -907,8 +907,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // write "2676483" - err = en.Append(0xa7, 0x32, 0x36, 0x37, 0x36, 0x34, 0x38, 0x33) + // write "267648" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x34, 0x38) if err != nil { return } @@ -926,8 +926,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // write "2631705" - err = en.Append(0xa7, 0x32, 0x36, 0x33, 0x31, 0x37, 0x30, 0x35) + // write "263170" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x30) if err != nil { return } @@ -945,8 +945,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // write "2632423" - err = en.Append(0xa7, 0x32, 0x36, 0x33, 0x32, 0x34, 0x32, 0x33) + // write "263242" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x34, 0x32) if err != nil { return } @@ -964,8 +964,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // write "26317611" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x36, 0x31, 0x31) + // write "263176" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x36) if err != nil { return } @@ -983,8 +983,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "2632003" - err = en.Append(0xa7, 0x32, 0x36, 0x33, 0x32, 0x30, 0x30, 0x33) + // write "263200" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x30) if err != nil { return } @@ -1002,8 +1002,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // write "26323331" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x33, 0x33, 0x31) + // write "263233" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x33) if err != nil { return } @@ -1021,8 +1021,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // write "26321211" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x31, 0x32, 0x31, 0x31) + // write "263212" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x32) if err != nil { return } @@ -1040,8 +1040,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // write "2632733" - err = en.Append(0xa7, 0x32, 0x36, 0x33, 0x32, 0x37, 0x33, 0x33) + // write "263273" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x37, 0x33) if err != nil { return } @@ -1059,8 +1059,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // write "26318364" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x31, 0x38, 0x33, 0x36, 0x34) + // write "263183" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x38, 0x33) if err != nil { return } @@ -1078,8 +1078,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // write "26317711" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x37, 0x31, 0x31) + // write "263177" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x37) if err != nil { return } @@ -1097,8 +1097,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // write "26317364" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x33, 0x36, 0x34) + // write "263173" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x33) if err != nil { return } @@ -1116,8 +1116,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // write "2632013" - err = en.Append(0xa7, 0x32, 0x36, 0x33, 0x32, 0x30, 0x31, 0x33) + // write "263201" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x31) if err != nil { return } @@ -1135,8 +1135,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // write "26321411" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x31, 0x34, 0x31, 0x31) + // write "263214" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x34) if err != nil { return } @@ -1154,8 +1154,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // write "26324411" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x34, 0x34, 0x31, 0x31) + // write "263244" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x34, 0x34) if err != nil { return } @@ -1173,8 +1173,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000) == 0 { // if not empty - // write "26323811" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x38, 0x31, 0x31) + // write "263238" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x38) if err != nil { return } @@ -1192,8 +1192,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8000) == 0 { // if not empty - // write "2632103" - err = en.Append(0xa7, 0x32, 0x36, 0x33, 0x32, 0x31, 0x30, 0x33) + // write "263210" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x30) if err != nil { return } @@ -1211,8 +1211,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10000) == 0 { // if not empty - // write "26323731" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x37, 0x33, 0x31) + // write "263237" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x37) if err != nil { return } @@ -1230,8 +1230,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20000) == 0 { // if not empty - // write "26320564" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x30, 0x35, 0x36, 0x34) + // write "263205" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x35) if err != nil { return } @@ -1249,8 +1249,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40000) == 0 { // if not empty - // write "26323431" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x34, 0x33, 0x31) + // write "263234" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x34) if err != nil { return } @@ -1268,8 +1268,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80000) == 0 { // if not empty - // write "2673043" - err = en.Append(0xa7, 0x32, 0x36, 0x37, 0x33, 0x30, 0x34, 0x33) + // write "267304" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x34) if err != nil { return } @@ -1287,8 +1287,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100000) == 0 { // if not empty - // write "2632323" - err = en.Append(0xa7, 0x32, 0x36, 0x33, 0x32, 0x33, 0x32, 0x33) + // write "263232" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x32) if err != nil { return } @@ -1306,8 +1306,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200000) == 0 { // if not empty - // write "26323611" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x36, 0x31, 0x31) + // write "263236" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x36) if err != nil { return } @@ -1325,8 +1325,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400000) == 0 { // if not empty - // write "2632353" - err = en.Append(0xa7, 0x32, 0x36, 0x33, 0x32, 0x33, 0x35, 0x33) + // write "263235" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x35) if err != nil { return } @@ -1344,8 +1344,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800000) == 0 { // if not empty - // write "26321531" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x31, 0x35, 0x33, 0x31) + // write "263215" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x35) if err != nil { return } @@ -1363,8 +1363,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000000) == 0 { // if not empty - // write "2632413" - err = en.Append(0xa7, 0x32, 0x36, 0x33, 0x32, 0x34, 0x31, 0x33) + // write "263241" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x34, 0x31) if err != nil { return } @@ -1382,8 +1382,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000000) == 0 { // if not empty - // write "26317511" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x35, 0x31, 0x31) + // write "263175" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x35) if err != nil { return } @@ -1401,8 +1401,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000000) == 0 { // if not empty - // write "26323931" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x39, 0x33, 0x31) + // write "263239" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x39) if err != nil { return } @@ -1420,8 +1420,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8000000) == 0 { // if not empty - // write "26317264" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x32, 0x36, 0x34) + // write "263172" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x32) if err != nil { return } @@ -1439,8 +1439,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10000000) == 0 { // if not empty - // write "2632033" - err = en.Append(0xa7, 0x32, 0x36, 0x33, 0x32, 0x30, 0x33, 0x33) + // write "263203" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x33) if err != nil { return } @@ -1458,8 +1458,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20000000) == 0 { // if not empty - // write "2631693" - err = en.Append(0xa7, 0x32, 0x36, 0x33, 0x31, 0x36, 0x39, 0x33) + // write "263169" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x36, 0x39) if err != nil { return } @@ -1477,8 +1477,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40000000) == 0 { // if not empty - // write "26320911" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x30, 0x39, 0x31, 0x31) + // write "263209" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x39) if err != nil { return } @@ -1496,8 +1496,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80000000) == 0 { // if not empty - // write "26321111" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x31, 0x31, 0x31, 0x31) + // write "263211" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x31) if err != nil { return } @@ -1515,8 +1515,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100000000) == 0 { // if not empty - // write "2632023" - err = en.Append(0xa7, 0x32, 0x36, 0x33, 0x32, 0x30, 0x32, 0x33) + // write "263202" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x32) if err != nil { return } @@ -1534,8 +1534,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200000000) == 0 { // if not empty - // write "26317111" - err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x31, 0x31, 0x31) + // write "263171" + err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x31) if err != nil { return } @@ -1553,8 +1553,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400000000) == 0 { // if not empty - // write "26758464" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x35, 0x38, 0x34, 0x36, 0x34) + // write "267584" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x35, 0x38, 0x34) if err != nil { return } @@ -1572,8 +1572,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800000000) == 0 { // if not empty - // write "26758531" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x35, 0x38, 0x35, 0x33, 0x31) + // write "267585" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x35, 0x38, 0x35) if err != nil { return } @@ -1591,8 +1591,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000000000) == 0 { // if not empty - // write "26758831" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x35, 0x38, 0x38, 0x33, 0x31) + // write "267588" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x35, 0x38, 0x38) if err != nil { return } @@ -1610,8 +1610,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000000000) == 0 { // if not empty - // write "26763164" - err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x36, 0x33, 0x31, 0x36, 0x34) + // write "267631" + err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x33, 0x31) if err != nil { return } @@ -1629,8 +1629,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000000000) == 0 { // if not empty - // write "140503" - err = en.Append(0xa6, 0x31, 0x34, 0x30, 0x35, 0x30, 0x33) + // write "14050" + err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x35, 0x30) if err != nil { return } @@ -1818,8 +1818,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // string "2676483" - o = append(o, 0xa7, 0x32, 0x36, 0x37, 0x36, 0x34, 0x38, 0x33) + // string "267648" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x34, 0x38) if z.FlagString == nil { o = msgp.AppendNil(o) } else { @@ -1827,8 +1827,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // string "2631705" - o = append(o, 0xa7, 0x32, 0x36, 0x33, 0x31, 0x37, 0x30, 0x35) + // string "263170" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x30) if z.PercentComplete == nil { o = msgp.AppendNil(o) } else { @@ -1836,8 +1836,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // string "2632423" - o = append(o, 0xa7, 0x32, 0x36, 0x33, 0x32, 0x34, 0x32, 0x33) + // string "263242" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x34, 0x32) if z.TaskAcceptanceState == nil { o = msgp.AppendNil(o) } else { @@ -1845,8 +1845,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // string "26317611" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x36, 0x31, 0x31) + // string "263176" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x36) if z.TaskAccepted == nil { o = msgp.AppendNil(o) } else { @@ -1854,8 +1854,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "2632003" - o = append(o, 0xa7, 0x32, 0x36, 0x33, 0x32, 0x30, 0x30, 0x33) + // string "263200" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x30) if z.TaskActualEffort == nil { o = msgp.AppendNil(o) } else { @@ -1863,8 +1863,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // string "26323331" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x33, 0x33, 0x31) + // string "263233" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x33) if z.TaskAssigner == nil { o = msgp.AppendNil(o) } else { @@ -1872,8 +1872,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // string "26321211" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x31, 0x32, 0x31, 0x31) + // string "263212" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x32) if z.TaskComplete == nil { o = msgp.AppendNil(o) } else { @@ -1881,8 +1881,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // string "2632733" - o = append(o, 0xa7, 0x32, 0x36, 0x33, 0x32, 0x37, 0x33, 0x33) + // string "263273" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x37, 0x33) if z.TaskCustomFlags == nil { o = msgp.AppendNil(o) } else { @@ -1890,8 +1890,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // string "26318364" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x31, 0x38, 0x33, 0x36, 0x34) + // string "263183" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x38, 0x33) if z.TaskDateCompleted == nil { o = msgp.AppendNil(o) } else { @@ -1899,8 +1899,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // string "26317711" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x37, 0x31, 0x31) + // string "263177" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x37) if z.TaskDeadOccurrence == nil { o = msgp.AppendNil(o) } else { @@ -1908,8 +1908,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // string "26317364" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x33, 0x36, 0x34) + // string "263173" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x33) if z.TaskDueDate == nil { o = msgp.AppendNil(o) } else { @@ -1917,8 +1917,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // string "2632013" - o = append(o, 0xa7, 0x32, 0x36, 0x33, 0x32, 0x30, 0x31, 0x33) + // string "263201" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x31) if z.TaskEstimatedEffort == nil { o = msgp.AppendNil(o) } else { @@ -1926,8 +1926,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // string "26321411" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x31, 0x34, 0x31, 0x31) + // string "263214" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x34) if z.TaskfCreator == nil { o = msgp.AppendNil(o) } else { @@ -1935,8 +1935,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // string "26324411" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x34, 0x34, 0x31, 0x31) + // string "263244" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x34, 0x34) if z.TaskfFixOffline == nil { o = msgp.AppendNil(o) } else { @@ -1944,8 +1944,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000) == 0 { // if not empty - // string "26323811" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x38, 0x31, 0x31) + // string "263238" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x38) if z.TaskfRecurring == nil { o = msgp.AppendNil(o) } else { @@ -1953,8 +1953,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8000) == 0 { // if not empty - // string "2632103" - o = append(o, 0xa7, 0x32, 0x36, 0x33, 0x32, 0x31, 0x30, 0x33) + // string "263210" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x30) if z.TaskHistory == nil { o = msgp.AppendNil(o) } else { @@ -1962,8 +1962,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10000) == 0 { // if not empty - // string "26323731" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x37, 0x33, 0x31) + // string "263237" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x37) if z.TaskLastDelegate == nil { o = msgp.AppendNil(o) } else { @@ -1971,8 +1971,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20000) == 0 { // if not empty - // string "26320564" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x30, 0x35, 0x36, 0x34) + // string "263205" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x35) if z.TaskLastUpdate == nil { o = msgp.AppendNil(o) } else { @@ -1980,8 +1980,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40000) == 0 { // if not empty - // string "26323431" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x34, 0x33, 0x31) + // string "263234" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x34) if z.TaskLastUser == nil { o = msgp.AppendNil(o) } else { @@ -1989,8 +1989,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80000) == 0 { // if not empty - // string "2673043" - o = append(o, 0xa7, 0x32, 0x36, 0x37, 0x33, 0x30, 0x34, 0x33) + // string "267304" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x34) if z.TaskMode == nil { o = msgp.AppendNil(o) } else { @@ -1998,8 +1998,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100000) == 0 { // if not empty - // string "2632323" - o = append(o, 0xa7, 0x32, 0x36, 0x33, 0x32, 0x33, 0x32, 0x33) + // string "263232" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x32) if z.TaskMultipleRecipients == nil { o = msgp.AppendNil(o) } else { @@ -2007,8 +2007,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200000) == 0 { // if not empty - // string "26323611" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x36, 0x31, 0x31) + // string "263236" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x36) if z.TaskNoCompute == nil { o = msgp.AppendNil(o) } else { @@ -2016,8 +2016,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400000) == 0 { // if not empty - // string "2632353" - o = append(o, 0xa7, 0x32, 0x36, 0x33, 0x32, 0x33, 0x35, 0x33) + // string "263235" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x35) if z.TaskOrdinal == nil { o = msgp.AppendNil(o) } else { @@ -2025,8 +2025,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800000) == 0 { // if not empty - // string "26321531" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x31, 0x35, 0x33, 0x31) + // string "263215" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x35) if z.TaskOwner == nil { o = msgp.AppendNil(o) } else { @@ -2034,8 +2034,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000000) == 0 { // if not empty - // string "2632413" - o = append(o, 0xa7, 0x32, 0x36, 0x33, 0x32, 0x34, 0x31, 0x33) + // string "263241" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x34, 0x31) if z.TaskOwnership == nil { o = msgp.AppendNil(o) } else { @@ -2043,8 +2043,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000000) == 0 { // if not empty - // string "26317511" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x35, 0x31, 0x31) + // string "263175" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x35) if z.TaskResetReminder == nil { o = msgp.AppendNil(o) } else { @@ -2052,8 +2052,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000000) == 0 { // if not empty - // string "26323931" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x39, 0x33, 0x31) + // string "263239" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x39) if z.TaskRole == nil { o = msgp.AppendNil(o) } else { @@ -2061,8 +2061,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8000000) == 0 { // if not empty - // string "26317264" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x32, 0x36, 0x34) + // string "263172" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x32) if z.TaskStartDate == nil { o = msgp.AppendNil(o) } else { @@ -2070,8 +2070,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10000000) == 0 { // if not empty - // string "2632033" - o = append(o, 0xa7, 0x32, 0x36, 0x33, 0x32, 0x30, 0x33, 0x33) + // string "263203" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x33) if z.TaskState == nil { o = msgp.AppendNil(o) } else { @@ -2079,8 +2079,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20000000) == 0 { // if not empty - // string "2631693" - o = append(o, 0xa7, 0x32, 0x36, 0x33, 0x31, 0x36, 0x39, 0x33) + // string "263169" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x36, 0x39) if z.TaskStatus == nil { o = msgp.AppendNil(o) } else { @@ -2088,8 +2088,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40000000) == 0 { // if not empty - // string "26320911" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x30, 0x39, 0x31, 0x31) + // string "263209" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x39) if z.TaskStatusOnComplete == nil { o = msgp.AppendNil(o) } else { @@ -2097,8 +2097,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80000000) == 0 { // if not empty - // string "26321111" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x31, 0x31, 0x31, 0x31) + // string "263211" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x31) if z.TaskUpdates == nil { o = msgp.AppendNil(o) } else { @@ -2106,8 +2106,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100000000) == 0 { // if not empty - // string "2632023" - o = append(o, 0xa7, 0x32, 0x36, 0x33, 0x32, 0x30, 0x32, 0x33) + // string "263202" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x32) if z.TaskVersion == nil { o = msgp.AppendNil(o) } else { @@ -2115,8 +2115,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200000000) == 0 { // if not empty - // string "26317111" - o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x31, 0x31, 0x31) + // string "263171" + o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x31) if z.TeamTask == nil { o = msgp.AppendNil(o) } else { @@ -2124,8 +2124,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400000000) == 0 { // if not empty - // string "26758464" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x35, 0x38, 0x34, 0x36, 0x34) + // string "267584" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x35, 0x38, 0x34) if z.ToDoOrdinalDate == nil { o = msgp.AppendNil(o) } else { @@ -2133,8 +2133,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800000000) == 0 { // if not empty - // string "26758531" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x35, 0x38, 0x35, 0x33, 0x31) + // string "267585" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x35, 0x38, 0x35) if z.ToDoSubOrdinal == nil { o = msgp.AppendNil(o) } else { @@ -2142,8 +2142,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000000000) == 0 { // if not empty - // string "26758831" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x35, 0x38, 0x38, 0x33, 0x31) + // string "267588" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x35, 0x38, 0x38) if z.ToDoTitle == nil { o = msgp.AppendNil(o) } else { @@ -2151,8 +2151,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000000000) == 0 { // if not empty - // string "26763164" - o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x36, 0x33, 0x31, 0x36, 0x34) + // string "267631" + o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x33, 0x31) if z.ValidFlagStringProof == nil { o = msgp.AppendNil(o) } else { @@ -2160,8 +2160,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000000000) == 0 { // if not empty - // string "140503" - o = append(o, 0xa6, 0x31, 0x34, 0x30, 0x35, 0x30, 0x33) + // string "14050" + o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x35, 0x30) if z.OrdinalMost == nil { o = msgp.AppendNil(o) } else { @@ -2189,7 +2189,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "2676483": + case "267648": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2206,7 +2206,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2631705": + case "263170": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2223,7 +2223,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2632423": + case "263242": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2240,7 +2240,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26317611": + case "263176": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2257,7 +2257,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2632003": + case "263200": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2274,7 +2274,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26323331": + case "263233": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2291,7 +2291,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26321211": + case "263212": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2308,7 +2308,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2632733": + case "263273": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2325,7 +2325,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26318364": + case "263183": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2342,7 +2342,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26317711": + case "263177": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2359,7 +2359,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26317364": + case "263173": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2376,7 +2376,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2632013": + case "263201": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2393,7 +2393,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26321411": + case "263214": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2410,7 +2410,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26324411": + case "263244": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2427,7 +2427,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26323811": + case "263238": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2444,7 +2444,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2632103": + case "263210": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2461,7 +2461,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26323731": + case "263237": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2478,7 +2478,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26320564": + case "263205": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2495,7 +2495,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26323431": + case "263234": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2512,7 +2512,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2673043": + case "267304": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2529,7 +2529,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2632323": + case "263232": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2546,7 +2546,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26323611": + case "263236": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2563,7 +2563,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2632353": + case "263235": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2580,7 +2580,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26321531": + case "263215": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2597,7 +2597,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2632413": + case "263241": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2614,7 +2614,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26317511": + case "263175": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2631,7 +2631,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26323931": + case "263239": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2648,7 +2648,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26317264": + case "263172": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2665,7 +2665,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2632033": + case "263203": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2682,7 +2682,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2631693": + case "263169": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2699,7 +2699,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26320911": + case "263209": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2716,7 +2716,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26321111": + case "263211": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2733,7 +2733,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2632023": + case "263202": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2750,7 +2750,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26317111": + case "263171": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2767,7 +2767,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26758464": + case "267584": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2784,7 +2784,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26758531": + case "267585": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2801,7 +2801,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26758831": + case "267588": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2818,7 +2818,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26763164": + case "267631": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2835,7 +2835,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "140503": + case "14050": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2866,235 +2866,235 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Task) Msgsize() (s int) { - s = 3 + 8 + s = 3 + 7 if z.FlagString == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.PercentComplete == nil { s += msgp.NilSize } else { s += msgp.Float64Size } - s += 8 + s += 7 if z.TaskAcceptanceState == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.TaskAccepted == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 7 if z.TaskActualEffort == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.TaskAssigner == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TaskAssigner) } - s += 9 + s += 7 if z.TaskComplete == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 7 if z.TaskCustomFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.TaskDateCompleted == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.TaskDeadOccurrence == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.TaskDueDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.TaskEstimatedEffort == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.TaskfCreator == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.TaskfFixOffline == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.TaskfRecurring == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 7 if z.TaskHistory == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.TaskLastDelegate == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TaskLastDelegate) } - s += 9 + s += 7 if z.TaskLastUpdate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.TaskLastUser == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TaskLastUser) } - s += 8 + s += 7 if z.TaskMode == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.TaskMultipleRecipients == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.TaskNoCompute == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 7 if z.TaskOrdinal == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.TaskOwner == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TaskOwner) } - s += 8 + s += 7 if z.TaskOwnership == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.TaskResetReminder == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.TaskRole == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TaskRole) } - s += 9 + s += 7 if z.TaskStartDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 8 + s += 7 if z.TaskState == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 7 if z.TaskStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.TaskStatusOnComplete == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.TaskUpdates == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 8 + s += 7 if z.TaskVersion == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 9 + s += 7 if z.TeamTask == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 9 + s += 7 if z.ToDoOrdinalDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 9 + s += 7 if z.ToDoSubOrdinal == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ToDoSubOrdinal) } - s += 9 + s += 7 if z.ToDoTitle == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ToDoTitle) } - s += 9 + s += 7 if z.ValidFlagStringProof == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 6 if z.OrdinalMost == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/voicemail.pb.go b/pkg/properties/voicemail.pb.go index ed6f6ba..d6e1188 100644 --- a/pkg/properties/voicemail.pb.go +++ b/pkg/properties/voicemail.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.2 // source: voicemail.proto package properties @@ -60,17 +60,17 @@ type Voicemail struct { // Contains the name of the caller who left the attached voice message, as provided by the voice network's caller ID system. XVoiceMessageSenderName *string `protobuf:"bytes,9,opt,name=x_voice_message_sender_name,json=xVoiceMessageSenderName,proto3,oneof" json:"x_voice_message_sender_name,omitempty"` // Contains a unique identifier associated with the phone call. - CallId *string `protobuf:"bytes,10,opt,name=call_id,json=callId,proto3,oneof" json:"call_id,omitempty" msg:"2663031,omitempty"` + CallId *string `protobuf:"bytes,10,opt,name=call_id,json=callId,proto3,oneof" json:"call_id,omitempty" msg:"26630,omitempty" type:"31,omitempty"` // Contains the number of pages in a Fax object. - FaxNumberOfPages *int32 `protobuf:"varint,11,opt,name=fax_number_of_pages,json=faxNumberOfPages,proto3,oneof" json:"fax_number_of_pages,omitempty" msg:"266283,omitempty"` + FaxNumberOfPages *int32 `protobuf:"varint,11,opt,name=fax_number_of_pages,json=faxNumberOfPages,proto3,oneof" json:"fax_number_of_pages,omitempty" msg:"26628,omitempty" type:"3,omitempty"` // Contains the telephone number of the caller associated with a voice mail message. - SenderTelephoneNumber *string `protobuf:"bytes,12,opt,name=sender_telephone_number,json=senderTelephoneNumber,proto3,oneof" json:"sender_telephone_number,omitempty" msg:"2662631,omitempty"` + SenderTelephoneNumber *string `protobuf:"bytes,12,opt,name=sender_telephone_number,json=senderTelephoneNumber,proto3,oneof" json:"sender_telephone_number,omitempty" msg:"26626,omitempty" type:"31,omitempty"` // Contains a list of file names for the audio file attachments that are to be played as part of a message. - VoiceMessageAttachmentOrder *string `protobuf:"bytes,13,opt,name=voice_message_attachment_order,json=voiceMessageAttachmentOrder,proto3,oneof" json:"voice_message_attachment_order,omitempty" msg:"2662931,omitempty"` + VoiceMessageAttachmentOrder *string `protobuf:"bytes,13,opt,name=voice_message_attachment_order,json=voiceMessageAttachmentOrder,proto3,oneof" json:"voice_message_attachment_order,omitempty" msg:"26629,omitempty" type:"31,omitempty"` // Specifies the length of the attached audio message, in seconds. - VoiceMessageDuration *int32 `protobuf:"varint,14,opt,name=voice_message_duration,json=voiceMessageDuration,proto3,oneof" json:"voice_message_duration,omitempty" msg:"266253,omitempty"` + VoiceMessageDuration *int32 `protobuf:"varint,14,opt,name=voice_message_duration,json=voiceMessageDuration,proto3,oneof" json:"voice_message_duration,omitempty" msg:"26625,omitempty" type:"3,omitempty"` // Specifies the name of the caller who left the attached voice message, as provided by the voice network's caller ID system. - VoiceMessageSenderName *string `protobuf:"bytes,15,opt,name=voice_message_sender_name,json=voiceMessageSenderName,proto3,oneof" json:"voice_message_sender_name,omitempty" msg:"2662731,omitempty"` + VoiceMessageSenderName *string `protobuf:"bytes,15,opt,name=voice_message_sender_name,json=voiceMessageSenderName,proto3,oneof" json:"voice_message_sender_name,omitempty" msg:"26627,omitempty" type:"31,omitempty"` } func (x *Voicemail) Reset() { diff --git a/pkg/properties/voicemail.pb_gen.go b/pkg/properties/voicemail.pb_gen.go index 6f85d4f..6705bdb 100644 --- a/pkg/properties/voicemail.pb_gen.go +++ b/pkg/properties/voicemail.pb_gen.go @@ -168,7 +168,7 @@ func (z *Voicemail) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2663031": + case "26630": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Voicemail) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "266283": + case "26628": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Voicemail) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2662631": + case "26626": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Voicemail) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2662931": + case "26629": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Voicemail) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "266253": + case "26625": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Voicemail) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2662731": + case "26627": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -461,8 +461,8 @@ func (z *Voicemail) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // write "2663031" - err = en.Append(0xa7, 0x32, 0x36, 0x36, 0x33, 0x30, 0x33, 0x31) + // write "26630" + err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x33, 0x30) if err != nil { return } @@ -480,8 +480,8 @@ func (z *Voicemail) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // write "266283" - err = en.Append(0xa6, 0x32, 0x36, 0x36, 0x32, 0x38, 0x33) + // write "26628" + err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x32, 0x38) if err != nil { return } @@ -499,8 +499,8 @@ func (z *Voicemail) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // write "2662631" - err = en.Append(0xa7, 0x32, 0x36, 0x36, 0x32, 0x36, 0x33, 0x31) + // write "26626" + err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x32, 0x36) if err != nil { return } @@ -518,8 +518,8 @@ func (z *Voicemail) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // write "2662931" - err = en.Append(0xa7, 0x32, 0x36, 0x36, 0x32, 0x39, 0x33, 0x31) + // write "26629" + err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x32, 0x39) if err != nil { return } @@ -537,8 +537,8 @@ func (z *Voicemail) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // write "266253" - err = en.Append(0xa6, 0x32, 0x36, 0x36, 0x32, 0x35, 0x33) + // write "26625" + err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x32, 0x35) if err != nil { return } @@ -556,8 +556,8 @@ func (z *Voicemail) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // write "2662731" - err = en.Append(0xa7, 0x32, 0x36, 0x36, 0x32, 0x37, 0x33, 0x31) + // write "26627" + err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x32, 0x37) if err != nil { return } @@ -669,8 +669,8 @@ func (z *Voicemail) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.AppendString(o, *z.XVoiceMessageSenderName) } if (zb0001Mask & 0x100) == 0 { // if not empty - // string "2663031" - o = append(o, 0xa7, 0x32, 0x36, 0x36, 0x33, 0x30, 0x33, 0x31) + // string "26630" + o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x33, 0x30) if z.CallId == nil { o = msgp.AppendNil(o) } else { @@ -678,8 +678,8 @@ func (z *Voicemail) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // string "266283" - o = append(o, 0xa6, 0x32, 0x36, 0x36, 0x32, 0x38, 0x33) + // string "26628" + o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x32, 0x38) if z.FaxNumberOfPages == nil { o = msgp.AppendNil(o) } else { @@ -687,8 +687,8 @@ func (z *Voicemail) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // string "2662631" - o = append(o, 0xa7, 0x32, 0x36, 0x36, 0x32, 0x36, 0x33, 0x31) + // string "26626" + o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x32, 0x36) if z.SenderTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -696,8 +696,8 @@ func (z *Voicemail) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // string "2662931" - o = append(o, 0xa7, 0x32, 0x36, 0x36, 0x32, 0x39, 0x33, 0x31) + // string "26629" + o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x32, 0x39) if z.VoiceMessageAttachmentOrder == nil { o = msgp.AppendNil(o) } else { @@ -705,8 +705,8 @@ func (z *Voicemail) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // string "266253" - o = append(o, 0xa6, 0x32, 0x36, 0x36, 0x32, 0x35, 0x33) + // string "26625" + o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x32, 0x35) if z.VoiceMessageDuration == nil { o = msgp.AppendNil(o) } else { @@ -714,8 +714,8 @@ func (z *Voicemail) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // string "2662731" - o = append(o, 0xa7, 0x32, 0x36, 0x36, 0x32, 0x37, 0x33, 0x31) + // string "26627" + o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x32, 0x37) if z.VoiceMessageSenderName == nil { o = msgp.AppendNil(o) } else { @@ -879,7 +879,7 @@ func (z *Voicemail) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2663031": + case "26630": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -896,7 +896,7 @@ func (z *Voicemail) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "266283": + case "26628": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -913,7 +913,7 @@ func (z *Voicemail) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2662631": + case "26626": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -930,7 +930,7 @@ func (z *Voicemail) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2662931": + case "26629": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -947,7 +947,7 @@ func (z *Voicemail) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "266253": + case "26625": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -964,7 +964,7 @@ func (z *Voicemail) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2662731": + case "26627": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1043,37 +1043,37 @@ func (z *Voicemail) Msgsize() (s int) { } else { s += msgp.StringPrefixSize + len(*z.XVoiceMessageSenderName) } - s += 8 + s += 6 if z.CallId == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CallId) } - s += 7 + s += 6 if z.FaxNumberOfPages == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.SenderTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SenderTelephoneNumber) } - s += 8 + s += 6 if z.VoiceMessageAttachmentOrder == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.VoiceMessageAttachmentOrder) } - s += 7 + s += 6 if z.VoiceMessageDuration == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 8 + s += 6 if z.VoiceMessageSenderName == nil { s += msgp.NilSize } else { diff --git a/pkg/property_reader.go b/pkg/property_reader.go index 846d87f..c6c180f 100644 --- a/pkg/property_reader.go +++ b/pkg/property_reader.go @@ -60,7 +60,7 @@ func NewPropertyReader(property Property, heapOnNode *HeapOnNode, file *File, lo // WriteMessagePackValue writes the Message Pack format of the property value. // Used to populate struct fields. func (propertyReader *PropertyReader) WriteMessagePackValue(writer *msgp.Writer) error { - key := fmt.Sprintf("%d%d", propertyReader.Property.ID, propertyReader.Property.Type) + key := fmt.Sprintf("%d", propertyReader.Property.ID) switch propertyReader.Property.Type { case PropertyTypeString: diff --git a/pkg/table_context.go b/pkg/table_context.go index acdf4fe..f75e61f 100644 --- a/pkg/table_context.go +++ b/pkg/table_context.go @@ -226,7 +226,8 @@ func (file *File) GetTableContextProperty(tableRowMatrixReader io.ReaderAt, rowO } // ColumnDescriptor represents a column in the Table Context. -// References "Table Context", "Table Context Column Descriptor". +// References: +// - https://github.com/mooijtech/go-pst/blob/main/docs/README.md#tcoldesc type ColumnDescriptor struct { PropertyType PropertyType PropertyID uint16 diff --git a/pkg/writer/attachment_writer.go b/pkg/writer/attachment_writer.go index 6a736bd..a55af06 100644 --- a/pkg/writer/attachment_writer.go +++ b/pkg/writer/attachment_writer.go @@ -35,7 +35,7 @@ func NewAttachmentWriter(properties *properties.Attachment) *AttachmentWriter { } } -// WriteTo writes the attachment pst.TableContext. +// WriteTo writes the attachment. func (attachmentWriter *AttachmentWriter) WriteTo(writer io.Writer) (int64, error) { propertyContextWrittenSize, err := attachmentWriter.PropertyContextWriter.WriteTo(writer) diff --git a/pkg/writer/btree_writer.go b/pkg/writer/btree_writer.go index 4443865..7765fb7 100644 --- a/pkg/writer/btree_writer.go +++ b/pkg/writer/btree_writer.go @@ -31,7 +31,9 @@ type BTreeWriter struct { // NewBTreeWriter creates a new BTreeWriter. func NewBTreeWriter(formatType pst.FormatType) *BTreeWriter { - return &BTreeWriter{FormatType: formatType} + return &BTreeWriter{ + FormatType: formatType, + } } // WriteTo writes the B-Tree. @@ -95,23 +97,3 @@ func (btreeWriter *BTreeWriter) WriteTo(writer io.Writer, btreeType pst.BTreeTyp func (btreeWriter *BTreeWriter) WritePageTrailer(writer io.Writer) (int64, error) { return 0, nil } - -// WriteBTreeNode writes the b-tree node entry. -func (btreeWriter *BTreeWriter) WriteBTreeNode(writer io.Writer) (int64, error) { - var btreeNodeSize int - - switch btreeWriter.FormatType { - case pst.FormatTypeUnicode: - btreeNodeSize = 488 - case pst.FormatTypeANSI: - btreeNodeSize = 496 - default: - panic(pst.ErrFormatTypeUnsupported) - } - - btreeNode := bytes.NewBuffer(make([]byte, btreeNodeSize)) - - // TODO - - - return btreeNode.WriteTo(writer) -} diff --git a/pkg/writer/folder_writer.go b/pkg/writer/folder_writer.go index cfac1ed..0763443 100644 --- a/pkg/writer/folder_writer.go +++ b/pkg/writer/folder_writer.go @@ -17,6 +17,7 @@ package writer import ( + "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" "io" ) @@ -24,32 +25,19 @@ import ( // FolderWriter represents a writer for folders. type FolderWriter struct { // Properties represents the FolderProperties. - Properties FolderProperties + Properties *properties.Folder // Messages represents the messages in this folder. Messages []*MessageWriter // TableContextWriter writes the pst.TableContext of the pst.Folder. TableContextWriter *TableContextWriter } -// FolderProperties represents the properties of a pst.Folder. -// TODO - Move to properties.Folder. -type FolderProperties struct { - Name string -} - -// NewFolderProperties creates a new FolderProperties. -func NewFolderProperties(name string) FolderProperties { - return FolderProperties{ - Name: name, - } -} - // NewFolderWriter creates a new FolderWriter. -func NewFolderWriter(folderProperties FolderProperties, messages []*MessageWriter) *FolderWriter { +func NewFolderWriter(folderProperties *properties.Folder, messages []*MessageWriter) *FolderWriter { return &FolderWriter{ Properties: folderProperties, Messages: messages, - TableContextWriter: NewTableContextWriter(), + TableContextWriter: NewTableContextWriter(folderProperties), } } diff --git a/pkg/writer/local_descriptors_writer.go b/pkg/writer/local_descriptors_writer.go index c23d586..50504f9 100644 --- a/pkg/writer/local_descriptors_writer.go +++ b/pkg/writer/local_descriptors_writer.go @@ -16,6 +16,8 @@ package writer +import "io" + // LocalDescriptorsWriter represents a writer for Local Descriptors. // (B-Tree Nodes pointing to other B-Tree Nodes) type LocalDescriptorsWriter struct { @@ -26,7 +28,7 @@ func NewLocalDescriptorsWriter() *LocalDescriptorsWriter { return &LocalDescriptorsWriter{} } -// Write writes the Local Descriptors. -func (localDescriptorsWriter *LocalDescriptorsWriter) Write() error { - return nil +// WriteTo writes the Local Descriptors. +func (localDescriptorsWriter *LocalDescriptorsWriter) WriteTo(writer io.Writer) (int64, error) { + return 0, nil } diff --git a/pkg/writer/message_store_writer.go b/pkg/writer/message_store_writer.go index ab2034e..114b8f5 100644 --- a/pkg/writer/message_store_writer.go +++ b/pkg/writer/message_store_writer.go @@ -26,8 +26,6 @@ type MessageStoreWriter struct { PropertyContextWriter *PropertyContextWriter } -// TODO - properties.MessageStore - // NewMessageStoreWriter creates a new MessageStoreWriter. func NewMessageStoreWriter(propertyContextWriter *PropertyContextWriter) *MessageStoreWriter { return &MessageStoreWriter{ diff --git a/pkg/writer/message_writer.go b/pkg/writer/message_writer.go index 38b0c30..75f3d40 100644 --- a/pkg/writer/message_writer.go +++ b/pkg/writer/message_writer.go @@ -28,7 +28,6 @@ type MessageWriter struct { Properties *properties.Message // Attachments represents the attachments of a pst.Message. Attachments []*AttachmentWriter - // PropertyContextWriter writes the pst.PropertyContext of a pst.Message. PropertyContextWriter *PropertyContextWriter } diff --git a/pkg/writer/table_context_writer.go b/pkg/writer/table_context_writer.go index 9f29fe9..e698445 100644 --- a/pkg/writer/table_context_writer.go +++ b/pkg/writer/table_context_writer.go @@ -18,30 +18,40 @@ package writer import ( "bytes" + "cmp" + "encoding/binary" + "fmt" pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" + "google.golang.org/protobuf/proto" "io" + "reflect" + "slices" + "strconv" ) // TableContextWriter represents a writer for a pst.TableContext. type TableContextWriter struct { // BTreeOnHeapWriter represents the BTreeOnHeapWriter. BTreeOnHeapWriter *BTreeOnHeapWriter - // Properties represents the pst.TableContext properties. - Properties [][]pst.Property // TODO - Init ?? + // Properties represents the properties to write. + Properties proto.Message } // NewTableContextWriter creates a new TableContextWriter. -func NewTableContextWriter() *TableContextWriter { +func NewTableContextWriter(properties proto.Message) *TableContextWriter { heapOnNodeWriter := NewHeapOnNodeWriter(pst.SignatureTypeTableContext) btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) return &TableContextWriter{ BTreeOnHeapWriter: btreeOnHeapWriter, + Properties: properties, } } // WriteTo writes the pst.TableContext. +// References: +// - https://github.com/mooijtech/go-pst/blob/main/docs/README.md#creating-a-tc func (tableContextWriter *TableContextWriter) WriteTo(writer io.Writer) (int64, error) { btreeOnHeapWrittenSize, err := tableContextWriter.BTreeOnHeapWriter.WriteTo(writer) @@ -49,6 +59,7 @@ func (tableContextWriter *TableContextWriter) WriteTo(writer io.Writer) (int64, return 0, eris.Wrap(err, "failed to write BTree-on-Heap") } + // TODO - Make column descriptors from properties. headerWrittenSize, err := tableContextWriter.WriteHeader(writer) if err != nil { @@ -58,18 +69,123 @@ func (tableContextWriter *TableContextWriter) WriteTo(writer io.Writer) (int64, return btreeOnHeapWrittenSize + headerWrittenSize, nil } +// WriteColumnDescriptor writes the pst.ColumnDescriptor. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#tcoldesc +func (tableContextWriter *TableContextWriter) WriteColumnDescriptor(writer io.Writer, columnDescriptor pst.ColumnDescriptor) (int64, error) { + columnDescriptorBuffer := bytes.NewBuffer(make([]byte, 8)) + + columnDescriptorBuffer.Write(GetUint16(columnDescriptor.PropertyID)) + columnDescriptorBuffer.Write(GetUint16(columnDescriptor.DataOffset)) + columnDescriptorBuffer.WriteByte(columnDescriptor.DataSize) + columnDescriptorBuffer.WriteByte(columnDescriptor.CellExistenceBitmapIndex) + + return columnDescriptorBuffer.WriteTo(writer) +} + +// GetColumnDescriptors returns the Column Descriptors based on the properties. +func (tableContextWriter *TableContextWriter) GetColumnDescriptors() ([][]byte, error) { + var columnDescriptors [][]byte + + propertyTypes := reflect.TypeOf(tableContextWriter.Properties).Elem() + + for i := 0; i < propertyTypes.NumField(); i++ { + propertyField := propertyTypes.Field(i) + + if !propertyField.IsExported() { + continue + } + + tagPropertyID, ok := propertyField.Tag.Lookup("msg") + + if !ok { + // No property ID in the tag. + fmt.Printf("Skipping property without ID: %s\n", propertyField.Name) + continue + } + + tagPropertyType, ok := propertyField.Tag.Lookup("type") + + if !ok { + fmt.Printf("Skipping property without type: %s\n", propertyField.Name) + continue + } + + propertyID, err := strconv.Atoi(tagPropertyID) + + if err != nil { + return nil, eris.Wrap(err, "failed to convert propertyID to int") + } + + propertyType, err := strconv.Atoi(tagPropertyType) + + if err != nil { + return nil, eris.Wrap(err, "failed to convert propertyType to int") + } + + // Write column descriptor. + columnDescriptorBuffer := bytes.NewBuffer(make([]byte, 8)) + + columnDescriptorBuffer.Write(GetUint16(uint16(propertyID))) + columnDescriptorBuffer.Write(GetUint16(uint16(propertyType))) + // TODO - Offset + // TODO - Size + // TODO - CellExistence + } + + return columnDescriptors, nil +} + // WriteHeader writes the pst.TableContext header. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#tcinfo func (tableContextWriter *TableContextWriter) WriteHeader(writer io.Writer) (int64, error) { - // ?+?+?+entries - header := bytes.NewBuffer(make([]byte, 0)) // TODO - fix size + columnDescriptors, err := tableContextWriter.GetColumnDescriptors() - // MUST be set to bTypeTC + if err != nil { + return 0, eris.Wrap(err, "failed to get column descriptors") + } + + // 1+1+8+4+4+4+columnDescriptors + header := bytes.NewBuffer(make([]byte, 22+(8*len(columnDescriptors)))) + + // MUST be set to bTypeTC. header.Write([]byte{byte(pst.SignatureTypeTableContext)}) - // Column count - header.Write([]byte{byte(len(tableContextWriter.Properties))}) + + // Column count. + header.WriteByte(byte(len(columnDescriptors))) + + // This is an array of 4 16-bit values that specify the offsets of various groups of data in the actual row data. + header.Write(make([]byte, 2)) // Ending offset of 8- and 4-byte data value group. + header.Write(make([]byte, 2)) // Ending offset of 2-byte data value group. + header.Write(make([]byte, 2)) // Ending offset of 1-byte data value group. + header.Write(make([]byte, 2)) // Ending offset of the Cell Existence Block. + + // HID to the Row ID BTH (hidRowIndex). + // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#tcrowid + header.Write(make([]byte, 4)) + + // HNID to the Row Matrix (that is, actual table data). (hnidRows) + header.Write(make([]byte, 4)) + + // Deprecated (hidIndex) + header.Write(make([]byte, 4)) + + // Sort column descriptors according to specification. + slices.SortFunc(columnDescriptors, func(a []byte, b []byte) int { + return cmp.Compare(binary.LittleEndian.Uint16(a[2:2+2]), binary.LittleEndian.Uint16(b[2:2+2])) + }) // Array of Column Descriptors. + for _, columnDescriptor := range columnDescriptors { + header.Write(columnDescriptor) + } return header.WriteTo(writer) } + +// WriteRowMatrix writes the Row Matrix of the Table Context. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#row-matrix +func (tableContextWriter *TableContextWriter) WriteRowMatrix(writer io.Writer) (int64, error) { + //rowMatrix := bytes.NewBuffer(make([]byte, 0)) // TODO - Size + + return 0, nil +} diff --git a/pkg/writer/writer_test.go b/pkg/writer/writer_test.go index 9532729..524b5dc 100644 --- a/pkg/writer/writer_test.go +++ b/pkg/writer/writer_test.go @@ -49,7 +49,7 @@ func TestWritePSTFile(t *testing.T) { message := NewMessageWriter(messageProperties, messageAttachments) - folderProperties := NewFolderProperties("root") + folderProperties := &properties.Folder{Name: "root"} rootFolder := NewFolderWriter(folderProperties, []*MessageWriter{message}) writer.AddFolder(rootFolder) @@ -59,14 +59,14 @@ func TestWritePSTFile(t *testing.T) { } } -// TestWritePSTFileFromExisting writes a PST file from an existing PST file. -func TestWritePSTFileFromExisting(t *testing.T) { - -} +func TestWriteTableContext(t *testing.T) { + attachmentProperties := properties.Attachment{ + AttachLongFilename: proto.String("nudes.png"), + } -// TestReadWrittenPSTFile tests if go-pst can read the written PST file without errors. -func TestReadWrittenPSTFile(t *testing.T) { - TestWritePSTFile(t) + tableContextWriter := NewTableContextWriter(&attachmentProperties) - // TODO - Read + if _, err := tableContextWriter.WriteTo(os.Stdout); err != nil { + t.Fatalf("Failed to write Table Context: %+v", err) + } } From 37f2014f8ce15acfbc7831201578a9f3c35f5e81 Mon Sep 17 00:00:00 2001 From: Marten Mooij Date: Thu, 31 Aug 2023 13:58:02 +0200 Subject: [PATCH 04/12] Fix struct field tags --- cmd/properties/generate.go | 2 +- cmd/properties/protobufs/address_book.proto | 90 +- cmd/properties/protobufs/appointment.proto | 236 +-- cmd/properties/protobufs/attachment.proto | 38 +- cmd/properties/protobufs/contact.proto | 214 +-- cmd/properties/protobufs/folder.proto | 24 - cmd/properties/protobufs/journal.proto | 20 +- cmd/properties/protobufs/message.proto | 252 +-- cmd/properties/protobufs/note.proto | 10 +- cmd/properties/protobufs/rss.proto | 14 +- cmd/properties/protobufs/sharing.proto | 110 +- cmd/properties/protobufs/spam.proto | 10 +- cmd/properties/protobufs/task.proto | 78 +- cmd/properties/protobufs/voicemail.proto | 12 +- pkg/properties/address_book.pb.go | 90 +- pkg/properties/address_book.pb_gen.go | 630 +++---- pkg/properties/appointment.pb.go | 236 +-- pkg/properties/appointment.pb_gen.go | 1652 ++++++++--------- pkg/properties/attachment.pb.go | 38 +- pkg/properties/attachment.pb_gen.go | 266 +-- pkg/properties/contact.pb.go | 214 +-- pkg/properties/contact.pb_gen.go | 1498 ++++++++-------- pkg/properties/journal.pb.go | 20 +- pkg/properties/journal.pb_gen.go | 140 +- pkg/properties/message.pb.go | 252 +-- pkg/properties/message.pb_gen.go | 1764 +++++++++---------- pkg/properties/note.pb.go | 10 +- pkg/properties/note.pb_gen.go | 70 +- pkg/properties/rss.pb.go | 14 +- pkg/properties/rss.pb_gen.go | 98 +- pkg/properties/sharing.pb.go | 110 +- pkg/properties/sharing.pb_gen.go | 770 ++++---- pkg/properties/spam.pb.go | 10 +- pkg/properties/spam.pb_gen.go | 70 +- pkg/properties/task.pb.go | 78 +- pkg/properties/task.pb_gen.go | 546 +++--- pkg/properties/voicemail.pb.go | 12 +- pkg/properties/voicemail.pb_gen.go | 84 +- pkg/property_reader.go | 2 +- pkg/writer/table_context_writer.go | 20 +- 40 files changed, 4888 insertions(+), 4916 deletions(-) delete mode 100644 cmd/properties/protobufs/folder.proto diff --git a/cmd/properties/generate.go b/cmd/properties/generate.go index 2db82fe..2d80aca 100644 --- a/cmd/properties/generate.go +++ b/cmd/properties/generate.go @@ -560,7 +560,7 @@ func createProtoFileField(property xmlProperty, protocolBufferFieldType string, if property.PropertyID != 0 { // TODO - There may be multiple property types. - goTags.WriteString(fmt.Sprintf("// @gotags: msg:\"%d,omitempty\" type:\"%d,omitempty\"", property.PropertyID, property.PropertyTypes[0])) + goTags.WriteString(fmt.Sprintf("// @gotags: msg:\"%d-%d,omitempty\"", property.PropertyID, property.PropertyTypes[0])) } // PropertySets are mapped via the PropertyMap in property_context.go // Write. diff --git a/cmd/properties/protobufs/address_book.proto b/cmd/properties/protobufs/address_book.proto index 4ad7ebd..f1d9aa1 100644 --- a/cmd/properties/protobufs/address_book.proto +++ b/cmd/properties/protobufs/address_book.proto @@ -21,93 +21,93 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message AddressBook { // Contains the alias of an Address Book object, which is an alternative name by which the object can be identified. - optional string account = 1; // @gotags: msg:"14848,omitempty" type:"31,omitempty" + optional string account = 1; // @gotags: msg:"14848-31,omitempty" // Contains the ID of a container on an NSPI server. - optional int32 address_book_container_id = 3; // @gotags: msg:"65533,omitempty" type:"3,omitempty" + optional int32 address_book_container_id = 3; // @gotags: msg:"65533-3,omitempty" // Specifies the maximum size, in bytes, of a message that a recipient can receive. - optional int32 address_book_delivery_content_length = 4; // @gotags: msg:"32874,omitempty" type:"3,omitempty" + optional int32 address_book_delivery_content_length = 4; // @gotags: msg:"32874-3,omitempty" // Contains the printable string version of the display name. - optional string address_book_display_name_printable = 5; // @gotags: msg:"14847,omitempty" type:"31,omitempty" + optional string address_book_display_name_printable = 5; // @gotags: msg:"14847-31,omitempty" // Contains a value that indicates how to display an Address Book object in a table or as a recipient on a message. - optional int32 address_book_display_type_extended = 6; // @gotags: msg:"35987,omitempty" type:"3,omitempty" + optional int32 address_book_display_type_extended = 6; // @gotags: msg:"35987-3,omitempty" // Contains the number of external recipients in the distribution list. - optional int32 address_book_distribution_list_external_member_count = 7; // @gotags: msg:"36067,omitempty" type:"3,omitempty" + optional int32 address_book_distribution_list_external_member_count = 7; // @gotags: msg:"36067-3,omitempty" // Contains the total number of recipients in the distribution list. - optional int32 address_book_distribution_list_member_count = 8; // @gotags: msg:"36066,omitempty" type:"3,omitempty" + optional int32 address_book_distribution_list_member_count = 8; // @gotags: msg:"36066-3,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute1 = 12; // @gotags: msg:"32813,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute1 = 12; // @gotags: msg:"32813-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute10 = 13; // @gotags: msg:"32822,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute10 = 13; // @gotags: msg:"32822-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute11 = 14; // @gotags: msg:"35927,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute11 = 14; // @gotags: msg:"35927-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute12 = 15; // @gotags: msg:"35928,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute12 = 15; // @gotags: msg:"35928-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute13 = 16; // @gotags: msg:"35929,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute13 = 16; // @gotags: msg:"35929-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute14 = 17; // @gotags: msg:"35936,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute14 = 17; // @gotags: msg:"35936-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute15 = 18; // @gotags: msg:"35937,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute15 = 18; // @gotags: msg:"35937-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute2 = 19; // @gotags: msg:"32814,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute2 = 19; // @gotags: msg:"32814-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute3 = 20; // @gotags: msg:"32815,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute3 = 20; // @gotags: msg:"32815-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute4 = 21; // @gotags: msg:"32816,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute4 = 21; // @gotags: msg:"32816-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute5 = 22; // @gotags: msg:"32817,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute5 = 22; // @gotags: msg:"32817-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute6 = 23; // @gotags: msg:"32818,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute6 = 23; // @gotags: msg:"32818-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute7 = 24; // @gotags: msg:"32819,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute7 = 24; // @gotags: msg:"32819-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute8 = 25; // @gotags: msg:"32820,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute8 = 25; // @gotags: msg:"32820-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute9 = 26; // @gotags: msg:"32821,omitempty" type:"31,omitempty" + optional string address_book_extension_attribute9 = 26; // @gotags: msg:"32821-31,omitempty" // This property is deprecated and is to be ignored. - optional string address_book_folder_pathname = 27; // @gotags: msg:"32772,omitempty" type:"31,omitempty" + optional string address_book_folder_pathname = 27; // @gotags: msg:"32772-31,omitempty" // Indicates whether the distribution list represents a departmental group. - optional bool address_book_hierarchical_is_hierarchical_group = 30; // @gotags: msg:"36061,omitempty" type:"11,omitempty" + optional bool address_book_hierarchical_is_hierarchical_group = 30; // @gotags: msg:"36061-11,omitempty" // Contains the distinguished name (DN) of either the root Department object or the root departmental group in the department hierarchy for the organization. - optional string address_book_hierarchical_root_department = 32; // @gotags: msg:"35992,omitempty" type:"30,omitempty" + optional string address_book_hierarchical_root_department = 32; // @gotags: msg:"35992-30,omitempty" // Contains the DN expressed in the X500 DN format. This property is returned from a name service provider interface (NSPI) server as a PtypEmbeddedTable. Otherwise, the data type is PtypString8. - optional string address_book_home_message_database = 34; // @gotags: msg:"32774,omitempty" type:"30,omitempty" + optional string address_book_home_message_database = 34; // @gotags: msg:"32774-30,omitempty" // Contains a Boolean value of TRUE if it is possible to create Address Book objects in that container, and FALSE otherwise. - optional bool address_book_is_master = 35; // @gotags: msg:"65531,omitempty" type:"11,omitempty" + optional bool address_book_is_master = 35; // @gotags: msg:"65531-11,omitempty" // Lists all of the distribution lists for which the object is a member. This property is returned from an NSPI server as a PtypEmbeddedTable. Otherwise, the data type is PtypString8. - optional string address_book_is_member_of_distribution_list = 36; // @gotags: msg:"32776,omitempty" type:"30,omitempty" + optional string address_book_is_member_of_distribution_list = 36; // @gotags: msg:"32776-30,omitempty" // Contains the DN of the mail user's manager. - optional string address_book_manager_distinguished_name = 39; // @gotags: msg:"32773,omitempty" type:"31,omitempty" + optional string address_book_manager_distinguished_name = 39; // @gotags: msg:"32773-31,omitempty" // Indicates whether moderation is enabled for the mail user or distribution list. - optional bool address_book_moderation_enabled = 41; // @gotags: msg:"36021,omitempty" type:"11,omitempty" + optional bool address_book_moderation_enabled = 41; // @gotags: msg:"36021-11,omitempty" // Contains the DN of the Address Book object. - optional string address_book_object_distinguished_name = 43; // @gotags: msg:"32828,omitempty" type:"31,omitempty" + optional string address_book_object_distinguished_name = 43; // @gotags: msg:"32828-31,omitempty" // Contains the DN of the Organization object of the mail user's organization. - optional string address_book_organizational_unit_root_distinguished_name = 45; // @gotags: msg:"36008,omitempty" type:"31,omitempty" + optional string address_book_organizational_unit_root_distinguished_name = 45; // @gotags: msg:"36008-31,omitempty" // Contains the phonetic representation of the PidTagCompanyName property (section 2.639). - optional string address_book_phonetic_company_name = 49; // @gotags: msg:"35985,omitempty" type:"31,omitempty" + optional string address_book_phonetic_company_name = 49; // @gotags: msg:"35985-31,omitempty" // Contains the phonetic representation of the PidTagDepartmentName property (section 2.672). - optional string address_book_phonetic_department_name = 50; // @gotags: msg:"35984,omitempty" type:"31,omitempty" + optional string address_book_phonetic_department_name = 50; // @gotags: msg:"35984-31,omitempty" // Contains the phonetic representation of the PidTagDisplayName property (section 2.676). - optional string address_book_phonetic_display_name = 51; // @gotags: msg:"35986,omitempty" type:"31,omitempty" + optional string address_book_phonetic_display_name = 51; // @gotags: msg:"35986-31,omitempty" // Contains the phonetic representation of the PidTagGivenName property (section 2.714). - optional string address_book_phonetic_given_name = 52; // @gotags: msg:"35982,omitempty" type:"31,omitempty" + optional string address_book_phonetic_given_name = 52; // @gotags: msg:"35982-31,omitempty" // Contains the phonetic representation of the PidTagSurname property (section 2.1036). - optional string address_book_phonetic_surname = 53; // @gotags: msg:"35983,omitempty" type:"31,omitempty" + optional string address_book_phonetic_surname = 53; // @gotags: msg:"35983-31,omitempty" // Contains the maximum occupancy of the room. - optional int32 address_book_room_capacity = 57; // @gotags: msg:"2055,omitempty" type:"3,omitempty" + optional int32 address_book_room_capacity = 57; // @gotags: msg:"2055-3,omitempty" // Contains a description of the Resource object. - optional string address_book_room_description = 59; // @gotags: msg:"2057,omitempty" type:"31,omitempty" + optional string address_book_room_description = 59; // @gotags: msg:"2057-31,omitempty" // Contains a signed integer that specifies the seniority order of Address Book objects that represent members of a department and are referenced by a Department object or departmental group, with larger values specifying members that are more senior. - optional int32 address_book_seniority_index = 61; // @gotags: msg:"36000,omitempty" type:"3,omitempty" + optional int32 address_book_seniority_index = 61; // @gotags: msg:"36000-3,omitempty" // Contains the foreign system email address of an Address Book object. - optional string address_book_target_address = 62; // @gotags: msg:"32785,omitempty" type:"31,omitempty" + optional string address_book_target_address = 62; // @gotags: msg:"32785-31,omitempty" // Contains a filter value used in ambiguous name resolution. - optional string anr = 65; // @gotags: msg:"13836,omitempty" type:"31,omitempty" + optional string anr = 65; // @gotags: msg:"13836-31,omitempty" // Contains a bitmask of flags that describe capabilities of an address book container. - optional int32 container_flags = 66; // @gotags: msg:"13824,omitempty" type:"3,omitempty" + optional int32 container_flags = 66; // @gotags: msg:"13824-3,omitempty" // Contains an integer value that indicates how to display an Address Book object in a table or as an addressee on a message. - optional int32 display_type = 67; // @gotags: msg:"14592,omitempty" type:"3,omitempty" + optional int32 display_type = 67; // @gotags: msg:"14592-3,omitempty" // Contains an integer value that indicates how to display an Address Book object in a table or as a recipient on a message. - optional int32 display_type_ex = 68; // @gotags: msg:"14597,omitempty" type:"3,omitempty" + optional int32 display_type_ex = 68; // @gotags: msg:"14597-3,omitempty" } diff --git a/cmd/properties/protobufs/appointment.proto b/cmd/properties/protobufs/appointment.proto index 52b89c1..ea3bdc2 100644 --- a/cmd/properties/protobufs/appointment.proto +++ b/cmd/properties/protobufs/appointment.proto @@ -21,243 +21,243 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Appointment { // Specifies a list of all the attendees except for the organizer, including resources and unsendable attendees. - optional string all_attendees_string = 1; // @gotags: msg:"264296,omitempty" type:"31,omitempty" + optional string all_attendees_string = 1; // @gotags: msg:"264296-31,omitempty" // This property is set to TRUE. - optional bool allow_external_check = 2; // @gotags: msg:"264326,omitempty" type:"11,omitempty" + optional bool allow_external_check = 2; // @gotags: msg:"264326-11,omitempty" // Specifies a bit field that describes the auxiliary state of the object. - optional int32 appointment_auxiliary_flags = 3; // @gotags: msg:"264199,omitempty" type:"3,omitempty" + optional int32 appointment_auxiliary_flags = 3; // @gotags: msg:"264199-3,omitempty" // Specifies the color to be used when displaying the Calendar object. - optional int32 appointment_color = 4; // @gotags: msg:"264228,omitempty" type:"3,omitempty" + optional int32 appointment_color = 4; // @gotags: msg:"264228-3,omitempty" // Indicates whether a Meeting Response object is a counter proposal. - optional bool appointment_counter_proposal = 5; // @gotags: msg:"264359,omitempty" type:"11,omitempty" + optional bool appointment_counter_proposal = 5; // @gotags: msg:"264359-11,omitempty" // Specifies the length of the event, in minutes. - optional int32 appointment_duration = 6; // @gotags: msg:"264227,omitempty" type:"3,omitempty" + optional int32 appointment_duration = 6; // @gotags: msg:"264227-3,omitempty" // Indicates the date that the appointment ends. - optional int64 appointment_end_date = 7; // @gotags: msg:"264225,omitempty" type:"64,omitempty" + optional int64 appointment_end_date = 7; // @gotags: msg:"264225-64,omitempty" // Indicates the time that the appointment ends. - optional int64 appointment_end_time = 8; // @gotags: msg:"264224,omitempty" type:"64,omitempty" + optional int64 appointment_end_time = 8; // @gotags: msg:"264224-64,omitempty" // Specifies the end date and time for the event. - optional int64 appointment_end_whole = 9; // @gotags: msg:"264206,omitempty" type:"64,omitempty" + optional int64 appointment_end_whole = 9; // @gotags: msg:"264206-64,omitempty" // Indicates to the organizer the last sequence number that was sent to any attendee. - optional int32 appointment_last_sequence = 10; // @gotags: msg:"264195,omitempty" type:"3,omitempty" + optional int32 appointment_last_sequence = 10; // @gotags: msg:"264195-3,omitempty" // Indicates the message class of the Meeting object to be generated from the Meeting Request object. - optional string appointment_message_class = 11; // @gotags: msg:"68,omitempty" type:"31,omitempty" + optional string appointment_message_class = 11; // @gotags: msg:"68-31,omitempty" // Indicates whether attendees are not allowed to propose a new date and/or time for the meeting. - optional bool appointment_not_allow_propose = 12; // @gotags: msg:"264362,omitempty" type:"11,omitempty" + optional bool appointment_not_allow_propose = 12; // @gotags: msg:"264362-11,omitempty" // Specifies the number of attendees who have sent counter proposals that have not been accepted or rejected by the organizer. - optional int32 appointment_proposal_number = 13; // @gotags: msg:"264361,omitempty" type:"3,omitempty" + optional int32 appointment_proposal_number = 13; // @gotags: msg:"264361-3,omitempty" // Indicates the proposed value for the PidLidAppointmentDuration property (section 2.11) for a counter proposal. - optional int32 appointment_proposed_duration = 14; // @gotags: msg:"264358,omitempty" type:"3,omitempty" + optional int32 appointment_proposed_duration = 14; // @gotags: msg:"264358-3,omitempty" // Specifies the proposed value for the PidLidAppointmentEndWhole property (section 2.14) for a counter proposal. - optional int64 appointment_proposed_end_whole = 15; // @gotags: msg:"264353,omitempty" type:"64,omitempty" + optional int64 appointment_proposed_end_whole = 15; // @gotags: msg:"264353-64,omitempty" // Specifies the proposed value for the PidLidAppointmentStartWhole property (section 2.29) for a counter proposal. - optional int64 appointment_proposed_start_whole = 16; // @gotags: msg:"264352,omitempty" type:"64,omitempty" + optional int64 appointment_proposed_start_whole = 16; // @gotags: msg:"264352-64,omitempty" // Specifies the user who last replied to the meeting request or meeting update. - optional string appointment_reply_name = 18; // @gotags: msg:"264288,omitempty" type:"31,omitempty" + optional string appointment_reply_name = 18; // @gotags: msg:"264288-31,omitempty" // Specifies the date and time at which the attendee responded to a received meeting request or Meeting Update object. - optional int64 appointment_reply_time = 19; // @gotags: msg:"264256,omitempty" type:"64,omitempty" + optional int64 appointment_reply_time = 19; // @gotags: msg:"264256-64,omitempty" // Specifies the sequence number of a Meeting object. - optional int32 appointment_sequence = 20; // @gotags: msg:"264193,omitempty" type:"3,omitempty" + optional int32 appointment_sequence = 20; // @gotags: msg:"264193-3,omitempty" // Indicates the date and time at which the PidLidAppointmentSequence property (section 2.25) was last modified. - optional int64 appointment_sequence_time = 21; // @gotags: msg:"264194,omitempty" type:"64,omitempty" + optional int64 appointment_sequence_time = 21; // @gotags: msg:"264194-64,omitempty" // Identifies the date that the appointment starts. - optional int64 appointment_start_date = 22; // @gotags: msg:"264226,omitempty" type:"64,omitempty" + optional int64 appointment_start_date = 22; // @gotags: msg:"264226-64,omitempty" // Identifies the time that the appointment starts. - optional int64 appointment_start_time = 23; // @gotags: msg:"264207,omitempty" type:"64,omitempty" + optional int64 appointment_start_time = 23; // @gotags: msg:"264207-64,omitempty" // Specifies the start date and time of the appointment. - optional int64 appointment_start_whole = 24; // @gotags: msg:"264205,omitempty" type:"64,omitempty" + optional int64 appointment_start_whole = 24; // @gotags: msg:"264205-64,omitempty" // Specifies a bit field that describes the state of the object. - optional int32 appointment_state_flags = 25; // @gotags: msg:"264231,omitempty" type:"3,omitempty" + optional int32 appointment_state_flags = 25; // @gotags: msg:"264231-3,omitempty" // Specifies whether the event is an all-day event. - optional bool appointment_sub_type = 26; // @gotags: msg:"264229,omitempty" type:"11,omitempty" + optional bool appointment_sub_type = 26; // @gotags: msg:"264229-11,omitempty" // Indicates the time at which the appointment was last updated. - optional int64 appointment_update_time = 31; // @gotags: msg:"264262,omitempty" type:"64,omitempty" + optional int64 appointment_update_time = 31; // @gotags: msg:"264262-64,omitempty" // Specifies the date and time at which the meeting-related object was sent. - optional int64 attendee_critical_change = 32; // @gotags: msg:"1,omitempty" type:"64,omitempty" + optional int64 attendee_critical_change = 32; // @gotags: msg:"1-64,omitempty" // Indicates whether the value of the PidLidLocation property (section 2.159) is set to the PidTagDisplayName property (section 2.676). - optional bool auto_fill_location = 33; // @gotags: msg:"264298,omitempty" type:"11,omitempty" + optional bool auto_fill_location = 33; // @gotags: msg:"264298-11,omitempty" // Specifies whether to automatically start the conferencing application when a reminder for the start of a meeting is executed. - optional bool auto_start_check = 34; // @gotags: msg:"264324,omitempty" type:"11,omitempty" + optional bool auto_start_check = 34; // @gotags: msg:"264324-11,omitempty" // Specifies the availability of a user for the event described by the object. - optional int32 busy_status = 35; // @gotags: msg:"264197,omitempty" type:"3,omitempty" + optional int32 busy_status = 35; // @gotags: msg:"264197-3,omitempty" // Contains the value of the CalendarType field from the PidLidAppointmentRecur property (section 2.22). - optional int32 calendar_type = 36; // @gotags: msg:"44,omitempty" type:"3,omitempty" + optional int32 calendar_type = 36; // @gotags: msg:"44-3,omitempty" // Contains a list of all the sendable attendees who are also optional attendees. - optional string cc_attendees_string = 37; // @gotags: msg:"264300,omitempty" type:"31,omitempty" + optional string cc_attendees_string = 37; // @gotags: msg:"264300-31,omitempty" // Specifies a bit field that indicates how the Meeting object has changed. - optional int32 change_highlight = 38; // @gotags: msg:"264196,omitempty" type:"3,omitempty" + optional int32 change_highlight = 38; // @gotags: msg:"264196-3,omitempty" // Indicates what actions the user has taken on this Meeting object. - optional int32 client_intent = 40; // @gotags: msg:"37,omitempty" type:"3,omitempty" + optional int32 client_intent = 40; // @gotags: msg:"37-3,omitempty" // Specifies the end date and time of the event in UTC. - optional int64 clip_end = 41; // @gotags: msg:"264294,omitempty" type:"64,omitempty" + optional int64 clip_end = 41; // @gotags: msg:"264294-64,omitempty" // Specifies the start date and time of the event in UTC. - optional int64 clip_start = 42; // @gotags: msg:"264293,omitempty" type:"64,omitempty" + optional int64 clip_start = 42; // @gotags: msg:"264293-64,omitempty" // Specifies the document to be launched when the user joins the meeting. - optional string collaborate_doc = 43; // @gotags: msg:"264327,omitempty" type:"31,omitempty" + optional string collaborate_doc = 43; // @gotags: msg:"264327-31,omitempty" // When set to TRUE (0x00000001), the PidLidConferencingCheck property indicates that the associated meeting is one of the following types: - optional bool conferencing_check = 44; // @gotags: msg:"264320,omitempty" type:"11,omitempty" + optional bool conferencing_check = 44; // @gotags: msg:"264320-11,omitempty" // Specifies the type of the meeting. - optional int32 conferencing_type = 45; // @gotags: msg:"264321,omitempty" type:"3,omitempty" + optional int32 conferencing_type = 45; // @gotags: msg:"264321-3,omitempty" // Identifies the day interval for the recurrence pattern. - optional int32 day_interval = 46; // @gotags: msg:"33,omitempty" type:"2,omitempty" + optional int32 day_interval = 46; // @gotags: msg:"33-2,omitempty" // Identifies the day of the month for the appointment or meeting. - optional int32 day_of_month = 47; // @gotags: msg:"32768,omitempty" type:"3,omitempty" + optional int32 day_of_month = 47; // @gotags: msg:"32768-3,omitempty" // Indicates whether a delegate responded to the meeting request. - optional bool delegate_mail = 48; // @gotags: msg:"9,omitempty" type:"11,omitempty" + optional bool delegate_mail = 48; // @gotags: msg:"9-11,omitempty" // Specifies the directory server to be used. - optional string directory = 49; // @gotags: msg:"264322,omitempty" type:"31,omitempty" + optional string directory = 49; // @gotags: msg:"264322-31,omitempty" // Identifies the end date of the recurrence range. - optional int32 end_recurrence_date = 50; // @gotags: msg:"15,omitempty" type:"3,omitempty" + optional int32 end_recurrence_date = 50; // @gotags: msg:"15-3,omitempty" // Identifies the end time of the recurrence range. - optional int32 end_recurrence_time = 51; // @gotags: msg:"32,omitempty" type:"3,omitempty" + optional int32 end_recurrence_time = 51; // @gotags: msg:"32-3,omitempty" // Specifies the date and time, in UTC, within a recurrence pattern that an exception will replace. - optional int64 exception_replace_time = 52; // @gotags: msg:"264264,omitempty" type:"64,omitempty" + optional int64 exception_replace_time = 52; // @gotags: msg:"264264-64,omitempty" // Indicates that the object is a Recurring Calendar object with one or more exceptions, and that at least one of the Exception Embedded Message objects has at least one RecipientRow structure, as described in [MS-OXCDATA] section 2.8.3. - optional bool f_exceptional_attendees = 53; // @gotags: msg:"264267,omitempty" type:"11,omitempty" + optional bool f_exceptional_attendees = 53; // @gotags: msg:"264267-11,omitempty" // Indicates that the Exception Embedded Message object has a body that differs from the Recurring Calendar object. - optional bool f_exceptional_body = 54; // @gotags: msg:"264198,omitempty" type:"11,omitempty" + optional bool f_exceptional_body = 54; // @gotags: msg:"264198-11,omitempty" // Indicates whether invitations have been sent for the meeting that this Meeting object represents. - optional bool f_invited = 55; // @gotags: msg:"264265,omitempty" type:"11,omitempty" + optional bool f_invited = 55; // @gotags: msg:"264265-11,omitempty" // Indicates whether the Meeting Request object represents an exception to a recurring series, and whether it was forwarded (even when forwarded by the organizer) rather than being an invitation sent by the organizer. - optional bool forward_instance = 56; // @gotags: msg:"264202,omitempty" type:"11,omitempty" + optional bool forward_instance = 56; // @gotags: msg:"264202-11,omitempty" // Indicates whether the Calendar folder from which the meeting was opened is another user's calendar. - optional bool f_others_appointment = 58; // @gotags: msg:"264271,omitempty" type:"11,omitempty" + optional bool f_others_appointment = 58; // @gotags: msg:"264271-11,omitempty" // Identifies the day of the week for the appointment or meeting. - optional int32 i_calendar_day_of_week_mask = 60; // @gotags: msg:"32769,omitempty" type:"3,omitempty" + optional int32 i_calendar_day_of_week_mask = 60; // @gotags: msg:"32769-3,omitempty" // Contains the value of the PidLidBusyStatus property (section 2.47) on the Meeting object in the organizer's calendar at the time that the Meeting Request object or Meeting Update object was sent. - optional int32 intended_busy_status = 62; // @gotags: msg:"264260,omitempty" type:"3,omitempty" + optional int32 intended_busy_status = 62; // @gotags: msg:"264260-3,omitempty" // Indicates whether the object represents an exception (including an orphan instance). - optional bool is_exception = 63; // @gotags: msg:"10,omitempty" type:"11,omitempty" + optional bool is_exception = 63; // @gotags: msg:"10-11,omitempty" // Specifies whether the object is associated with a recurring series. - optional bool is_recurring = 64; // @gotags: msg:"5,omitempty" type:"11,omitempty" + optional bool is_recurring = 64; // @gotags: msg:"5-11,omitempty" // Indicates whether the user did not include any text in the body of the Meeting Response object. - optional bool is_silent = 65; // @gotags: msg:"4,omitempty" type:"11,omitempty" + optional bool is_silent = 65; // @gotags: msg:"4-11,omitempty" // Specifies the location of the event. - optional string location = 66; // @gotags: msg:"264200,omitempty" type:"31,omitempty" + optional string location = 66; // @gotags: msg:"264200-31,omitempty" // Indicates the type of Meeting Request object or Meeting Update object. - optional int32 meeting_type = 67; // @gotags: msg:"70,omitempty" type:"3,omitempty" + optional int32 meeting_type = 67; // @gotags: msg:"70-3,omitempty" // Specifies the URL of the Meeting Workspace that is associated with a Calendar object. - optional string meeting_workspace_url = 68; // @gotags: msg:"264201,omitempty" type:"31,omitempty" + optional string meeting_workspace_url = 68; // @gotags: msg:"264201-31,omitempty" // Indicates the monthly interval of the appointment or meeting. - optional int32 month_interval = 69; // @gotags: msg:"35,omitempty" type:"2,omitempty" + optional int32 month_interval = 69; // @gotags: msg:"35-2,omitempty" // Indicates the month of the year in which the appointment or meeting occurs. - optional int32 month_of_year = 70; // @gotags: msg:"32774,omitempty" type:"3,omitempty" + optional int32 month_of_year = 70; // @gotags: msg:"32774-3,omitempty" // Indicates the calculated month of the year in which the appointment or meeting occurs. - optional int32 month_of_year_mask = 71; // @gotags: msg:"39,omitempty" type:"3,omitempty" + optional int32 month_of_year_mask = 71; // @gotags: msg:"39-3,omitempty" // Specifies the URL to be launched when the user joins the meeting. - optional string net_show_url = 72; // @gotags: msg:"264328,omitempty" type:"31,omitempty" + optional string net_show_url = 72; // @gotags: msg:"264328-31,omitempty" // Indicates whether the recurrence pattern has an end date. - optional bool no_end_date_flag = 73; // @gotags: msg:"32779,omitempty" type:"11,omitempty" + optional bool no_end_date_flag = 73; // @gotags: msg:"32779-11,omitempty" // Contains a list of all of the unsendable attendees who are also resources. - optional string non_sendable_bcc = 74; // @gotags: msg:"267368,omitempty" type:"31,omitempty" + optional string non_sendable_bcc = 74; // @gotags: msg:"267368-31,omitempty" // Contains a list of all of the unsendable attendees who are also optional attendees. - optional string non_sendable_cc = 75; // @gotags: msg:"267367,omitempty" type:"31,omitempty" + optional string non_sendable_cc = 75; // @gotags: msg:"267367-31,omitempty" // Contains a list of all of the unsendable attendees who are also required attendees. - optional string non_sendable_to = 76; // @gotags: msg:"267366,omitempty" type:"31,omitempty" + optional string non_sendable_to = 76; // @gotags: msg:"267366-31,omitempty" // Indicates the number of occurrences in the recurring appointment or meeting. - optional int32 occurrences = 77; // @gotags: msg:"32773,omitempty" type:"3,omitempty" + optional int32 occurrences = 77; // @gotags: msg:"32773-3,omitempty" // Indicates the original value of the PidLidLocation property (section 2.159) before a meeting update. - optional string old_location = 78; // @gotags: msg:"72,omitempty" type:"31,omitempty" + optional string old_location = 78; // @gotags: msg:"72-31,omitempty" // Indicates the recurrence pattern for the appointment or meeting. - optional int32 old_recurrence_type = 79; // @gotags: msg:"40,omitempty" type:"2,omitempty" + optional int32 old_recurrence_type = 79; // @gotags: msg:"40-2,omitempty" // Indicates the original value of the PidLidAppointmentEndWhole property (section 2.14) before a meeting update. - optional int64 old_when_end_whole = 80; // @gotags: msg:"74,omitempty" type:"64,omitempty" + optional int64 old_when_end_whole = 80; // @gotags: msg:"74-64,omitempty" // Indicates the original value of the PidLidAppointmentStartWhole property (section 2.29) before a meeting update. - optional int64 old_when_start_whole = 81; // @gotags: msg:"73,omitempty" type:"64,omitempty" + optional int64 old_when_start_whole = 81; // @gotags: msg:"73-64,omitempty" // Specifies the password for a meeting on which the PidLidConferencingType property (section 2.66) has the value 0x00000002. - optional string online_password = 82; // @gotags: msg:"264329,omitempty" type:"31,omitempty" + optional string online_password = 82; // @gotags: msg:"264329-31,omitempty" // Specifies optional attendees. - optional string optional_attendees = 83; // @gotags: msg:"7,omitempty" type:"31,omitempty" + optional string optional_attendees = 83; // @gotags: msg:"7-31,omitempty" // Specifies the email address of the organizer. - optional string organizer_alias = 84; // @gotags: msg:"264323,omitempty" type:"31,omitempty" + optional string organizer_alias = 84; // @gotags: msg:"264323-31,omitempty" // Specifies the date and time at which a Meeting Request object was sent by the organizer. - optional int64 owner_critical_change = 86; // @gotags: msg:"42,omitempty" type:"64,omitempty" + optional int64 owner_critical_change = 86; // @gotags: msg:"42-64,omitempty" // Indicates the name of the owner of the mailbox. - optional string owner_name = 87; // @gotags: msg:"264270,omitempty" type:"31,omitempty" + optional string owner_name = 87; // @gotags: msg:"264270-31,omitempty" // Identifies the length, in minutes, of the appointment or meeting. - optional int32 recurrence_duration = 88; // @gotags: msg:"32781,omitempty" type:"3,omitempty" + optional int32 recurrence_duration = 88; // @gotags: msg:"32781-3,omitempty" // Specifies a description of the recurrence pattern of the Calendar object. - optional string recurrence_pattern = 89; // @gotags: msg:"264290,omitempty" type:"31,omitempty" + optional string recurrence_pattern = 89; // @gotags: msg:"264290-31,omitempty" // Specifies the recurrence type of the recurring series. - optional int32 recurrence_type = 90; // @gotags: msg:"264289,omitempty" type:"3,omitempty" + optional int32 recurrence_type = 90; // @gotags: msg:"264289-3,omitempty" // Specifies whether the object represents a recurring series. - optional bool recurring = 91; // @gotags: msg:"264259,omitempty" type:"11,omitempty" + optional bool recurring = 91; // @gotags: msg:"264259-11,omitempty" // Specifies the interval, in minutes, between the time at which the reminder first becomes overdue and the start time of the Calendar object. - optional int32 reminder_delta = 92; // @gotags: msg:"267265,omitempty" type:"3,omitempty" + optional int32 reminder_delta = 92; // @gotags: msg:"267265-3,omitempty" // Specifies the filename of the sound that a client is to play when the reminder for that object becomes overdue. - optional string reminder_file_parameter = 93; // @gotags: msg:"267311,omitempty" type:"31,omitempty" + optional string reminder_file_parameter = 93; // @gotags: msg:"267311-31,omitempty" // Specifies whether the client is to respect the current values of the PidLidReminderPlaySound property (section 2.221) and the PidLidReminderFileParameter property (section 2.219), or use the default values for those properties. - optional bool reminder_override = 94; // @gotags: msg:"267308,omitempty" type:"11,omitempty" + optional bool reminder_override = 94; // @gotags: msg:"267308-11,omitempty" // Specifies whether the client is to play a sound when the reminder becomes overdue. - optional bool reminder_play_sound = 95; // @gotags: msg:"267310,omitempty" type:"11,omitempty" + optional bool reminder_play_sound = 95; // @gotags: msg:"267310-11,omitempty" // Specifies whether a reminder is set on the object. - optional bool reminder_set = 96; // @gotags: msg:"267267,omitempty" type:"11,omitempty" + optional bool reminder_set = 96; // @gotags: msg:"267267-11,omitempty" // Specifies the point in time when a reminder transitions from pending to overdue. - optional int64 reminder_signal_time = 97; // @gotags: msg:"267456,omitempty" type:"64,omitempty" + optional int64 reminder_signal_time = 97; // @gotags: msg:"267456-64,omitempty" // Specifies the initial signal time for objects that are not Calendar objects. - optional int64 reminder_time = 98; // @gotags: msg:"267266,omitempty" type:"64,omitempty" + optional int64 reminder_time = 98; // @gotags: msg:"267266-64,omitempty" // Indicates the time and date of the reminder for the appointment or meeting. - optional int64 reminder_time_date = 99; // @gotags: msg:"267269,omitempty" type:"64,omitempty" + optional int64 reminder_time_date = 99; // @gotags: msg:"267269-64,omitempty" // Indicates the time of the reminder for the appointment or meeting. - optional int64 reminder_time_time = 100; // @gotags: msg:"267268,omitempty" type:"64,omitempty" + optional int64 reminder_time_time = 100; // @gotags: msg:"267268-64,omitempty" // This property is not set and, if set, is ignored. - optional int32 reminder_type = 101; // @gotags: msg:"267309,omitempty" type:"3,omitempty" + optional int32 reminder_type = 101; // @gotags: msg:"267309-3,omitempty" // Identifies required attendees for the appointment or meeting. - optional string required_attendees = 102; // @gotags: msg:"6,omitempty" type:"31,omitempty" + optional string required_attendees = 102; // @gotags: msg:"6-31,omitempty" // Identifies resource attendees for the appointment or meeting. - optional string resource_attendees = 103; // @gotags: msg:"8,omitempty" type:"31,omitempty" + optional string resource_attendees = 103; // @gotags: msg:"8-31,omitempty" // Specifies the response status of an attendee. - optional int32 response_status = 104; // @gotags: msg:"264232,omitempty" type:"3,omitempty" + optional int32 response_status = 104; // @gotags: msg:"264232-3,omitempty" // Indicates whether the Meeting Request object or Meeting Update object has been processed. - optional bool server_processed = 105; // @gotags: msg:"267660,omitempty" type:"11,omitempty" + optional bool server_processed = 105; // @gotags: msg:"267660-11,omitempty" // Indicates what processing actions have been taken on this Meeting Request object or Meeting Update object. - optional int32 server_processing_actions = 106; // @gotags: msg:"267661,omitempty" type:"3,omitempty" + optional int32 server_processing_actions = 106; // @gotags: msg:"267661-3,omitempty" // Indicates that the original MIME message contained a single MIME part. - optional bool single_bodyi_cal = 107; // @gotags: msg:"264427,omitempty" type:"11,omitempty" + optional bool single_bodyi_cal = 107; // @gotags: msg:"264427-11,omitempty" // Identifies the start date of the recurrence pattern. - optional int32 start_recurrence_date = 108; // @gotags: msg:"13,omitempty" type:"3,omitempty" + optional int32 start_recurrence_date = 108; // @gotags: msg:"13-3,omitempty" // Identifies the start time of the recurrence pattern. - optional int32 start_recurrence_time = 109; // @gotags: msg:"14,omitempty" type:"3,omitempty" + optional int32 start_recurrence_time = 109; // @gotags: msg:"14-3,omitempty" // Specifies information about the time zone of a recurring meeting. - optional int32 time_zone = 110; // @gotags: msg:"12,omitempty" type:"3,omitempty" + optional int32 time_zone = 110; // @gotags: msg:"12-3,omitempty" // Specifies a human-readable description of the time zone that is represented by the data in the PidLidTimeZoneStruct property (section 2.342). - optional string time_zone_description = 111; // @gotags: msg:"264292,omitempty" type:"31,omitempty" + optional string time_zone_description = 111; // @gotags: msg:"264292-31,omitempty" // Contains a list of all of the sendable attendees who are also required attendees. - optional string to_attendees_string = 113; // @gotags: msg:"264299,omitempty" type:"31,omitempty" + optional string to_attendees_string = 113; // @gotags: msg:"264299-31,omitempty" // Identifies the number of weeks that occur between each meeting. - optional int32 week_interval = 114; // @gotags: msg:"34,omitempty" type:"2,omitempty" + optional int32 week_interval = 114; // @gotags: msg:"34-2,omitempty" // Contains the value of the PidLidLocation property (section 2.159) from the associated Meeting object. - optional string where = 115; // @gotags: msg:"2,omitempty" type:"31,omitempty" + optional string where = 115; // @gotags: msg:"2-31,omitempty" // Indicates the yearly interval of the appointment or meeting. - optional int32 year_interval = 116; // @gotags: msg:"36,omitempty" type:"2,omitempty" + optional int32 year_interval = 116; // @gotags: msg:"36-2,omitempty" // optional string location_url = 117; // Specifies whether to allow the meeting to be forwarded. optional bool meeting_do_not_forward = 118; // Specifies the end time, in UTC, of the publishing range. - optional int32 free_busy_publish_end = 119; // @gotags: msg:"26696,omitempty" type:"3,omitempty" + optional int32 free_busy_publish_end = 119; // @gotags: msg:"26696-3,omitempty" // Specifies the start time, in UTC, of the publishing range. - optional int32 free_busy_publish_start = 120; // @gotags: msg:"26695,omitempty" type:"3,omitempty" + optional int32 free_busy_publish_start = 120; // @gotags: msg:"26695-3,omitempty" // Specifies the time, in UTC, that the data was published. - optional int64 free_busy_range_timestamp = 121; // @gotags: msg:"26728,omitempty" type:"64,omitempty" + optional int64 free_busy_range_timestamp = 121; // @gotags: msg:"26728-64,omitempty" // Contains the date and time, in UTC, when an appointment or meeting ends. - optional int64 i_calendar_end_time = 122; // @gotags: msg:"4292,omitempty" type:"64,omitempty" + optional int64 i_calendar_end_time = 122; // @gotags: msg:"4292-64,omitempty" // Contains the date and time, in UTC, for the activation of the next reminder. - optional int64 i_calendar_reminder_next_time = 123; // @gotags: msg:"4298,omitempty" type:"64,omitempty" + optional int64 i_calendar_reminder_next_time = 123; // @gotags: msg:"4298-64,omitempty" // Indicates whether a client has already processed a received task communication. - optional bool processed = 124; // @gotags: msg:"32001,omitempty" type:"11,omitempty" + optional bool processed = 124; // @gotags: msg:"32001-11,omitempty" // Indicates whether a client or server is to automatically respond to all meeting requests for the attendee or resource. - optional bool schedule_info_auto_accept_appointments = 126; // @gotags: msg:"26733,omitempty" type:"11,omitempty" + optional bool schedule_info_auto_accept_appointments = 126; // @gotags: msg:"26733-11,omitempty" // Indicates whether the delegator wants to receive copies of the meeting-related objects that are sent to the delegate. - optional bool schedule_info_delegator_wants_copy = 130; // @gotags: msg:"26690,omitempty" type:"11,omitempty" + optional bool schedule_info_delegator_wants_copy = 130; // @gotags: msg:"26690-11,omitempty" // Indicates whether the delegator wants to receive informational updates. - optional bool schedule_info_delegator_wants_info = 131; // @gotags: msg:"26699,omitempty" type:"11,omitempty" + optional bool schedule_info_delegator_wants_info = 131; // @gotags: msg:"26699-11,omitempty" // Indicates whether a client or server, when automatically responding to meeting requests, is to decline Meeting Request objects that overlap with previously scheduled events. - optional bool schedule_info_disallow_overlapping_appts = 132; // @gotags: msg:"26735,omitempty" type:"11,omitempty" + optional bool schedule_info_disallow_overlapping_appts = 132; // @gotags: msg:"26735-11,omitempty" // Indicates whether a client or server, when automatically responding to meeting requests, is to decline Meeting Request objects that represent a recurring series. - optional bool schedule_info_disallow_recurring_appts = 133; // @gotags: msg:"26734,omitempty" type:"11,omitempty" + optional bool schedule_info_disallow_recurring_appts = 133; // @gotags: msg:"26734-11,omitempty" // Contains a value set to TRUE by the client, regardless of user input. - optional bool schedule_info_dont_mail_delegates = 134; // @gotags: msg:"26691,omitempty" type:"11,omitempty" + optional bool schedule_info_dont_mail_delegates = 134; // @gotags: msg:"26691-11,omitempty" // Set to 0x00000000 when sending and is ignored on receipt. - optional int32 schedule_info_resource_type = 144; // @gotags: msg:"26689,omitempty" type:"3,omitempty" + optional int32 schedule_info_resource_type = 144; // @gotags: msg:"26689-3,omitempty" } diff --git a/cmd/properties/protobufs/attachment.proto b/cmd/properties/protobufs/attachment.proto index da85509..4ade481 100644 --- a/cmd/properties/protobufs/attachment.proto +++ b/cmd/properties/protobufs/attachment.proto @@ -29,41 +29,41 @@ message Attachment { // Contains the provider type data associated with a web reference attachment. optional string attachment_provider_type = 5; // Contains the base of a relative URI. - optional string attach_content_base = 7; // @gotags: msg:"14097,omitempty" type:"31,omitempty" + optional string attach_content_base = 7; // @gotags: msg:"14097-31,omitempty" // Contains a content identifier unique to the Message object that matches a corresponding "cid:" URI schema reference in the HTML body of the Message object. - optional string attach_content_id = 8; // @gotags: msg:"14098,omitempty" type:"31,omitempty" + optional string attach_content_id = 8; // @gotags: msg:"14098-31,omitempty" // Contains a relative or full URI that matches a corresponding reference in the HTML body of a Message object. - optional string attach_content_location = 9; // @gotags: msg:"14099,omitempty" type:"31,omitempty" + optional string attach_content_location = 9; // @gotags: msg:"14099-31,omitempty" // Contains a file name extension that indicates the document type of an attachment. - optional string attach_extension = 13; // @gotags: msg:"14083,omitempty" type:"31,omitempty" + optional string attach_extension = 13; // @gotags: msg:"14083-31,omitempty" // Contains the 8.3 name of the PidTagAttachLongFilename property (section 2.595). - optional string attach_filename = 14; // @gotags: msg:"14084,omitempty" type:"31,omitempty" + optional string attach_filename = 14; // @gotags: msg:"14084-31,omitempty" // Indicates which body formats might reference this attachment when rendering data. - optional int32 attach_flags = 15; // @gotags: msg:"14100,omitempty" type:"3,omitempty" + optional int32 attach_flags = 15; // @gotags: msg:"14100-3,omitempty" // Contains the full filename and extension of the Attachment object. - optional string attach_long_filename = 16; // @gotags: msg:"14087,omitempty" type:"31,omitempty" + optional string attach_long_filename = 16; // @gotags: msg:"14087-31,omitempty" // Contains the fully-qualified path and file name with extension. - optional string attach_long_pathname = 17; // @gotags: msg:"14093,omitempty" type:"31,omitempty" + optional string attach_long_pathname = 17; // @gotags: msg:"14093-31,omitempty" // Indicates that a contact photo attachment is attached to a Contact object. - optional bool attachment_contact_photo = 18; // @gotags: msg:"32767,omitempty" type:"11,omitempty" + optional bool attachment_contact_photo = 18; // @gotags: msg:"32767-11,omitempty" // Indicates special handling for an Attachment object. - optional int32 attachment_flags = 19; // @gotags: msg:"32765,omitempty" type:"3,omitempty" + optional int32 attachment_flags = 19; // @gotags: msg:"32765-3,omitempty" // Indicates whether an Attachment object is hidden from the end user. - optional bool attachment_hidden = 20; // @gotags: msg:"32766,omitempty" type:"11,omitempty" + optional bool attachment_hidden = 20; // @gotags: msg:"32766-11,omitempty" // Contains the type of Message object to which an attachment is linked. - optional int32 attachment_link_id = 21; // @gotags: msg:"32762,omitempty" type:"3,omitempty" + optional int32 attachment_link_id = 21; // @gotags: msg:"32762-3,omitempty" // Represents the way the contents of an attachment are accessed. - optional int32 attach_method = 22; // @gotags: msg:"14085,omitempty" type:"3,omitempty" + optional int32 attach_method = 22; // @gotags: msg:"14085-3,omitempty" // Contains a content-type MIME header. - optional string attach_mime_tag = 23; // @gotags: msg:"14094,omitempty" type:"31,omitempty" + optional string attach_mime_tag = 23; // @gotags: msg:"14094-31,omitempty" // Identifies the Attachment object within its Message object. - optional int32 attach_number = 24; // @gotags: msg:"3617,omitempty" type:"3,omitempty" + optional int32 attach_number = 24; // @gotags: msg:"3617-3,omitempty" // Contains the 8.3 name of the PidTagAttachLongPathname property (section 2.596). - optional string attach_pathname = 25; // @gotags: msg:"14088,omitempty" type:"31,omitempty" + optional string attach_pathname = 25; // @gotags: msg:"14088-31,omitempty" // Contains the size, in bytes, consumed by the Attachment object on the server. - optional int32 attach_size = 27; // @gotags: msg:"3616,omitempty" type:"3,omitempty" + optional int32 attach_size = 27; // @gotags: msg:"3616-3,omitempty" // Contains the name of an attachment file, modified so that it can be correlated with TNEF messages. - optional string attach_transport_name = 29; // @gotags: msg:"14092,omitempty" type:"31,omitempty" + optional string attach_transport_name = 29; // @gotags: msg:"14092-31,omitempty" // Specifies the character set of an attachment received via MIME with the content-type of text. - optional string text_attachment_charset = 31; // @gotags: msg:"14107,omitempty" type:"31,omitempty" + optional string text_attachment_charset = 31; // @gotags: msg:"14107-31,omitempty" } diff --git a/cmd/properties/protobufs/contact.proto b/cmd/properties/protobufs/contact.proto index 65b75bb..75be72c 100644 --- a/cmd/properties/protobufs/contact.proto +++ b/cmd/properties/protobufs/contact.proto @@ -21,221 +21,221 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Contact { // Specifies the state of the electronic addresses of the contact and represents a set of bit flags. - optional int32 address_book_provider_array_type = 1; // @gotags: msg:"262217,omitempty" type:"3,omitempty" + optional int32 address_book_provider_array_type = 1; // @gotags: msg:"262217-3,omitempty" // Specifies the country code portion of the mailing address of the contact. - optional string address_country_code = 3; // @gotags: msg:"262573,omitempty" type:"31,omitempty" + optional string address_country_code = 3; // @gotags: msg:"262573-31,omitempty" // Specifies to the application whether to create a Journal object for each action associated with this Contact object. - optional bool auto_log = 5; // @gotags: msg:"262213,omitempty" type:"11,omitempty" + optional bool auto_log = 5; // @gotags: msg:"262213-11,omitempty" // Specifies the birthday of a contact. - optional int64 birthday_local = 7; // @gotags: msg:"262574,omitempty" type:"64,omitempty" + optional int64 birthday_local = 7; // @gotags: msg:"262574-64,omitempty" // Specifies the character set used for a Contact object. - optional int32 contact_character_set = 10; // @gotags: msg:"262211,omitempty" type:"3,omitempty" + optional int32 contact_character_set = 10; // @gotags: msg:"262211-3,omitempty" // Specifies the GUID of the GAL contact to which the duplicate contact is linked. - optional uint64 contact_link_global_address_list_link_id = 14; // @gotags: msg:"262600,omitempty" type:"72,omitempty" + optional uint64 contact_link_global_address_list_link_id = 14; // @gotags: msg:"262600-72,omitempty" // Specifies the state of the linking between the GAL contact and the duplicate contact. - optional int32 contact_link_global_address_list_link_state = 15; // @gotags: msg:"262598,omitempty" type:"3,omitempty" + optional int32 contact_link_global_address_list_link_state = 15; // @gotags: msg:"262598-3,omitempty" // - optional string contact_link_name = 17; // @gotags: msg:"267526,omitempty" type:"31,omitempty" + optional string contact_link_name = 17; // @gotags: msg:"267526-31,omitempty" // Contains text used to add custom text to a business card representation of a Contact object. - optional string contact_user_field1 = 20; // @gotags: msg:"262287,omitempty" type:"31,omitempty" + optional string contact_user_field1 = 20; // @gotags: msg:"262287-31,omitempty" // Contains text used to add custom text to a business card representation of a Contact object. - optional string contact_user_field2 = 21; // @gotags: msg:"262304,omitempty" type:"31,omitempty" + optional string contact_user_field2 = 21; // @gotags: msg:"262304-31,omitempty" // Contains text used to add custom text to a business card representation of a Contact object. - optional string contact_user_field3 = 22; // @gotags: msg:"262305,omitempty" type:"31,omitempty" + optional string contact_user_field3 = 22; // @gotags: msg:"262305-31,omitempty" // Contains text used to add custom text to a business card representation of a Contact object. - optional string contact_user_field4 = 23; // @gotags: msg:"262306,omitempty" type:"31,omitempty" + optional string contact_user_field4 = 23; // @gotags: msg:"262306-31,omitempty" // This property is ignored by the server and is set to an empty string by the client. - optional string department = 24; // @gotags: msg:"262176,omitempty" type:"31,omitempty" + optional string department = 24; // @gotags: msg:"262176-31,omitempty" // Specifies the 32-bit cyclic redundancy check (CRC) polynomial checksum, as specified in [ISO/IEC8802-3], calculated on the value of the PidLidDistributionListMembers property (section 2.96). - optional int32 distribution_list_checksum = 25; // @gotags: msg:"262284,omitempty" type:"3,omitempty" + optional int32 distribution_list_checksum = 25; // @gotags: msg:"262284-3,omitempty" // Specifies the name of the personal distribution list. - optional string distribution_list_name = 27; // @gotags: msg:"262307,omitempty" type:"31,omitempty" + optional string distribution_list_name = 27; // @gotags: msg:"262307-31,omitempty" // Specifies the address type of an electronic address. - optional string email1_address_type = 30; // @gotags: msg:"262402,omitempty" type:"31,omitempty" + optional string email1_address_type = 30; // @gotags: msg:"262402-31,omitempty" // Specifies the user-readable display name for the email address. - optional string email1_display_name = 31; // @gotags: msg:"262400,omitempty" type:"31,omitempty" + optional string email1_display_name = 31; // @gotags: msg:"262400-31,omitempty" // Specifies the email address of the contact. - optional string email1_email_address = 32; // @gotags: msg:"262403,omitempty" type:"31,omitempty" + optional string email1_email_address = 32; // @gotags: msg:"262403-31,omitempty" // Specifies the SMTP email address that corresponds to the email address for the Contact object. - optional string email1_original_display_name = 33; // @gotags: msg:"262404,omitempty" type:"31,omitempty" + optional string email1_original_display_name = 33; // @gotags: msg:"262404-31,omitempty" // Specifies the address type of the electronic address. - optional string email2_address_type = 35; // @gotags: msg:"262434,omitempty" type:"31,omitempty" + optional string email2_address_type = 35; // @gotags: msg:"262434-31,omitempty" // Specifies the user-readable display name for the email address. - optional string email2_display_name = 36; // @gotags: msg:"262432,omitempty" type:"31,omitempty" + optional string email2_display_name = 36; // @gotags: msg:"262432-31,omitempty" // Specifies the email address of the contact. - optional string email2_email_address = 37; // @gotags: msg:"262435,omitempty" type:"31,omitempty" + optional string email2_email_address = 37; // @gotags: msg:"262435-31,omitempty" // Specifies the SMTP email address that corresponds to the email address for the Contact object. - optional string email2_original_display_name = 38; // @gotags: msg:"262436,omitempty" type:"31,omitempty" + optional string email2_original_display_name = 38; // @gotags: msg:"262436-31,omitempty" // Specifies the address type of the electronic address. - optional string email3_address_type = 40; // @gotags: msg:"262466,omitempty" type:"31,omitempty" + optional string email3_address_type = 40; // @gotags: msg:"262466-31,omitempty" // Specifies the user-readable display name for the email address. - optional string email3_display_name = 41; // @gotags: msg:"262464,omitempty" type:"31,omitempty" + optional string email3_display_name = 41; // @gotags: msg:"262464-31,omitempty" // Specifies the email address of the contact. - optional string email3_email_address = 42; // @gotags: msg:"262467,omitempty" type:"31,omitempty" + optional string email3_email_address = 42; // @gotags: msg:"262467-31,omitempty" // Specifies the SMTP email address that corresponds to the email address for the Contact object. - optional string email3_original_display_name = 43; // @gotags: msg:"262468,omitempty" type:"31,omitempty" + optional string email3_original_display_name = 43; // @gotags: msg:"262468-31,omitempty" // Contains the string value "FAX". - optional string fax1_address_type = 45; // @gotags: msg:"262498,omitempty" type:"31,omitempty" + optional string fax1_address_type = 45; // @gotags: msg:"262498-31,omitempty" // Contains a user-readable display name, followed by the "@" character, followed by a fax number. - optional string fax1_email_address = 46; // @gotags: msg:"262499,omitempty" type:"31,omitempty" + optional string fax1_email_address = 46; // @gotags: msg:"262499-31,omitempty" // Contains the same value as the PidTagNormalizedSubject property (section 2.812). - optional string fax1_original_display_name = 47; // @gotags: msg:"262500,omitempty" type:"31,omitempty" + optional string fax1_original_display_name = 47; // @gotags: msg:"262500-31,omitempty" // Contains the string value "FAX". - optional string fax2_address_type = 49; // @gotags: msg:"262530,omitempty" type:"31,omitempty" + optional string fax2_address_type = 49; // @gotags: msg:"262530-31,omitempty" // Contains a user-readable display name, followed by the "@" character, followed by a fax number. - optional string fax2_email_address = 50; // @gotags: msg:"262531,omitempty" type:"31,omitempty" + optional string fax2_email_address = 50; // @gotags: msg:"262531-31,omitempty" // Contains the same value as the PidTagNormalizedSubject property (section 2.812). - optional string fax2_original_display_name = 51; // @gotags: msg:"262532,omitempty" type:"31,omitempty" + optional string fax2_original_display_name = 51; // @gotags: msg:"262532-31,omitempty" // Contains the string value "FAX". - optional string fax3_address_type = 53; // @gotags: msg:"262562,omitempty" type:"31,omitempty" + optional string fax3_address_type = 53; // @gotags: msg:"262562-31,omitempty" // Contains a user-readable display name, followed by the "@" character, followed by a fax number. - optional string fax3_email_address = 54; // @gotags: msg:"262563,omitempty" type:"31,omitempty" + optional string fax3_email_address = 54; // @gotags: msg:"262563-31,omitempty" // Contains the same value as the PidTagNormalizedSubject property (section 2.812). - optional string fax3_original_display_name = 55; // @gotags: msg:"262564,omitempty" type:"31,omitempty" + optional string fax3_original_display_name = 55; // @gotags: msg:"262564-31,omitempty" // Specifies the name under which to file a contact when displaying a list of contacts. - optional string file_under = 57; // @gotags: msg:"262149,omitempty" type:"31,omitempty" + optional string file_under = 57; // @gotags: msg:"262149-31,omitempty" // Specifies how to generate and recompute the value of the PidLidFileUnder property (section 2.132) when other contact name properties change. - optional int32 file_under_id = 58; // @gotags: msg:"262150,omitempty" type:"3,omitempty" + optional int32 file_under_id = 58; // @gotags: msg:"262150-3,omitempty" // Specifies a URL path from which a client can retrieve free/busy status information for the contact. - optional string free_busy_location = 60; // @gotags: msg:"262568,omitempty" type:"31,omitempty" + optional string free_busy_location = 60; // @gotags: msg:"262568-31,omitempty" // Specifies whether the attachment has a picture. - optional bool has_picture = 61; // @gotags: msg:"262181,omitempty" type:"11,omitempty" + optional bool has_picture = 61; // @gotags: msg:"262181-11,omitempty" // Specifies the complete address of the home address of the contact. - optional string home_address = 62; // @gotags: msg:"262186,omitempty" type:"31,omitempty" + optional string home_address = 62; // @gotags: msg:"262186-31,omitempty" // Specifies the country code portion of the home address of the contact. - optional string home_address_country_code = 63; // @gotags: msg:"262570,omitempty" type:"31,omitempty" + optional string home_address_country_code = 63; // @gotags: msg:"262570-31,omitempty" // Specifies the business webpage URL of the contact. - optional string html = 64; // @gotags: msg:"262219,omitempty" type:"31,omitempty" + optional string html = 64; // @gotags: msg:"262219-31,omitempty" // Specifies the instant messaging address of the contact. - optional string instant_messaging_address = 65; // @gotags: msg:"262338,omitempty" type:"31,omitempty" + optional string instant_messaging_address = 65; // @gotags: msg:"262338-31,omitempty" // Specifies whether the contact is linked to other contacts. - optional bool is_contact_linked = 66; // @gotags: msg:"262592,omitempty" type:"11,omitempty" + optional bool is_contact_linked = 66; // @gotags: msg:"262592-11,omitempty" // Specifies the complete address of the other address of the contact. - optional string other_address = 67; // @gotags: msg:"262188,omitempty" type:"31,omitempty" + optional string other_address = 67; // @gotags: msg:"262188-31,omitempty" // Specifies the country code portion of the other address of the contact. - optional string other_address_country_code = 68; // @gotags: msg:"262572,omitempty" type:"31,omitempty" + optional string other_address_country_code = 68; // @gotags: msg:"262572-31,omitempty" // Specifies which physical address is the mailing address for this contact. - optional int32 postal_address_id = 69; // @gotags: msg:"262210,omitempty" type:"3,omitempty" + optional int32 postal_address_id = 69; // @gotags: msg:"262210-3,omitempty" // Specifies the wedding anniversary of the contact, at midnight in the client's local time zone, and is saved without any time zone conversions. - optional int64 wedding_anniversary_local = 71; // @gotags: msg:"262575,omitempty" type:"64,omitempty" + optional int64 wedding_anniversary_local = 71; // @gotags: msg:"262575-64,omitempty" // Specifies the complete address of the work address of the contact. - optional string work_address = 72; // @gotags: msg:"262187,omitempty" type:"31,omitempty" + optional string work_address = 72; // @gotags: msg:"262187-31,omitempty" // Specifies the city or locality portion of the work address of the contact. - optional string work_address_city = 73; // @gotags: msg:"262278,omitempty" type:"31,omitempty" + optional string work_address_city = 73; // @gotags: msg:"262278-31,omitempty" // Specifies the country or region portion of the work address of the contact. - optional string work_address_country = 74; // @gotags: msg:"262281,omitempty" type:"31,omitempty" + optional string work_address_country = 74; // @gotags: msg:"262281-31,omitempty" // Specifies the country code portion of the work address of the contact. - optional string work_address_country_code = 75; // @gotags: msg:"262571,omitempty" type:"31,omitempty" + optional string work_address_country_code = 75; // @gotags: msg:"262571-31,omitempty" // Specifies the postal code (ZIP code) portion of the work address of the contact. - optional string work_address_postal_code = 76; // @gotags: msg:"262280,omitempty" type:"31,omitempty" + optional string work_address_postal_code = 76; // @gotags: msg:"262280-31,omitempty" // Specifies the post office box portion of the work address of the contact. - optional string work_address_post_office_box = 77; // @gotags: msg:"262282,omitempty" type:"31,omitempty" + optional string work_address_post_office_box = 77; // @gotags: msg:"262282-31,omitempty" // Specifies the state or province portion of the work address of the contact. - optional string work_address_state = 78; // @gotags: msg:"262279,omitempty" type:"31,omitempty" + optional string work_address_state = 78; // @gotags: msg:"262279-31,omitempty" // Specifies the street portion of the work address of the contact. - optional string work_address_street = 79; // @gotags: msg:"262277,omitempty" type:"31,omitempty" + optional string work_address_street = 79; // @gotags: msg:"262277-31,omitempty" // Specifies the phonetic pronunciation of the company name of the contact. - optional string yomi_company_name = 80; // @gotags: msg:"262222,omitempty" type:"31,omitempty" + optional string yomi_company_name = 80; // @gotags: msg:"262222-31,omitempty" // Specifies the phonetic pronunciation of the given name of the contact. - optional string yomi_first_name = 81; // @gotags: msg:"262220,omitempty" type:"31,omitempty" + optional string yomi_first_name = 81; // @gotags: msg:"262220-31,omitempty" // Specifies the phonetic pronunciation of the surname of the contact. - optional string yomi_last_name = 82; // @gotags: msg:"262221,omitempty" type:"31,omitempty" + optional string yomi_last_name = 82; // @gotags: msg:"262221-31,omitempty" // Indicates the name of the contact associated with the birthday event. optional string birthday_contact_attribution_display_name = 83; // Indicates whether the contact associated with the birthday event is writable. optional bool is_birthday_contact_writable = 86; // Contains the date of the mail user's birthday at midnight. - optional int64 birthday = 87; // @gotags: msg:"14914,omitempty" type:"64,omitempty" + optional int64 birthday = 87; // @gotags: msg:"14914-64,omitempty" // Contains a secondary telephone number at the mail user's place of business. - optional string business2_telephone_number = 88; // @gotags: msg:"14875,omitempty" type:"31,omitempty" + optional string business2_telephone_number = 88; // @gotags: msg:"14875-31,omitempty" // Contains the telephone number of the mail user's business fax machine. - optional string business_fax_number = 90; // @gotags: msg:"14884,omitempty" type:"31,omitempty" + optional string business_fax_number = 90; // @gotags: msg:"14884-31,omitempty" // Contains the URL of the mail user's business home page. - optional string business_home_page = 91; // @gotags: msg:"14929,omitempty" type:"31,omitempty" + optional string business_home_page = 91; // @gotags: msg:"14929-31,omitempty" // Contains the primary telephone number of the mail user's place of business. - optional string business_telephone_number = 92; // @gotags: msg:"14856,omitempty" type:"31,omitempty" + optional string business_telephone_number = 92; // @gotags: msg:"14856-31,omitempty" // Contains a telephone number to reach the mail user. - optional string callback_telephone_number = 93; // @gotags: msg:"14850,omitempty" type:"31,omitempty" + optional string callback_telephone_number = 93; // @gotags: msg:"14850-31,omitempty" // Contains the mail user's car telephone number. - optional string car_telephone_number = 94; // @gotags: msg:"14878,omitempty" type:"31,omitempty" + optional string car_telephone_number = 94; // @gotags: msg:"14878-31,omitempty" // Contains the main telephone number of the mail user's company. - optional string company_main_telephone_number = 96; // @gotags: msg:"14935,omitempty" type:"31,omitempty" + optional string company_main_telephone_number = 96; // @gotags: msg:"14935-31,omitempty" // Contains the mail user's company name. - optional string company_name = 97; // @gotags: msg:"14870,omitempty" type:"31,omitempty" + optional string company_name = 97; // @gotags: msg:"14870-31,omitempty" // Contains the name of the mail user's computer network. - optional string computer_network_name = 98; // @gotags: msg:"14921,omitempty" type:"31,omitempty" + optional string computer_network_name = 98; // @gotags: msg:"14921-31,omitempty" // Contains the name of the mail user's country/region. - optional string country = 99; // @gotags: msg:"14886,omitempty" type:"31,omitempty" + optional string country = 99; // @gotags: msg:"14886-31,omitempty" // Contains the mail user's customer identification number. - optional string customer_id = 100; // @gotags: msg:"14922,omitempty" type:"31,omitempty" + optional string customer_id = 100; // @gotags: msg:"14922-31,omitempty" // Contains a name for the department in which the mail user works. - optional string department_name = 101; // @gotags: msg:"14872,omitempty" type:"31,omitempty" + optional string department_name = 101; // @gotags: msg:"14872-31,omitempty" // Contains the mail user's honorific title. - optional string display_name_prefix = 102; // @gotags: msg:"14917,omitempty" type:"31,omitempty" + optional string display_name_prefix = 102; // @gotags: msg:"14917-31,omitempty" // Contains the File Transfer Protocol (FTP) site address of the mail user. - optional string ftp_site = 103; // @gotags: msg:"14924,omitempty" type:"31,omitempty" + optional string ftp_site = 103; // @gotags: msg:"14924-31,omitempty" // Contains a value that represents the mail user's gender. - optional int32 gender = 104; // @gotags: msg:"14925,omitempty" type:"2,omitempty" + optional int32 gender = 104; // @gotags: msg:"14925-2,omitempty" // Contains a generational abbreviation that follows the full name of the mail user. - optional string generation = 105; // @gotags: msg:"14853,omitempty" type:"31,omitempty" + optional string generation = 105; // @gotags: msg:"14853-31,omitempty" // Contains the mail user's given name. - optional string given_name = 106; // @gotags: msg:"14854,omitempty" type:"31,omitempty" + optional string given_name = 106; // @gotags: msg:"14854-31,omitempty" // Contains a government identifier for the mail user. - optional string government_id_number = 107; // @gotags: msg:"14855,omitempty" type:"31,omitempty" + optional string government_id_number = 107; // @gotags: msg:"14855-31,omitempty" // Contains the names of the mail user's hobbies. - optional string hobbies = 108; // @gotags: msg:"14915,omitempty" type:"31,omitempty" + optional string hobbies = 108; // @gotags: msg:"14915-31,omitempty" // Contains a secondary telephone number at the mail user's home. - optional string home2_telephone_number = 109; // @gotags: msg:"14895,omitempty" type:"31,omitempty" + optional string home2_telephone_number = 109; // @gotags: msg:"14895-31,omitempty" // Contains the name of the mail user's home locality, such as the town or city. - optional string home_address_city = 111; // @gotags: msg:"14937,omitempty" type:"31,omitempty" + optional string home_address_city = 111; // @gotags: msg:"14937-31,omitempty" // Contains the name of the mail user's home country/region. - optional string home_address_country = 112; // @gotags: msg:"14938,omitempty" type:"31,omitempty" + optional string home_address_country = 112; // @gotags: msg:"14938-31,omitempty" // Contains the postal code for the mail user's home postal address. - optional string home_address_postal_code = 113; // @gotags: msg:"14939,omitempty" type:"31,omitempty" + optional string home_address_postal_code = 113; // @gotags: msg:"14939-31,omitempty" // Contains the number or identifier of the mail user's home post office box. - optional string home_address_post_office_box = 114; // @gotags: msg:"14942,omitempty" type:"31,omitempty" + optional string home_address_post_office_box = 114; // @gotags: msg:"14942-31,omitempty" // Contains the name of the mail user's home state or province. - optional string home_address_state_or_province = 115; // @gotags: msg:"14940,omitempty" type:"31,omitempty" + optional string home_address_state_or_province = 115; // @gotags: msg:"14940-31,omitempty" // Contains the mail user's home street address. - optional string home_address_street = 116; // @gotags: msg:"14941,omitempty" type:"31,omitempty" + optional string home_address_street = 116; // @gotags: msg:"14941-31,omitempty" // Contains the telephone number of the mail user's home fax machine. - optional string home_fax_number = 117; // @gotags: msg:"14885,omitempty" type:"31,omitempty" + optional string home_fax_number = 117; // @gotags: msg:"14885-31,omitempty" // Contains the primary telephone number of the mail user's home. - optional string home_telephone_number = 118; // @gotags: msg:"14857,omitempty" type:"31,omitempty" + optional string home_telephone_number = 118; // @gotags: msg:"14857-31,omitempty" // Specifies whether contact synchronization with an external source is handled by the server. - optional bool osc_sync_enabled = 119; // @gotags: msg:"31780,omitempty" type:"11,omitempty" + optional bool osc_sync_enabled = 119; // @gotags: msg:"31780-11,omitempty" // Contains the URL of the mail user's personal home page. - optional string personal_home_page = 120; // @gotags: msg:"14928,omitempty" type:"31,omitempty" + optional string personal_home_page = 120; // @gotags: msg:"14928-31,omitempty" // Contains the mail user's postal address. - optional string postal_address = 121; // @gotags: msg:"14869,omitempty" type:"31,omitempty" + optional string postal_address = 121; // @gotags: msg:"14869-31,omitempty" // Contains the postal code for the mail user's postal address. - optional string postal_code = 122; // @gotags: msg:"14890,omitempty" type:"31,omitempty" + optional string postal_code = 122; // @gotags: msg:"14890-31,omitempty" // Contains the number or identifier of the mail user's post office box. - optional string post_office_box = 123; // @gotags: msg:"14891,omitempty" type:"31,omitempty" + optional string post_office_box = 123; // @gotags: msg:"14891-31,omitempty" // Contains the telephone number of the mail user's primary fax machine. - optional string primary_fax_number = 124; // @gotags: msg:"14883,omitempty" type:"31,omitempty" + optional string primary_fax_number = 124; // @gotags: msg:"14883-31,omitempty" // Contains the mail user's primary telephone number. - optional string primary_telephone_number = 125; // @gotags: msg:"14874,omitempty" type:"31,omitempty" + optional string primary_telephone_number = 125; // @gotags: msg:"14874-31,omitempty" // Contains the name of the mail user's line of business. - optional string profession = 126; // @gotags: msg:"14918,omitempty" type:"31,omitempty" + optional string profession = 126; // @gotags: msg:"14918-31,omitempty" // Contains the mail user's radio telephone number. - optional string radio_telephone_number = 127; // @gotags: msg:"14877,omitempty" type:"31,omitempty" + optional string radio_telephone_number = 127; // @gotags: msg:"14877-31,omitempty" // Contains the name of the mail user's referral. - optional string referred_by_name = 128; // @gotags: msg:"14919,omitempty" type:"31,omitempty" + optional string referred_by_name = 128; // @gotags: msg:"14919-31,omitempty" // Contains the name of the mail user's spouse/partner. - optional string spouse_name = 129; // @gotags: msg:"14920,omitempty" type:"31,omitempty" + optional string spouse_name = 129; // @gotags: msg:"14920-31,omitempty" // Contains the name of the mail user's state or province. - optional string state_or_province = 130; // @gotags: msg:"14888,omitempty" type:"31,omitempty" + optional string state_or_province = 130; // @gotags: msg:"14888-31,omitempty" // Contains the mail user's street address. - optional string street_address = 131; // @gotags: msg:"14889,omitempty" type:"31,omitempty" + optional string street_address = 131; // @gotags: msg:"14889-31,omitempty" // Contains the mail user's family name. - optional string surname = 132; // @gotags: msg:"14865,omitempty" type:"31,omitempty" + optional string surname = 132; // @gotags: msg:"14865-31,omitempty" // Contains the mail user's telecommunication device for the deaf (TTY/TDD) telephone number. - optional string telecommunications_device_for_deaf_telephone_number = 133; // @gotags: msg:"14923,omitempty" type:"31,omitempty" + optional string telecommunications_device_for_deaf_telephone_number = 133; // @gotags: msg:"14923-31,omitempty" // Contains the mail user's telex number. This property is returned from an NSPI server as a PtypMultipleBinary. Otherwise, the data type is PtypString. - optional string telex_number = 134; // @gotags: msg:"14892,omitempty" type:"31,omitempty" + optional string telex_number = 134; // @gotags: msg:"14892-31,omitempty" // Contains the mail user's job title. - optional string title = 135; // @gotags: msg:"14871,omitempty" type:"31,omitempty" + optional string title = 135; // @gotags: msg:"14871-31,omitempty" // Contains the date of the mail user's wedding anniversary. - optional int64 wedding_anniversary = 138; // @gotags: msg:"14913,omitempty" type:"64,omitempty" + optional int64 wedding_anniversary = 138; // @gotags: msg:"14913-64,omitempty" } diff --git a/cmd/properties/protobufs/folder.proto b/cmd/properties/protobufs/folder.proto deleted file mode 100644 index 5e3185e..0000000 --- a/cmd/properties/protobufs/folder.proto +++ /dev/null @@ -1,24 +0,0 @@ -// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). -// -// Copyright 2023 Marten Mooij -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:generate msgp -tests=false - -syntax = "proto3"; -option go_package = "github.com/mooijtech/go-pst;properties"; - -message Folder { - string name = 1; -} \ No newline at end of file diff --git a/cmd/properties/protobufs/journal.proto b/cmd/properties/protobufs/journal.proto index b3773a2..7580078 100644 --- a/cmd/properties/protobufs/journal.proto +++ b/cmd/properties/protobufs/journal.proto @@ -21,23 +21,23 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Journal { // Indicates whether the document was sent by email or posted to a server folder during journaling. - optional bool log_document_posted = 1; // @gotags: msg:"269345,omitempty" type:"11,omitempty" + optional bool log_document_posted = 1; // @gotags: msg:"269345-11,omitempty" // Indicates whether the document was printed during journaling. - optional bool log_document_printed = 2; // @gotags: msg:"269326,omitempty" type:"11,omitempty" + optional bool log_document_printed = 2; // @gotags: msg:"269326-11,omitempty" // Indicates whether the document was sent to a routing recipient during journaling. - optional bool log_document_routed = 3; // @gotags: msg:"269344,omitempty" type:"11,omitempty" + optional bool log_document_routed = 3; // @gotags: msg:"269344-11,omitempty" // Indicates whether the document was saved during journaling. - optional bool log_document_saved = 4; // @gotags: msg:"269327,omitempty" type:"11,omitempty" + optional bool log_document_saved = 4; // @gotags: msg:"269327-11,omitempty" // Contains the duration, in minutes, of the activity. - optional int32 log_duration = 5; // @gotags: msg:"269319,omitempty" type:"3,omitempty" + optional int32 log_duration = 5; // @gotags: msg:"269319-3,omitempty" // Contains the time, in UTC, at which the activity ended. - optional int64 log_end = 6; // @gotags: msg:"269320,omitempty" type:"64,omitempty" + optional int64 log_end = 6; // @gotags: msg:"269320-64,omitempty" // Contains metadata about the Journal object. - optional int32 log_flags = 7; // @gotags: msg:"269324,omitempty" type:"3,omitempty" + optional int32 log_flags = 7; // @gotags: msg:"269324-3,omitempty" // Contains the time, in UTC, at which the activity began. - optional int64 log_start = 8; // @gotags: msg:"269318,omitempty" type:"64,omitempty" + optional int64 log_start = 8; // @gotags: msg:"269318-64,omitempty" // Briefly describes the journal activity that is being recorded. - optional string log_type = 9; // @gotags: msg:"269312,omitempty" type:"31,omitempty" + optional string log_type = 9; // @gotags: msg:"269312-31,omitempty" // Contains an expanded description of the journal activity that is being recorded. - optional string log_type_desc = 10; // @gotags: msg:"269346,omitempty" type:"31,omitempty" + optional string log_type_desc = 10; // @gotags: msg:"269346-31,omitempty" } diff --git a/cmd/properties/protobufs/message.proto b/cmd/properties/protobufs/message.proto index 1ea4ab6..0ff888b 100644 --- a/cmd/properties/protobufs/message.proto +++ b/cmd/properties/protobufs/message.proto @@ -21,35 +21,35 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Message { // Specifies the options used in the automatic processing of email messages. - optional int32 auto_process_state = 1; // @gotags: msg:"267306,omitempty" type:"3,omitempty" + optional int32 auto_process_state = 1; // @gotags: msg:"267306-3,omitempty" // Specifies billing information for the contact. - optional string billing = 2; // @gotags: msg:"267365,omitempty" type:"31,omitempty" + optional string billing = 2; // @gotags: msg:"267365-31,omitempty" // Contains a list of the classification categories to which the associated Message object has been assigned. - optional string classification = 3; // @gotags: msg:"267622,omitempty" type:"31,omitempty" + optional string classification = 3; // @gotags: msg:"267622-31,omitempty" // Contains a human-readable summary of each of the classification categories included in the PidLidClassification property (section 2.53). - optional string classification_description = 4; // @gotags: msg:"267623,omitempty" type:"31,omitempty" + optional string classification_description = 4; // @gotags: msg:"267623-31,omitempty" // Contains the GUID that identifies the list of email classification categories used by a Message object. - optional string classification_guid = 5; // @gotags: msg:"267624,omitempty" type:"31,omitempty" + optional string classification_guid = 5; // @gotags: msg:"267624-31,omitempty" // Indicates whether the message uses any classification categories. - optional bool classification_keep = 6; // @gotags: msg:"267626,omitempty" type:"11,omitempty" + optional bool classification_keep = 6; // @gotags: msg:"267626-11,omitempty" // Indicates whether the contents of this message are regarded as classified information. - optional bool classified = 7; // @gotags: msg:"267621,omitempty" type:"11,omitempty" + optional bool classified = 7; // @gotags: msg:"267621-11,omitempty" // Indicates the end time for the Message object. - optional int64 common_end = 8; // @gotags: msg:"267303,omitempty" type:"64,omitempty" + optional int64 common_end = 8; // @gotags: msg:"267303-64,omitempty" // Indicates the start time for the Message object. - optional int64 common_start = 9; // @gotags: msg:"267302,omitempty" type:"64,omitempty" + optional int64 common_start = 9; // @gotags: msg:"267302-64,omitempty" // Specifies the build number of the client application that sent the message. - optional int32 current_version = 12; // @gotags: msg:"267426,omitempty" type:"3,omitempty" + optional int32 current_version = 12; // @gotags: msg:"267426-3,omitempty" // Specifies the name of the client application that sent the message. - optional string current_version_name = 13; // @gotags: msg:"267428,omitempty" type:"31,omitempty" + optional string current_version_name = 13; // @gotags: msg:"267428-31,omitempty" // Specifies the user-visible email account name through which the email message is sent. - optional string internet_account_name = 14; // @gotags: msg:"267520,omitempty" type:"31,omitempty" + optional string internet_account_name = 14; // @gotags: msg:"267520-31,omitempty" // Specifies the email account ID through which the email message is sent. - optional string internet_account_stamp = 15; // @gotags: msg:"267521,omitempty" type:"31,omitempty" + optional string internet_account_stamp = 15; // @gotags: msg:"267521-31,omitempty" // Indicates whether the end user wishes for this Message object to be hidden from other users who have access to the Message object. - optional bool private = 19; // @gotags: msg:"267270,omitempty" type:"11,omitempty" + optional bool private = 19; // @gotags: msg:"267270-11,omitempty" // Specifies the voting option that a respondent has selected. - optional string verb_response = 20; // @gotags: msg:"267332,omitempty" type:"31,omitempty" + optional string verb_response = 20; // @gotags: msg:"267332-31,omitempty" // Contains the value of the MIME Accept-Language header. optional string accept_language = 21; // Specifies the value of the MIME Content-Base header, which defines the base URI for resolving relative URLs contained within the message body. @@ -71,225 +71,225 @@ message Message { // Indicates whether a message is likely to be phishing. optional int32 phishing_stamp = 31; // Contains the email address type of a Message object. - optional string address_type = 33; // @gotags: msg:"12290,omitempty" type:"31,omitempty" + optional string address_type = 33; // @gotags: msg:"12290-31,omitempty" // Specifies whether the sender permits the message to be auto-forwarded. - optional bool alternate_recipient_allowed = 34; // @gotags: msg:"2,omitempty" type:"11,omitempty" + optional bool alternate_recipient_allowed = 34; // @gotags: msg:"2-11,omitempty" // Specifies the date, in UTC, after which a Message object is archived by the server. - optional int64 archive_date = 35; // @gotags: msg:"12319,omitempty" type:"64,omitempty" + optional int64 archive_date = 35; // @gotags: msg:"12319-64,omitempty" // Specifies the number of days that a Message object can remain unarchived. - optional int32 archive_period = 36; // @gotags: msg:"12318,omitempty" type:"3,omitempty" + optional int32 archive_period = 36; // @gotags: msg:"12318-3,omitempty" // Contains the name of the mail user's administrative assistant. - optional string assistant = 38; // @gotags: msg:"14896,omitempty" type:"31,omitempty" + optional string assistant = 38; // @gotags: msg:"14896-31,omitempty" // Contains the telephone number of the mail user's administrative assistant. - optional string assistant_telephone_number = 39; // @gotags: msg:"14894,omitempty" type:"31,omitempty" + optional string assistant_telephone_number = 39; // @gotags: msg:"14894-31,omitempty" // Specifies whether a client or server application will forego sending automated replies in response to this message. - optional int32 auto_response_suppress = 40; // @gotags: msg:"16351,omitempty" type:"3,omitempty" + optional int32 auto_response_suppress = 40; // @gotags: msg:"16351-3,omitempty" // Indicates the user's preference for viewing external content (such as links to images on an HTTP server) in the message body. - optional int32 block_status = 41; // @gotags: msg:"4246,omitempty" type:"3,omitempty" + optional int32 block_status = 41; // @gotags: msg:"4246-3,omitempty" // Contains message body text in plain text format. - optional string body = 42; // @gotags: msg:"4096,omitempty" type:"31,omitempty" + optional string body = 42; // @gotags: msg:"4096-31,omitempty" // Contains a globally unique Uniform Resource Identifier (URI) that serves as a label for the current message body. - optional string body_content_location = 43; // @gotags: msg:"4116,omitempty" type:"31,omitempty" + optional string body_content_location = 43; // @gotags: msg:"4116-31,omitempty" // Contains the HTML body of the Message object. - optional string body_html = 44; // @gotags: msg:"4115,omitempty" type:"31,omitempty" + optional string body_html = 44; // @gotags: msg:"4115-31,omitempty" // Contains the current time, in UTC, when the email message is submitted. - optional int64 client_submit_time = 45; // @gotags: msg:"57,omitempty" type:"64,omitempty" + optional int64 client_submit_time = 45; // @gotags: msg:"57-64,omitempty" // Indicates a confidence level that the message is spam. - optional int32 content_filter_spam_confidence_level = 46; // @gotags: msg:"16502,omitempty" type:"3,omitempty" + optional int32 content_filter_spam_confidence_level = 46; // @gotags: msg:"16502-3,omitempty" // Contains an unchanging copy of the original subject. - optional string conversation_topic = 48; // @gotags: msg:"112,omitempty" type:"31,omitempty" + optional string conversation_topic = 48; // @gotags: msg:"112-31,omitempty" // Contains the time, in UTC, that the object was created. - optional int64 creation_time = 49; // @gotags: msg:"12295,omitempty" type:"64,omitempty" + optional int64 creation_time = 49; // @gotags: msg:"12295-64,omitempty" // Contains the name of the creator of a Message object. - optional string creator_name = 50; // @gotags: msg:"16376,omitempty" type:"31,omitempty" + optional string creator_name = 50; // @gotags: msg:"16376-31,omitempty" // Contains the delivery time for a delivery status notification, as specified [RFC3464], or a message disposition notification, as specified in [RFC3798]. - optional int64 deliver_time = 51; // @gotags: msg:"16,omitempty" type:"64,omitempty" + optional int64 deliver_time = 51; // @gotags: msg:"16-64,omitempty" // Contains a list of blind carbon copy (Bcc) recipient display names. - optional string display_bcc = 52; // @gotags: msg:"3586,omitempty" type:"31,omitempty" + optional string display_bcc = 52; // @gotags: msg:"3586-31,omitempty" // Contains a list of carbon copy (Cc) recipient display names. - optional string display_cc = 53; // @gotags: msg:"3587,omitempty" type:"31,omitempty" + optional string display_cc = 53; // @gotags: msg:"3587-31,omitempty" // Contains a list of the primary recipient display names, separated by semicolons, when an email message has primary recipients . - optional string display_to = 54; // @gotags: msg:"3588,omitempty" type:"31,omitempty" + optional string display_to = 54; // @gotags: msg:"3588-31,omitempty" // Specifies which icon is to be used by a user interface when displaying a group of Message objects. - optional int32 icon_index = 56; // @gotags: msg:"4224,omitempty" type:"3,omitempty" + optional int32 icon_index = 56; // @gotags: msg:"4224-3,omitempty" // Indicates the level of importance assigned by the end user to the Message object. - optional int32 importance = 57; // @gotags: msg:"23,omitempty" type:"3,omitempty" + optional int32 importance = 57; // @gotags: msg:"23-3,omitempty" // Contains the initials for parts of the full name of the mail user. - optional string initials = 58; // @gotags: msg:"14858,omitempty" type:"31,omitempty" + optional string initials = 58; // @gotags: msg:"14858-31,omitempty" // Contains the value of the original message's PidTagInternetMessageId property (section 2.748) value. - optional string in_reply_to_id = 59; // @gotags: msg:"4162,omitempty" type:"31,omitempty" + optional string in_reply_to_id = 59; // @gotags: msg:"4162-31,omitempty" // Indicates the encoding method and HTML inclusion for attachments. - optional int32 internet_mail_override_format = 60; // @gotags: msg:"22786,omitempty" type:"3,omitempty" + optional int32 internet_mail_override_format = 60; // @gotags: msg:"22786-3,omitempty" // Corresponds to the message-id field. - optional string internet_message_id = 61; // @gotags: msg:"4149,omitempty" type:"31,omitempty" + optional string internet_message_id = 61; // @gotags: msg:"4149-31,omitempty" // Contains a list of message IDs that specify the messages to which this reply is related. - optional string internet_references = 62; // @gotags: msg:"4153,omitempty" type:"31,omitempty" + optional string internet_references = 62; // @gotags: msg:"4153-31,omitempty" // Contains the Integrated Services Digital Network (ISDN) telephone number of the mail user. - optional string isdn_number = 63; // @gotags: msg:"14893,omitempty" type:"31,omitempty" + optional string isdn_number = 63; // @gotags: msg:"14893-31,omitempty" // Contains a keyword that identifies the mail user to the mail user's system administrator. - optional string keyword = 64; // @gotags: msg:"14859,omitempty" type:"31,omitempty" + optional string keyword = 64; // @gotags: msg:"14859-31,omitempty" // Contains a value that indicates the language in which the messaging user is writing messages. - optional string language = 65; // @gotags: msg:"14860,omitempty" type:"31,omitempty" + optional string language = 65; // @gotags: msg:"14860-31,omitempty" // Contains the time, in UTC, of the last modification to the object. - optional int64 last_modification_time = 66; // @gotags: msg:"12296,omitempty" type:"64,omitempty" + optional int64 last_modification_time = 66; // @gotags: msg:"12296-64,omitempty" // Contains the name of the mail user's locality, such as the town or city. - optional string locality = 67; // @gotags: msg:"14887,omitempty" type:"31,omitempty" + optional string locality = 67; // @gotags: msg:"14887-31,omitempty" // Contains the location of the mail user. - optional string location = 68; // @gotags: msg:"14861,omitempty" type:"31,omitempty" + optional string location = 68; // @gotags: msg:"14861-31,omitempty" // Contains the name of the mail user's manager. - optional string manager_name = 69; // @gotags: msg:"14926,omitempty" type:"31,omitempty" + optional string manager_name = 69; // @gotags: msg:"14926-31,omitempty" // - optional bool message_cc_me = 70; // @gotags: msg:"88,omitempty" type:"11,omitempty" + optional bool message_cc_me = 70; // @gotags: msg:"88-11,omitempty" // Specifies the time (in UTC) when the server received the message. - optional int64 message_delivery_time = 71; // @gotags: msg:"3590,omitempty" type:"64,omitempty" + optional int64 message_delivery_time = 71; // @gotags: msg:"3590-64,omitempty" // Specifies the status of the Message object. - optional int32 message_flags = 72; // @gotags: msg:"3591,omitempty" type:"3,omitempty" + optional int32 message_flags = 72; // @gotags: msg:"3591-3,omitempty" // Contains the common name of a messaging user for use in a message header. - optional string message_handling_system_common_name = 73; // @gotags: msg:"14863,omitempty" type:"31,omitempty" + optional string message_handling_system_common_name = 73; // @gotags: msg:"14863-31,omitempty" // Indicates that the receiving mailbox owner is a primary or a carbon copy (Cc) recipient of this email message. - optional bool message_recipient_me = 74; // @gotags: msg:"89,omitempty" type:"11,omitempty" + optional bool message_recipient_me = 74; // @gotags: msg:"89-11,omitempty" // Contains the size, in bytes, consumed by the Message object on the server. - optional int32 message_size = 76; // @gotags: msg:"3592,omitempty" type:"3,omitempty" + optional int32 message_size = 76; // @gotags: msg:"3592-3,omitempty" // Specifies the 64-bit version of the PidTagMessageSize property (section 2.796). - optional double message_size_extended = 77; // @gotags: msg:"3592,omitempty" type:"20,omitempty" + optional double message_size_extended = 77; // @gotags: msg:"3592-20,omitempty" // Specifies the status of a message in a contents table. - optional int32 message_status = 78; // @gotags: msg:"3607,omitempty" type:"3,omitempty" + optional int32 message_status = 78; // @gotags: msg:"3607-3,omitempty" // Indicates that the receiving mailbox owner is one of the primary recipients of this email message. - optional bool message_to_me = 80; // @gotags: msg:"87,omitempty" type:"11,omitempty" + optional bool message_to_me = 80; // @gotags: msg:"87-11,omitempty" // Specifies the middle name(s) of the contact. - optional string middle_name = 81; // @gotags: msg:"14916,omitempty" type:"31,omitempty" + optional string middle_name = 81; // @gotags: msg:"14916-31,omitempty" // Contains the mail user's cellular telephone number. - optional string mobile_telephone_number = 82; // @gotags: msg:"14876,omitempty" type:"31,omitempty" + optional string mobile_telephone_number = 82; // @gotags: msg:"14876-31,omitempty" // Contains the mail user's nickname. - optional string nickname = 83; // @gotags: msg:"14927,omitempty" type:"31,omitempty" + optional string nickname = 83; // @gotags: msg:"14927-31,omitempty" // Contains the diagnostic code for a delivery status notification, as specified in [RFC3464]. - optional int32 non_delivery_report_diag_code = 84; // @gotags: msg:"3077,omitempty" type:"3,omitempty" + optional int32 non_delivery_report_diag_code = 84; // @gotags: msg:"3077-3,omitempty" // Contains an integer value that indicates a reason for delivery failure. - optional int32 non_delivery_report_reason_code = 85; // @gotags: msg:"3076,omitempty" type:"3,omitempty" + optional int32 non_delivery_report_reason_code = 85; // @gotags: msg:"3076-3,omitempty" // Specifies whether the client sends a non-read receipt. - optional int32 non_delivery_report_status_code = 86; // @gotags: msg:"3078,omitempty" type:"3,omitempty" + optional int32 non_delivery_report_status_code = 86; // @gotags: msg:"3078-3,omitempty" // Contains the normalized subject of the message. - optional string normalized_subject = 87; // @gotags: msg:"3613,omitempty" type:"31,omitempty" + optional string normalized_subject = 87; // @gotags: msg:"3613-31,omitempty" // Contains the mail user's office location. - optional string office_location = 88; // @gotags: msg:"14873,omitempty" type:"31,omitempty" + optional string office_location = 88; // @gotags: msg:"14873-31,omitempty" // Contains an identifier for the mail user used within the mail user's organization. - optional string organizational_id_number = 89; // @gotags: msg:"14864,omitempty" type:"31,omitempty" + optional string organizational_id_number = 89; // @gotags: msg:"14864-31,omitempty" // Contains the display name of the sender of the original message referenced by a report message. - optional string original_author_name = 91; // @gotags: msg:"77,omitempty" type:"31,omitempty" + optional string original_author_name = 91; // @gotags: msg:"77-31,omitempty" // Contains the delivery time, in UTC, from the original message. - optional int64 original_delivery_time = 92; // @gotags: msg:"85,omitempty" type:"64,omitempty" + optional int64 original_delivery_time = 92; // @gotags: msg:"85-64,omitempty" // Contains the value of the PidTagDisplayBcc property (section 2.674) from the original message. - optional string original_display_bcc = 93; // @gotags: msg:"114,omitempty" type:"31,omitempty" + optional string original_display_bcc = 93; // @gotags: msg:"114-31,omitempty" // Contains the value of the PidTagDisplayCc property(section 2.675) from the original message. - optional string original_display_cc = 94; // @gotags: msg:"115,omitempty" type:"31,omitempty" + optional string original_display_cc = 94; // @gotags: msg:"115-31,omitempty" // Contains the value of the PidTagDisplayTo property (section 2.678) from the original message. - optional string original_display_to = 95; // @gotags: msg:"116,omitempty" type:"31,omitempty" + optional string original_display_to = 95; // @gotags: msg:"116-31,omitempty" // Designates the PidTagMessageClass property ([MS-OXCMSG] section 2.2.1.3) from the original message. - optional string original_message_class = 97; // @gotags: msg:"75,omitempty" type:"31,omitempty" + optional string original_message_class = 97; // @gotags: msg:"75-31,omitempty" // Contains the value of the original message sender's PidTagSenderAddressType property (section 2.1000). - optional string original_sender_address_type = 98; // @gotags: msg:"102,omitempty" type:"31,omitempty" + optional string original_sender_address_type = 98; // @gotags: msg:"102-31,omitempty" // Contains the value of the original message sender's PidTagSenderEmailAddress property (section 2.1001). - optional string original_sender_email_address = 99; // @gotags: msg:"103,omitempty" type:"31,omitempty" + optional string original_sender_email_address = 99; // @gotags: msg:"103-31,omitempty" // Contains the value of the original message sender's PidTagSenderName property (section 2.1004), and is set on delivery report messages. - optional string original_sender_name = 101; // @gotags: msg:"90,omitempty" type:"31,omitempty" + optional string original_sender_name = 101; // @gotags: msg:"90-31,omitempty" // Contains the sensitivity value of the original email message. - optional int32 original_sensitivity = 103; // @gotags: msg:"46,omitempty" type:"3,omitempty" + optional int32 original_sensitivity = 103; // @gotags: msg:"46-3,omitempty" // Contains the address type of the end user who is represented by the original email message sender. - optional string original_sent_representing_address_type = 104; // @gotags: msg:"104,omitempty" type:"31,omitempty" + optional string original_sent_representing_address_type = 104; // @gotags: msg:"104-31,omitempty" // Contains the email address of the end user who is represented by the original email message sender. - optional string original_sent_representing_email_address = 105; // @gotags: msg:"105,omitempty" type:"31,omitempty" + optional string original_sent_representing_email_address = 105; // @gotags: msg:"105-31,omitempty" // Contains the display name of the end user who is represented by the original email message sender. - optional string original_sent_representing_name = 107; // @gotags: msg:"93,omitempty" type:"31,omitempty" + optional string original_sent_representing_name = 107; // @gotags: msg:"93-31,omitempty" // Specifies the subject of the original message. - optional string original_subject = 109; // @gotags: msg:"73,omitempty" type:"31,omitempty" + optional string original_subject = 109; // @gotags: msg:"73-31,omitempty" // Specifies the original email message's submission date and time, in UTC. - optional int64 original_submit_time = 110; // @gotags: msg:"78,omitempty" type:"64,omitempty" + optional int64 original_submit_time = 110; // @gotags: msg:"78-64,omitempty" // Indicates whether an email sender requests an email delivery receipt from the messaging system. - optional bool originator_delivery_report_requested = 111; // @gotags: msg:"35,omitempty" type:"11,omitempty" + optional bool originator_delivery_report_requested = 111; // @gotags: msg:"35-11,omitempty" // Specifies whether an email sender requests suppression of nondelivery receipts. - optional bool originator_non_delivery_report_requested = 112; // @gotags: msg:"3080,omitempty" type:"11,omitempty" + optional bool originator_non_delivery_report_requested = 112; // @gotags: msg:"3080-11,omitempty" // Contains the name of the mail user's other locality, such as the town or city. - optional string other_address_city = 113; // @gotags: msg:"14943,omitempty" type:"31,omitempty" + optional string other_address_city = 113; // @gotags: msg:"14943-31,omitempty" // Contains the name of the mail user's other country/region. - optional string other_address_country = 114; // @gotags: msg:"14944,omitempty" type:"31,omitempty" + optional string other_address_country = 114; // @gotags: msg:"14944-31,omitempty" // Contains the postal code for the mail user's other postal address. - optional string other_address_postal_code = 115; // @gotags: msg:"14945,omitempty" type:"31,omitempty" + optional string other_address_postal_code = 115; // @gotags: msg:"14945-31,omitempty" // Contains the number or identifier of the mail user's other post office box. - optional string other_address_post_office_box = 116; // @gotags: msg:"14948,omitempty" type:"31,omitempty" + optional string other_address_post_office_box = 116; // @gotags: msg:"14948-31,omitempty" // Contains the name of the mail user's other state or province. - optional string other_address_state_or_province = 117; // @gotags: msg:"14946,omitempty" type:"31,omitempty" + optional string other_address_state_or_province = 117; // @gotags: msg:"14946-31,omitempty" // Contains the mail user's other street address. - optional string other_address_street = 118; // @gotags: msg:"14947,omitempty" type:"31,omitempty" + optional string other_address_street = 118; // @gotags: msg:"14947-31,omitempty" // Contains an alternate telephone number for the mail user. - optional string other_telephone_number = 119; // @gotags: msg:"14879,omitempty" type:"31,omitempty" + optional string other_telephone_number = 119; // @gotags: msg:"14879-31,omitempty" // Contains the mail user's pager telephone number. - optional string pager_telephone_number = 120; // @gotags: msg:"14881,omitempty" type:"31,omitempty" + optional string pager_telephone_number = 120; // @gotags: msg:"14881-31,omitempty" // Indicates the client's request for the priority with which the message is to be sent by the messaging system. - optional int32 priority = 122; // @gotags: msg:"38,omitempty" type:"3,omitempty" + optional int32 priority = 122; // @gotags: msg:"38-3,omitempty" // Specifies whether the email sender requests a read receipt from all recipients when this email message is read or opened. - optional bool read_receipt_requested = 123; // @gotags: msg:"41,omitempty" type:"11,omitempty" + optional bool read_receipt_requested = 123; // @gotags: msg:"41-11,omitempty" // Contains the sent time for a message disposition notification, as specified in [RFC3798]. - optional int64 receipt_time = 124; // @gotags: msg:"42,omitempty" type:"64,omitempty" + optional int64 receipt_time = 124; // @gotags: msg:"42-64,omitempty" // Contains the email message receiver's email address. - optional string received_by_email_address = 125; // @gotags: msg:"118,omitempty" type:"31,omitempty" + optional string received_by_email_address = 125; // @gotags: msg:"118-31,omitempty" // Contains the email message receiver's display name. - optional string received_by_name = 127; // @gotags: msg:"64,omitempty" type:"31,omitempty" + optional string received_by_name = 127; // @gotags: msg:"64-31,omitempty" // Contains the email address type for the end user represented by the receiving mailbox owner. - optional string received_representing_address_type = 129; // @gotags: msg:"119,omitempty" type:"31,omitempty" + optional string received_representing_address_type = 129; // @gotags: msg:"119-31,omitempty" // Contains the email address for the end user represented by the receiving mailbox owner. - optional string received_representing_email_address = 130; // @gotags: msg:"120,omitempty" type:"31,omitempty" + optional string received_representing_email_address = 130; // @gotags: msg:"120-31,omitempty" // Contains the display name for the end user represented by the receiving mailbox owner. - optional string received_representing_name = 132; // @gotags: msg:"68,omitempty" type:"31,omitempty" + optional string received_representing_name = 132; // @gotags: msg:"68-31,omitempty" // Represents the recipient type of a recipient on the message. - optional int32 recipient_type = 134; // @gotags: msg:"3093,omitempty" type:"3,omitempty" + optional int32 recipient_type = 134; // @gotags: msg:"3093-3,omitempty" // Contains the value of the Remote-MTA field for a delivery status notification, as specified in [RFC3464]. - optional string remote_message_transfer_agent = 135; // @gotags: msg:"3105,omitempty" type:"31,omitempty" + optional string remote_message_transfer_agent = 135; // @gotags: msg:"3105-31,omitempty" // Indicates whether a reply is requested to a Message object. - optional bool reply_requested = 136; // @gotags: msg:"3095,omitempty" type:"11,omitempty" + optional bool reply_requested = 136; // @gotags: msg:"3095-11,omitempty" // Contains a string indicating whether the original message was displayed to the user or deleted (report messages only). - optional string report_disposition = 137; // @gotags: msg:"128,omitempty" type:"31,omitempty" + optional string report_disposition = 137; // @gotags: msg:"128-31,omitempty" // Contains a description of the action that a client has performed on behalf of a user (report messages only). - optional string report_disposition_mode = 138; // @gotags: msg:"129,omitempty" type:"31,omitempty" + optional string report_disposition_mode = 138; // @gotags: msg:"129-31,omitempty" // Contains the value of the Reporting-MTA field for a delivery status notification, as specified in [RFC3464]. - optional string reporting_message_transfer_agent = 139; // @gotags: msg:"26656,omitempty" type:"31,omitempty" + optional string reporting_message_transfer_agent = 139; // @gotags: msg:"26656-31,omitempty" // Specifies the date, in UTC, after which a Message object is expired by the server. - optional int64 retention_date = 140; // @gotags: msg:"12316,omitempty" type:"64,omitempty" + optional int64 retention_date = 140; // @gotags: msg:"12316-64,omitempty" // Contains flags that specify the status or nature of an item's retention tag or archive tag. - optional int32 retention_flags = 141; // @gotags: msg:"12317,omitempty" type:"3,omitempty" + optional int32 retention_flags = 141; // @gotags: msg:"12317-3,omitempty" // Specifies the number of days that a Message object can remain unarchived. - optional int32 retention_period = 142; // @gotags: msg:"12314,omitempty" type:"3,omitempty" + optional int32 retention_period = 142; // @gotags: msg:"12314-3,omitempty" // Indicates whether the PidTagBody property (section 2.618) and the PidTagRtfCompressed property (section 2.941) contain the same text (ignoring formatting). - optional bool rtf_in_sync = 144; // @gotags: msg:"3615,omitempty" type:"11,omitempty" + optional bool rtf_in_sync = 144; // @gotags: msg:"3615-11,omitempty" // Contains the email address type of the sending mailbox owner. - optional string sender_address_type = 145; // @gotags: msg:"3102,omitempty" type:"31,omitempty" + optional string sender_address_type = 145; // @gotags: msg:"3102-31,omitempty" // Contains the email address of the sending mailbox owner. - optional string sender_email_address = 146; // @gotags: msg:"3103,omitempty" type:"31,omitempty" + optional string sender_email_address = 146; // @gotags: msg:"3103-31,omitempty" // Reports the results of a Sender-ID check. - optional int32 sender_id_status = 148; // @gotags: msg:"16505,omitempty" type:"3,omitempty" + optional int32 sender_id_status = 148; // @gotags: msg:"16505-3,omitempty" // Contains the display name of the sending mailbox owner. - optional string sender_name = 149; // @gotags: msg:"3098,omitempty" type:"31,omitempty" + optional string sender_name = 149; // @gotags: msg:"3098-31,omitempty" // Contains a bitmask of message encoding preferences for email sent to an email-enabled entity that is represented by this Address Book object. - optional int32 send_internet_encoding = 151; // @gotags: msg:"14961,omitempty" type:"3,omitempty" + optional int32 send_internet_encoding = 151; // @gotags: msg:"14961-3,omitempty" // Indicates whether the email-enabled entity represented by the Address Book object can receive all message content, including Rich Text Format (RTF) and other embedded objects. - optional bool send_rich_info = 152; // @gotags: msg:"14912,omitempty" type:"11,omitempty" + optional bool send_rich_info = 152; // @gotags: msg:"14912-11,omitempty" // Indicates the sender's assessment of the sensitivity of the Message object. - optional int32 sensitivity = 153; // @gotags: msg:"54,omitempty" type:"3,omitempty" + optional int32 sensitivity = 153; // @gotags: msg:"54-3,omitempty" // Contains an email address type. - optional string sent_representing_address_type = 154; // @gotags: msg:"100,omitempty" type:"31,omitempty" + optional string sent_representing_address_type = 154; // @gotags: msg:"100-31,omitempty" // Contains an email address for the end user who is represented by the sending mailbox owner. - optional string sent_representing_email_address = 155; // @gotags: msg:"101,omitempty" type:"31,omitempty" + optional string sent_representing_email_address = 155; // @gotags: msg:"101-31,omitempty" // Contains the display name for the end user who is represented by the sending mailbox owner. - optional string sent_representing_name = 157; // @gotags: msg:"66,omitempty" type:"31,omitempty" + optional string sent_representing_name = 157; // @gotags: msg:"66-31,omitempty" // Contains the SMTP address of the Message object. - optional string smtp_address = 159; // @gotags: msg:"14846,omitempty" type:"31,omitempty" + optional string smtp_address = 159; // @gotags: msg:"14846-31,omitempty" // Contains the subject of the email message. - optional string subject = 161; // @gotags: msg:"55,omitempty" type:"31,omitempty" + optional string subject = 161; // @gotags: msg:"55-31,omitempty" // Contains the prefix for the subject of the message. - optional string subject_prefix = 162; // @gotags: msg:"61,omitempty" type:"31,omitempty" + optional string subject_prefix = 162; // @gotags: msg:"61-31,omitempty" // Contains supplementary information about a delivery status notification, as specified in [RFC3464]. - optional string supplementary_info = 163; // @gotags: msg:"3099,omitempty" type:"31,omitempty" + optional string supplementary_info = 163; // @gotags: msg:"3099-31,omitempty" // Contains an Address Book object's display name that is transmitted with the message. - optional string transmittable_display_name = 164; // @gotags: msg:"14880,omitempty" type:"31,omitempty" + optional string transmittable_display_name = 164; // @gotags: msg:"14880-31,omitempty" // Contains transport-specific message envelope information for email. - optional string transport_message_headers = 165; // @gotags: msg:"125,omitempty" type:"31,omitempty" + optional string transport_message_headers = 165; // @gotags: msg:"125-31,omitempty" } diff --git a/cmd/properties/protobufs/note.proto b/cmd/properties/protobufs/note.proto index 9653234..9ef72f8 100644 --- a/cmd/properties/protobufs/note.proto +++ b/cmd/properties/protobufs/note.proto @@ -21,13 +21,13 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Note { // Specifies the suggested background color of the Note object. - optional int32 note_color = 1; // @gotags: msg:"273408,omitempty" type:"3,omitempty" + optional int32 note_color = 1; // @gotags: msg:"273408-3,omitempty" // Specifies the height of the visible message window in pixels. - optional int32 note_height = 2; // @gotags: msg:"273411,omitempty" type:"3,omitempty" + optional int32 note_height = 2; // @gotags: msg:"273411-3,omitempty" // Specifies the width of the visible message window in pixels. - optional int32 note_width = 3; // @gotags: msg:"273410,omitempty" type:"3,omitempty" + optional int32 note_width = 3; // @gotags: msg:"273410-3,omitempty" // Specifies the distance, in pixels, from the left edge of the screen that a user interface displays a Note object. - optional int32 note_x = 4; // @gotags: msg:"273412,omitempty" type:"3,omitempty" + optional int32 note_x = 4; // @gotags: msg:"273412-3,omitempty" // Specifies the distance, in pixels, from the top edge of the screen that a user interface displays a Note object. - optional int32 note_y = 5; // @gotags: msg:"273413,omitempty" type:"3,omitempty" + optional int32 note_y = 5; // @gotags: msg:"273413-3,omitempty" } diff --git a/cmd/properties/protobufs/rss.proto b/cmd/properties/protobufs/rss.proto index 07aebfe..8f03f6c 100644 --- a/cmd/properties/protobufs/rss.proto +++ b/cmd/properties/protobufs/rss.proto @@ -21,17 +21,17 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message RSS { // Contains the contents of the title field from the XML of the Atom feed or RSS channel. - optional string post_rss_channel = 1; // @gotags: msg:"271364,omitempty" type:"31,omitempty" + optional string post_rss_channel = 1; // @gotags: msg:"271364-31,omitempty" // Contains the URL of the RSS or Atom feed from which the XML file came. - optional string post_rss_channel_link = 2; // @gotags: msg:"271360,omitempty" type:"31,omitempty" + optional string post_rss_channel_link = 2; // @gotags: msg:"271360-31,omitempty" // Contains a unique identifier for the RSS object. - optional string post_rss_item_guid = 3; // @gotags: msg:"271363,omitempty" type:"31,omitempty" + optional string post_rss_item_guid = 3; // @gotags: msg:"271363-31,omitempty" // Contains a hash of the feed XML computed by using an implementation-dependent algorithm. - optional int32 post_rss_item_hash = 4; // @gotags: msg:"271362,omitempty" type:"3,omitempty" + optional int32 post_rss_item_hash = 4; // @gotags: msg:"271362-3,omitempty" // Contains the URL of the link from an RSS or Atom item. - optional string post_rss_item_link = 5; // @gotags: msg:"271361,omitempty" type:"31,omitempty" + optional string post_rss_item_link = 5; // @gotags: msg:"271361-31,omitempty" // Contains the item element and all of its sub-elements from an RSS feed, or the entry element and all of its sub-elements from an Atom feed. - optional string post_rss_item_xml = 6; // @gotags: msg:"271365,omitempty" type:"31,omitempty" + optional string post_rss_item_xml = 6; // @gotags: msg:"271365-31,omitempty" // Contains the user's preferred name for the RSS or Atom subscription. - optional string post_rss_subscription = 7; // @gotags: msg:"271366,omitempty" type:"31,omitempty" + optional string post_rss_subscription = 7; // @gotags: msg:"271366-31,omitempty" } diff --git a/cmd/properties/protobufs/sharing.proto b/cmd/properties/protobufs/sharing.proto index 902ff8c..b6562d2 100644 --- a/cmd/properties/protobufs/sharing.proto +++ b/cmd/properties/protobufs/sharing.proto @@ -21,115 +21,115 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Sharing { // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_anonymity = 1; // @gotags: msg:"272425,omitempty" type:"3,omitempty" + optional int32 sharing_anonymity = 1; // @gotags: msg:"272425-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_browse_url = 3; // @gotags: msg:"272545,omitempty" type:"31,omitempty" + optional string sharing_browse_url = 3; // @gotags: msg:"272545-31,omitempty" // Indicates that the Message object relates to a special folder. - optional int32 sharing_capabilities = 4; // @gotags: msg:"272423,omitempty" type:"3,omitempty" + optional int32 sharing_capabilities = 4; // @gotags: msg:"272423-3,omitempty" // Contains a zero-length string. - optional string sharing_configuration_url = 5; // @gotags: msg:"272452,omitempty" type:"31,omitempty" + optional string sharing_configuration_url = 5; // @gotags: msg:"272452-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_data_range_end = 6; // @gotags: msg:"272517,omitempty" type:"64,omitempty" + optional int64 sharing_data_range_end = 6; // @gotags: msg:"272517-64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_data_range_start = 7; // @gotags: msg:"272516,omitempty" type:"64,omitempty" + optional int64 sharing_data_range_start = 7; // @gotags: msg:"272516-64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_detail = 8; // @gotags: msg:"272459,omitempty" type:"3,omitempty" + optional int32 sharing_detail = 8; // @gotags: msg:"272459-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_extension_xml = 9; // @gotags: msg:"272449,omitempty" type:"31,omitempty" + optional string sharing_extension_xml = 9; // @gotags: msg:"272449-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_flags = 11; // @gotags: msg:"272394,omitempty" type:"3,omitempty" + optional int32 sharing_flags = 11; // @gotags: msg:"272394-3,omitempty" // Indicates the type of Sharing Message object. - optional int32 sharing_flavor = 12; // @gotags: msg:"272424,omitempty" type:"3,omitempty" + optional int32 sharing_flavor = 12; // @gotags: msg:"272424-3,omitempty" // Contains the value of the PidTagDisplayName property (section 2.676) from the Address Book object identified by the PidLidSharingInitiatorEntryId property (section 2.248). - optional string sharing_initiator_name = 16; // @gotags: msg:"272391,omitempty" type:"31,omitempty" + optional string sharing_initiator_name = 16; // @gotags: msg:"272391-31,omitempty" // Contains the value of the PidTagSmtpAddress property (section 2.1020) from the Address Book object identified by the PidLidSharingInitiatorEntryId property (section 2.248). - optional string sharing_initiator_smtp = 17; // @gotags: msg:"272392,omitempty" type:"31,omitempty" + optional string sharing_initiator_smtp = 17; // @gotags: msg:"272392-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_last_auto_sync_time = 19; // @gotags: msg:"272549,omitempty" type:"64,omitempty" + optional int64 sharing_last_auto_sync_time = 19; // @gotags: msg:"272549-64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_last_sync_time = 20; // @gotags: msg:"272431,omitempty" type:"64,omitempty" + optional int64 sharing_last_sync_time = 20; // @gotags: msg:"272431-64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_local_comment = 21; // @gotags: msg:"272525,omitempty" type:"31,omitempty" + optional string sharing_local_comment = 21; // @gotags: msg:"272525-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_local_last_modification_time = 22; // @gotags: msg:"272451,omitempty" type:"64,omitempty" + optional int64 sharing_local_last_modification_time = 22; // @gotags: msg:"272451-64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_local_name = 23; // @gotags: msg:"272399,omitempty" type:"31,omitempty" + optional string sharing_local_name = 23; // @gotags: msg:"272399-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_local_path = 24; // @gotags: msg:"272398,omitempty" type:"31,omitempty" + optional string sharing_local_path = 24; // @gotags: msg:"272398-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_local_store_uid = 25; // @gotags: msg:"272521,omitempty" type:"31,omitempty" + optional string sharing_local_store_uid = 25; // @gotags: msg:"272521-31,omitempty" // Contains the value of the PidTagContainerClass property (section 2.642) of the folder being shared. - optional string sharing_local_type = 26; // @gotags: msg:"272420,omitempty" type:"31,omitempty" + optional string sharing_local_type = 26; // @gotags: msg:"272420-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_local_uid = 27; // @gotags: msg:"272416,omitempty" type:"31,omitempty" + optional string sharing_local_uid = 27; // @gotags: msg:"272416-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_participants = 30; // @gotags: msg:"272430,omitempty" type:"31,omitempty" + optional string sharing_participants = 30; // @gotags: msg:"272430-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_permissions = 31; // @gotags: msg:"272427,omitempty" type:"3,omitempty" + optional int32 sharing_permissions = 31; // @gotags: msg:"272427-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_provider_extension = 32; // @gotags: msg:"272395,omitempty" type:"31,omitempty" + optional string sharing_provider_extension = 32; // @gotags: msg:"272395-31,omitempty" // Contains a user-displayable name of the sharing provider identified by the PidLidSharingProviderGuid property (section 2.266). - optional string sharing_provider_name = 34; // @gotags: msg:"272386,omitempty" type:"31,omitempty" + optional string sharing_provider_name = 34; // @gotags: msg:"272386-31,omitempty" // Contains a URL related to the sharing provider identified by the PidLidSharingProviderGuid property (section 2.266). - optional string sharing_provider_url = 35; // @gotags: msg:"272387,omitempty" type:"31,omitempty" + optional string sharing_provider_url = 35; // @gotags: msg:"272387-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_range_end = 36; // @gotags: msg:"272519,omitempty" type:"3,omitempty" + optional int32 sharing_range_end = 36; // @gotags: msg:"272519-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_range_start = 37; // @gotags: msg:"272518,omitempty" type:"3,omitempty" + optional int32 sharing_range_start = 37; // @gotags: msg:"272518-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_reciprocation = 38; // @gotags: msg:"272426,omitempty" type:"3,omitempty" + optional int32 sharing_reciprocation = 38; // @gotags: msg:"272426-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_remote_byte_size = 39; // @gotags: msg:"272523,omitempty" type:"3,omitempty" + optional int32 sharing_remote_byte_size = 39; // @gotags: msg:"272523-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_remote_comment = 40; // @gotags: msg:"272463,omitempty" type:"31,omitempty" + optional string sharing_remote_comment = 40; // @gotags: msg:"272463-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_remote_crc = 41; // @gotags: msg:"272524,omitempty" type:"3,omitempty" + optional int32 sharing_remote_crc = 41; // @gotags: msg:"272524-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_remote_last_modification_time = 42; // @gotags: msg:"272450,omitempty" type:"64,omitempty" + optional int64 sharing_remote_last_modification_time = 42; // @gotags: msg:"272450-64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_remote_message_count = 43; // @gotags: msg:"272527,omitempty" type:"3,omitempty" + optional int32 sharing_remote_message_count = 43; // @gotags: msg:"272527-3,omitempty" // Contains the value of the PidTagDisplayName property (section 2.676) on the folder being shared. - optional string sharing_remote_name = 44; // @gotags: msg:"272389,omitempty" type:"31,omitempty" + optional string sharing_remote_name = 44; // @gotags: msg:"272389-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_remote_pass = 45; // @gotags: msg:"272397,omitempty" type:"31,omitempty" + optional string sharing_remote_pass = 45; // @gotags: msg:"272397-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_remote_path = 46; // @gotags: msg:"272388,omitempty" type:"31,omitempty" + optional string sharing_remote_path = 46; // @gotags: msg:"272388-31,omitempty" // Contains a hexadecimal string representation of the value of the PidTagStoreEntryId property (section 2.1028) on the folder being shared. - optional string sharing_remote_store_uid = 47; // @gotags: msg:"272520,omitempty" type:"31,omitempty" + optional string sharing_remote_store_uid = 47; // @gotags: msg:"272520-31,omitempty" // Contains the same value as the PidLidSharingLocalType property (section 2.259). - optional string sharing_remote_type = 48; // @gotags: msg:"272429,omitempty" type:"31,omitempty" + optional string sharing_remote_type = 48; // @gotags: msg:"272429-31,omitempty" // Contains the EntryID of the folder being shared. - optional string sharing_remote_uid = 49; // @gotags: msg:"272390,omitempty" type:"31,omitempty" + optional string sharing_remote_uid = 49; // @gotags: msg:"272390-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_remote_user = 50; // @gotags: msg:"272396,omitempty" type:"31,omitempty" + optional string sharing_remote_user = 50; // @gotags: msg:"272396-31,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional string sharing_remote_version = 51; // @gotags: msg:"272555,omitempty" type:"31,omitempty" + optional string sharing_remote_version = 51; // @gotags: msg:"272555-31,omitempty" // Contains the time at which the recipient of the sharing request sent a sharing response. - optional int64 sharing_response_time = 52; // @gotags: msg:"272456,omitempty" type:"64,omitempty" + optional int64 sharing_response_time = 52; // @gotags: msg:"272456-64,omitempty" // Contains the type of response with which the recipient of the sharing request responded. - optional int32 sharing_response_type = 53; // @gotags: msg:"272455,omitempty" type:"3,omitempty" + optional int32 sharing_response_type = 53; // @gotags: msg:"272455-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_roam_log = 54; // @gotags: msg:"272526,omitempty" type:"3,omitempty" + optional int32 sharing_roam_log = 54; // @gotags: msg:"272526-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_start = 55; // @gotags: msg:"272453,omitempty" type:"64,omitempty" + optional int64 sharing_start = 55; // @gotags: msg:"272453-64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_status = 56; // @gotags: msg:"272384,omitempty" type:"3,omitempty" + optional int32 sharing_status = 56; // @gotags: msg:"272384-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_stop = 57; // @gotags: msg:"272454,omitempty" type:"64,omitempty" + optional int64 sharing_stop = 57; // @gotags: msg:"272454-64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_sync_flags = 58; // @gotags: msg:"272576,omitempty" type:"3,omitempty" + optional int32 sharing_sync_flags = 58; // @gotags: msg:"272576-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_sync_interval = 59; // @gotags: msg:"272458,omitempty" type:"3,omitempty" + optional int32 sharing_sync_interval = 59; // @gotags: msg:"272458-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_time_to_live = 60; // @gotags: msg:"272460,omitempty" type:"3,omitempty" + optional int32 sharing_time_to_live = 60; // @gotags: msg:"272460-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_time_to_live_auto = 61; // @gotags: msg:"272550,omitempty" type:"3,omitempty" + optional int32 sharing_time_to_live_auto = 61; // @gotags: msg:"272550-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int32 sharing_working_hours_days = 62; // @gotags: msg:"272514,omitempty" type:"3,omitempty" + optional int32 sharing_working_hours_days = 62; // @gotags: msg:"272514-3,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_working_hours_end = 63; // @gotags: msg:"272513,omitempty" type:"64,omitempty" + optional int64 sharing_working_hours_end = 63; // @gotags: msg:"272513-64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. - optional int64 sharing_working_hours_start = 64; // @gotags: msg:"272512,omitempty" type:"64,omitempty" + optional int64 sharing_working_hours_start = 64; // @gotags: msg:"272512-64,omitempty" // Contains a value that is ignored by the server no matter what value is generated by the client. optional string x_sharing_browse_url = 66; // Contains a string representation of the value of the PidLidSharingCapabilities property (section 2.237). diff --git a/cmd/properties/protobufs/spam.proto b/cmd/properties/protobufs/spam.proto index a5772bc..aa7867e 100644 --- a/cmd/properties/protobufs/spam.proto +++ b/cmd/properties/protobufs/spam.proto @@ -21,13 +21,13 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Spam { // Indicates whether email recipients are to be added to the safe senders list. - optional int32 junk_add_recipients_to_safe_senders_list = 2; // @gotags: msg:"24835,omitempty" type:"3,omitempty" + optional int32 junk_add_recipients_to_safe_senders_list = 2; // @gotags: msg:"24835-3,omitempty" // Indicates whether email addresses of the contacts in the Contacts folder are treated in a special way with respect to the spam filter. - optional int32 junk_include_contacts = 3; // @gotags: msg:"24832,omitempty" type:"3,omitempty" + optional int32 junk_include_contacts = 3; // @gotags: msg:"24832-3,omitempty" // Indicates whether messages identified as spam can be permanently deleted. - optional int32 junk_permanently_delete = 4; // @gotags: msg:"24834,omitempty" type:"3,omitempty" + optional int32 junk_permanently_delete = 4; // @gotags: msg:"24834-3,omitempty" // Indicated whether the phishing stamp on a message is to be ignored. - optional bool junk_phishing_enable_links = 5; // @gotags: msg:"24839,omitempty" type:"11,omitempty" + optional bool junk_phishing_enable_links = 5; // @gotags: msg:"24839-11,omitempty" // Indicates how aggressively incoming email is to be sent to the Junk Email folder. - optional int32 junk_threshold = 6; // @gotags: msg:"24833,omitempty" type:"3,omitempty" + optional int32 junk_threshold = 6; // @gotags: msg:"24833-3,omitempty" } diff --git a/cmd/properties/protobufs/task.proto b/cmd/properties/protobufs/task.proto index 002c652..d6a891f 100644 --- a/cmd/properties/protobufs/task.proto +++ b/cmd/properties/protobufs/task.proto @@ -21,81 +21,81 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Task { // Contains an index identifying one of a set of pre-defined text strings to be associated with the flag. - optional int32 flag_string = 1; // @gotags: msg:"267648,omitempty" type:"3,omitempty" + optional int32 flag_string = 1; // @gotags: msg:"267648-3,omitempty" // Indicates whether a time-flagged Message object is complete. - optional double percent_complete = 3; // @gotags: msg:"263170,omitempty" type:"5,omitempty" + optional double percent_complete = 3; // @gotags: msg:"263170-5,omitempty" // Indicates the acceptance state of the task. - optional int32 task_acceptance_state = 4; // @gotags: msg:"263242,omitempty" type:"3,omitempty" + optional int32 task_acceptance_state = 4; // @gotags: msg:"263242-3,omitempty" // Indicates whether a task assignee has replied to a task request for this Task object. - optional bool task_accepted = 5; // @gotags: msg:"263176,omitempty" type:"11,omitempty" + optional bool task_accepted = 5; // @gotags: msg:"263176-11,omitempty" // Indicates the number of minutes that the user actually spent working on a task. - optional int32 task_actual_effort = 6; // @gotags: msg:"263200,omitempty" type:"3,omitempty" + optional int32 task_actual_effort = 6; // @gotags: msg:"263200-3,omitempty" // Specifies the name of the user that last assigned the task. - optional string task_assigner = 7; // @gotags: msg:"263233,omitempty" type:"31,omitempty" + optional string task_assigner = 7; // @gotags: msg:"263233-31,omitempty" // Indicates that the task is complete. - optional bool task_complete = 9; // @gotags: msg:"263212,omitempty" type:"11,omitempty" + optional bool task_complete = 9; // @gotags: msg:"263212-11,omitempty" // The client can set this property, but it has no impact on the Task-Related Objects Protocol and is ignored by the server. - optional int32 task_custom_flags = 10; // @gotags: msg:"263273,omitempty" type:"3,omitempty" + optional int32 task_custom_flags = 10; // @gotags: msg:"263273-3,omitempty" // Specifies the date when the user completed work on the task. - optional int64 task_date_completed = 11; // @gotags: msg:"263183,omitempty" type:"64,omitempty" + optional int64 task_date_completed = 11; // @gotags: msg:"263183-64,omitempty" // Indicates whether new occurrences remain to be generated. - optional bool task_dead_occurrence = 12; // @gotags: msg:"263177,omitempty" type:"11,omitempty" + optional bool task_dead_occurrence = 12; // @gotags: msg:"263177-11,omitempty" // Specifies the date by which the user expects work on the task to be complete. - optional int64 task_due_date = 13; // @gotags: msg:"263173,omitempty" type:"64,omitempty" + optional int64 task_due_date = 13; // @gotags: msg:"263173-64,omitempty" // Indicates the number of minutes that the user expects to work on a task. - optional int32 task_estimated_effort = 14; // @gotags: msg:"263201,omitempty" type:"3,omitempty" + optional int32 task_estimated_effort = 14; // @gotags: msg:"263201-3,omitempty" // Indicates that the Task object was originally created by the action of the current user or user agent instead of by the processing of a task request. - optional bool taskf_creator = 15; // @gotags: msg:"263214,omitempty" type:"11,omitempty" + optional bool taskf_creator = 15; // @gotags: msg:"263214-11,omitempty" // Indicates the accuracy of the PidLidTaskOwner property (section 2.328). - optional bool taskf_fix_offline = 16; // @gotags: msg:"263244,omitempty" type:"11,omitempty" + optional bool taskf_fix_offline = 16; // @gotags: msg:"263244-11,omitempty" // Indicates whether the task includes a recurrence pattern. - optional bool taskf_recurring = 17; // @gotags: msg:"263238,omitempty" type:"11,omitempty" + optional bool taskf_recurring = 17; // @gotags: msg:"263238-11,omitempty" // Indicates the type of change that was last made to the Task object. - optional int32 task_history = 19; // @gotags: msg:"263210,omitempty" type:"3,omitempty" + optional int32 task_history = 19; // @gotags: msg:"263210-3,omitempty" // Contains the name of the user who most recently assigned the task, or the user to whom it was most recently assigned. - optional string task_last_delegate = 20; // @gotags: msg:"263237,omitempty" type:"31,omitempty" + optional string task_last_delegate = 20; // @gotags: msg:"263237-31,omitempty" // Contains the date and time of the most recent change made to the Task object. - optional int64 task_last_update = 21; // @gotags: msg:"263205,omitempty" type:"64,omitempty" + optional int64 task_last_update = 21; // @gotags: msg:"263205-64,omitempty" // Contains the name of the most recent user to have been the owner of the task. - optional string task_last_user = 22; // @gotags: msg:"263234,omitempty" type:"31,omitempty" + optional string task_last_user = 22; // @gotags: msg:"263234-31,omitempty" // Specifies the assignment status of the embedded Task object. - optional int32 task_mode = 23; // @gotags: msg:"267304,omitempty" type:"3,omitempty" + optional int32 task_mode = 23; // @gotags: msg:"267304-3,omitempty" // Provides optimization hints about the recipients of a Task object. - optional int32 task_multiple_recipients = 24; // @gotags: msg:"263232,omitempty" type:"3,omitempty" + optional int32 task_multiple_recipients = 24; // @gotags: msg:"263232-3,omitempty" // Not used. The client can set this property, but it has no impact on the Task-Related Objects Protocol and is ignored by the server. - optional bool task_no_compute = 25; // @gotags: msg:"263236,omitempty" type:"11,omitempty" + optional bool task_no_compute = 25; // @gotags: msg:"263236-11,omitempty" // Provides an aid to custom sorting of Task objects. - optional int32 task_ordinal = 26; // @gotags: msg:"263235,omitempty" type:"3,omitempty" + optional int32 task_ordinal = 26; // @gotags: msg:"263235-3,omitempty" // Contains the name of the owner of the task. - optional string task_owner = 27; // @gotags: msg:"263215,omitempty" type:"31,omitempty" + optional string task_owner = 27; // @gotags: msg:"263215-31,omitempty" // Indicates the role of the current user relative to the Task object. - optional int32 task_ownership = 28; // @gotags: msg:"263241,omitempty" type:"3,omitempty" + optional int32 task_ownership = 28; // @gotags: msg:"263241-3,omitempty" // Indicates whether future instances of recurring tasks need reminders, even though the value of the PidLidReminderSet property (section 2.222) is 0x00. - optional bool task_reset_reminder = 30; // @gotags: msg:"263175,omitempty" type:"11,omitempty" + optional bool task_reset_reminder = 30; // @gotags: msg:"263175-11,omitempty" // Not used. The client can set this property, but it has no impact on the Task-Related Objects Protocol and is ignored by the server. - optional string task_role = 31; // @gotags: msg:"263239,omitempty" type:"31,omitempty" + optional string task_role = 31; // @gotags: msg:"263239-31,omitempty" // Specifies the date on which the user expects work on the task to begin. - optional int64 task_start_date = 32; // @gotags: msg:"263172,omitempty" type:"64,omitempty" + optional int64 task_start_date = 32; // @gotags: msg:"263172-64,omitempty" // Indicates the current assignment state of the Task object. - optional int32 task_state = 33; // @gotags: msg:"263203,omitempty" type:"3,omitempty" + optional int32 task_state = 33; // @gotags: msg:"263203-3,omitempty" // Specifies the status of a task. - optional int32 task_status = 34; // @gotags: msg:"263169,omitempty" type:"3,omitempty" + optional int32 task_status = 34; // @gotags: msg:"263169-3,omitempty" // Indicates whether the task assignee has been requested to send an email message update upon completion of the assigned task. - optional bool task_status_on_complete = 35; // @gotags: msg:"263209,omitempty" type:"11,omitempty" + optional bool task_status_on_complete = 35; // @gotags: msg:"263209-11,omitempty" // Indicates whether the task assignee has been requested to send a task update when the assigned Task object changes. - optional bool task_updates = 36; // @gotags: msg:"263211,omitempty" type:"11,omitempty" + optional bool task_updates = 36; // @gotags: msg:"263211-11,omitempty" // Indicates which copy is the latest update of a Task object. - optional int32 task_version = 37; // @gotags: msg:"263202,omitempty" type:"3,omitempty" + optional int32 task_version = 37; // @gotags: msg:"263202-3,omitempty" // This property is set by the client but is ignored by the server. - optional bool team_task = 38; // @gotags: msg:"263171,omitempty" type:"11,omitempty" + optional bool team_task = 38; // @gotags: msg:"263171-11,omitempty" // Contains the current time, in UTC, which is used to determine the sort order of objects in a consolidated to-do list. - optional int64 to_do_ordinal_date = 39; // @gotags: msg:"267584,omitempty" type:"64,omitempty" + optional int64 to_do_ordinal_date = 39; // @gotags: msg:"267584-64,omitempty" // Contains the numerals 0 through 9 that are used to break a tie when the PidLidToDoOrdinalDate property (section 2.344) is used to perform a sort of objects. - optional string to_do_sub_ordinal = 40; // @gotags: msg:"267585,omitempty" type:"31,omitempty" + optional string to_do_sub_ordinal = 40; // @gotags: msg:"267585-31,omitempty" // Contains user-specifiable text to identify this Message object in a consolidated to-do list. - optional string to_do_title = 41; // @gotags: msg:"267588,omitempty" type:"31,omitempty" + optional string to_do_title = 41; // @gotags: msg:"267588-31,omitempty" // Contains the value of the PidTagMessageDeliveryTime property (section 2.789) when modifying the PidLidFlagRequest property (section 2.136). - optional int64 valid_flag_string_proof = 42; // @gotags: msg:"267631,omitempty" type:"64,omitempty" + optional int64 valid_flag_string_proof = 42; // @gotags: msg:"267631-64,omitempty" // Contains a positive number whose negative is less than or equal to the value of the PidLidTaskOrdinal property (section 2.327) of all of the Task objects in the folder. - optional int32 ordinal_most = 43; // @gotags: msg:"14050,omitempty" type:"3,omitempty" + optional int32 ordinal_most = 43; // @gotags: msg:"14050-3,omitempty" } diff --git a/cmd/properties/protobufs/voicemail.proto b/cmd/properties/protobufs/voicemail.proto index 2785e0a..23001db 100644 --- a/cmd/properties/protobufs/voicemail.proto +++ b/cmd/properties/protobufs/voicemail.proto @@ -37,15 +37,15 @@ message Voicemail { // Contains the name of the caller who left the attached voice message, as provided by the voice network's caller ID system. optional string x_voice_message_sender_name = 9; // Contains a unique identifier associated with the phone call. - optional string call_id = 10; // @gotags: msg:"26630,omitempty" type:"31,omitempty" + optional string call_id = 10; // @gotags: msg:"26630-31,omitempty" // Contains the number of pages in a Fax object. - optional int32 fax_number_of_pages = 11; // @gotags: msg:"26628,omitempty" type:"3,omitempty" + optional int32 fax_number_of_pages = 11; // @gotags: msg:"26628-3,omitempty" // Contains the telephone number of the caller associated with a voice mail message. - optional string sender_telephone_number = 12; // @gotags: msg:"26626,omitempty" type:"31,omitempty" + optional string sender_telephone_number = 12; // @gotags: msg:"26626-31,omitempty" // Contains a list of file names for the audio file attachments that are to be played as part of a message. - optional string voice_message_attachment_order = 13; // @gotags: msg:"26629,omitempty" type:"31,omitempty" + optional string voice_message_attachment_order = 13; // @gotags: msg:"26629-31,omitempty" // Specifies the length of the attached audio message, in seconds. - optional int32 voice_message_duration = 14; // @gotags: msg:"26625,omitempty" type:"3,omitempty" + optional int32 voice_message_duration = 14; // @gotags: msg:"26625-3,omitempty" // Specifies the name of the caller who left the attached voice message, as provided by the voice network's caller ID system. - optional string voice_message_sender_name = 15; // @gotags: msg:"26627,omitempty" type:"31,omitempty" + optional string voice_message_sender_name = 15; // @gotags: msg:"26627-31,omitempty" } diff --git a/pkg/properties/address_book.pb.go b/pkg/properties/address_book.pb.go index b9c668a..c808aae 100644 --- a/pkg/properties/address_book.pb.go +++ b/pkg/properties/address_book.pb.go @@ -44,95 +44,95 @@ type AddressBook struct { unknownFields protoimpl.UnknownFields // Contains the alias of an Address Book object, which is an alternative name by which the object can be identified. - Account *string `protobuf:"bytes,1,opt,name=account,proto3,oneof" json:"account,omitempty" msg:"14848,omitempty" type:"31,omitempty"` + Account *string `protobuf:"bytes,1,opt,name=account,proto3,oneof" json:"account,omitempty" msg:"14848-31,omitempty"` // Contains the ID of a container on an NSPI server. - AddressBookContainerId *int32 `protobuf:"varint,3,opt,name=address_book_container_id,json=addressBookContainerId,proto3,oneof" json:"address_book_container_id,omitempty" msg:"65533,omitempty" type:"3,omitempty"` + AddressBookContainerId *int32 `protobuf:"varint,3,opt,name=address_book_container_id,json=addressBookContainerId,proto3,oneof" json:"address_book_container_id,omitempty" msg:"65533-3,omitempty"` // Specifies the maximum size, in bytes, of a message that a recipient can receive. - AddressBookDeliveryContentLength *int32 `protobuf:"varint,4,opt,name=address_book_delivery_content_length,json=addressBookDeliveryContentLength,proto3,oneof" json:"address_book_delivery_content_length,omitempty" msg:"32874,omitempty" type:"3,omitempty"` + AddressBookDeliveryContentLength *int32 `protobuf:"varint,4,opt,name=address_book_delivery_content_length,json=addressBookDeliveryContentLength,proto3,oneof" json:"address_book_delivery_content_length,omitempty" msg:"32874-3,omitempty"` // Contains the printable string version of the display name. - AddressBookDisplayNamePrintable *string `protobuf:"bytes,5,opt,name=address_book_display_name_printable,json=addressBookDisplayNamePrintable,proto3,oneof" json:"address_book_display_name_printable,omitempty" msg:"14847,omitempty" type:"31,omitempty"` + AddressBookDisplayNamePrintable *string `protobuf:"bytes,5,opt,name=address_book_display_name_printable,json=addressBookDisplayNamePrintable,proto3,oneof" json:"address_book_display_name_printable,omitempty" msg:"14847-31,omitempty"` // Contains a value that indicates how to display an Address Book object in a table or as a recipient on a message. - AddressBookDisplayTypeExtended *int32 `protobuf:"varint,6,opt,name=address_book_display_type_extended,json=addressBookDisplayTypeExtended,proto3,oneof" json:"address_book_display_type_extended,omitempty" msg:"35987,omitempty" type:"3,omitempty"` + AddressBookDisplayTypeExtended *int32 `protobuf:"varint,6,opt,name=address_book_display_type_extended,json=addressBookDisplayTypeExtended,proto3,oneof" json:"address_book_display_type_extended,omitempty" msg:"35987-3,omitempty"` // Contains the number of external recipients in the distribution list. - AddressBookDistributionListExternalMemberCount *int32 `protobuf:"varint,7,opt,name=address_book_distribution_list_external_member_count,json=addressBookDistributionListExternalMemberCount,proto3,oneof" json:"address_book_distribution_list_external_member_count,omitempty" msg:"36067,omitempty" type:"3,omitempty"` + AddressBookDistributionListExternalMemberCount *int32 `protobuf:"varint,7,opt,name=address_book_distribution_list_external_member_count,json=addressBookDistributionListExternalMemberCount,proto3,oneof" json:"address_book_distribution_list_external_member_count,omitempty" msg:"36067-3,omitempty"` // Contains the total number of recipients in the distribution list. - AddressBookDistributionListMemberCount *int32 `protobuf:"varint,8,opt,name=address_book_distribution_list_member_count,json=addressBookDistributionListMemberCount,proto3,oneof" json:"address_book_distribution_list_member_count,omitempty" msg:"36066,omitempty" type:"3,omitempty"` + AddressBookDistributionListMemberCount *int32 `protobuf:"varint,8,opt,name=address_book_distribution_list_member_count,json=addressBookDistributionListMemberCount,proto3,oneof" json:"address_book_distribution_list_member_count,omitempty" msg:"36066-3,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute1 *string `protobuf:"bytes,12,opt,name=address_book_extension_attribute1,json=addressBookExtensionAttribute1,proto3,oneof" json:"address_book_extension_attribute1,omitempty" msg:"32813,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute1 *string `protobuf:"bytes,12,opt,name=address_book_extension_attribute1,json=addressBookExtensionAttribute1,proto3,oneof" json:"address_book_extension_attribute1,omitempty" msg:"32813-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute10 *string `protobuf:"bytes,13,opt,name=address_book_extension_attribute10,json=addressBookExtensionAttribute10,proto3,oneof" json:"address_book_extension_attribute10,omitempty" msg:"32822,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute10 *string `protobuf:"bytes,13,opt,name=address_book_extension_attribute10,json=addressBookExtensionAttribute10,proto3,oneof" json:"address_book_extension_attribute10,omitempty" msg:"32822-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute11 *string `protobuf:"bytes,14,opt,name=address_book_extension_attribute11,json=addressBookExtensionAttribute11,proto3,oneof" json:"address_book_extension_attribute11,omitempty" msg:"35927,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute11 *string `protobuf:"bytes,14,opt,name=address_book_extension_attribute11,json=addressBookExtensionAttribute11,proto3,oneof" json:"address_book_extension_attribute11,omitempty" msg:"35927-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute12 *string `protobuf:"bytes,15,opt,name=address_book_extension_attribute12,json=addressBookExtensionAttribute12,proto3,oneof" json:"address_book_extension_attribute12,omitempty" msg:"35928,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute12 *string `protobuf:"bytes,15,opt,name=address_book_extension_attribute12,json=addressBookExtensionAttribute12,proto3,oneof" json:"address_book_extension_attribute12,omitempty" msg:"35928-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute13 *string `protobuf:"bytes,16,opt,name=address_book_extension_attribute13,json=addressBookExtensionAttribute13,proto3,oneof" json:"address_book_extension_attribute13,omitempty" msg:"35929,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute13 *string `protobuf:"bytes,16,opt,name=address_book_extension_attribute13,json=addressBookExtensionAttribute13,proto3,oneof" json:"address_book_extension_attribute13,omitempty" msg:"35929-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute14 *string `protobuf:"bytes,17,opt,name=address_book_extension_attribute14,json=addressBookExtensionAttribute14,proto3,oneof" json:"address_book_extension_attribute14,omitempty" msg:"35936,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute14 *string `protobuf:"bytes,17,opt,name=address_book_extension_attribute14,json=addressBookExtensionAttribute14,proto3,oneof" json:"address_book_extension_attribute14,omitempty" msg:"35936-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute15 *string `protobuf:"bytes,18,opt,name=address_book_extension_attribute15,json=addressBookExtensionAttribute15,proto3,oneof" json:"address_book_extension_attribute15,omitempty" msg:"35937,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute15 *string `protobuf:"bytes,18,opt,name=address_book_extension_attribute15,json=addressBookExtensionAttribute15,proto3,oneof" json:"address_book_extension_attribute15,omitempty" msg:"35937-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute2 *string `protobuf:"bytes,19,opt,name=address_book_extension_attribute2,json=addressBookExtensionAttribute2,proto3,oneof" json:"address_book_extension_attribute2,omitempty" msg:"32814,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute2 *string `protobuf:"bytes,19,opt,name=address_book_extension_attribute2,json=addressBookExtensionAttribute2,proto3,oneof" json:"address_book_extension_attribute2,omitempty" msg:"32814-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute3 *string `protobuf:"bytes,20,opt,name=address_book_extension_attribute3,json=addressBookExtensionAttribute3,proto3,oneof" json:"address_book_extension_attribute3,omitempty" msg:"32815,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute3 *string `protobuf:"bytes,20,opt,name=address_book_extension_attribute3,json=addressBookExtensionAttribute3,proto3,oneof" json:"address_book_extension_attribute3,omitempty" msg:"32815-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute4 *string `protobuf:"bytes,21,opt,name=address_book_extension_attribute4,json=addressBookExtensionAttribute4,proto3,oneof" json:"address_book_extension_attribute4,omitempty" msg:"32816,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute4 *string `protobuf:"bytes,21,opt,name=address_book_extension_attribute4,json=addressBookExtensionAttribute4,proto3,oneof" json:"address_book_extension_attribute4,omitempty" msg:"32816-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute5 *string `protobuf:"bytes,22,opt,name=address_book_extension_attribute5,json=addressBookExtensionAttribute5,proto3,oneof" json:"address_book_extension_attribute5,omitempty" msg:"32817,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute5 *string `protobuf:"bytes,22,opt,name=address_book_extension_attribute5,json=addressBookExtensionAttribute5,proto3,oneof" json:"address_book_extension_attribute5,omitempty" msg:"32817-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute6 *string `protobuf:"bytes,23,opt,name=address_book_extension_attribute6,json=addressBookExtensionAttribute6,proto3,oneof" json:"address_book_extension_attribute6,omitempty" msg:"32818,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute6 *string `protobuf:"bytes,23,opt,name=address_book_extension_attribute6,json=addressBookExtensionAttribute6,proto3,oneof" json:"address_book_extension_attribute6,omitempty" msg:"32818-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute7 *string `protobuf:"bytes,24,opt,name=address_book_extension_attribute7,json=addressBookExtensionAttribute7,proto3,oneof" json:"address_book_extension_attribute7,omitempty" msg:"32819,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute7 *string `protobuf:"bytes,24,opt,name=address_book_extension_attribute7,json=addressBookExtensionAttribute7,proto3,oneof" json:"address_book_extension_attribute7,omitempty" msg:"32819-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute8 *string `protobuf:"bytes,25,opt,name=address_book_extension_attribute8,json=addressBookExtensionAttribute8,proto3,oneof" json:"address_book_extension_attribute8,omitempty" msg:"32820,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute8 *string `protobuf:"bytes,25,opt,name=address_book_extension_attribute8,json=addressBookExtensionAttribute8,proto3,oneof" json:"address_book_extension_attribute8,omitempty" msg:"32820-31,omitempty"` // Contains custom values defined and populated by the organization that modified the display templates. - AddressBookExtensionAttribute9 *string `protobuf:"bytes,26,opt,name=address_book_extension_attribute9,json=addressBookExtensionAttribute9,proto3,oneof" json:"address_book_extension_attribute9,omitempty" msg:"32821,omitempty" type:"31,omitempty"` + AddressBookExtensionAttribute9 *string `protobuf:"bytes,26,opt,name=address_book_extension_attribute9,json=addressBookExtensionAttribute9,proto3,oneof" json:"address_book_extension_attribute9,omitempty" msg:"32821-31,omitempty"` // This property is deprecated and is to be ignored. - AddressBookFolderPathname *string `protobuf:"bytes,27,opt,name=address_book_folder_pathname,json=addressBookFolderPathname,proto3,oneof" json:"address_book_folder_pathname,omitempty" msg:"32772,omitempty" type:"31,omitempty"` + AddressBookFolderPathname *string `protobuf:"bytes,27,opt,name=address_book_folder_pathname,json=addressBookFolderPathname,proto3,oneof" json:"address_book_folder_pathname,omitempty" msg:"32772-31,omitempty"` // Indicates whether the distribution list represents a departmental group. - AddressBookHierarchicalIsHierarchicalGroup *bool `protobuf:"varint,30,opt,name=address_book_hierarchical_is_hierarchical_group,json=addressBookHierarchicalIsHierarchicalGroup,proto3,oneof" json:"address_book_hierarchical_is_hierarchical_group,omitempty" msg:"36061,omitempty" type:"11,omitempty"` + AddressBookHierarchicalIsHierarchicalGroup *bool `protobuf:"varint,30,opt,name=address_book_hierarchical_is_hierarchical_group,json=addressBookHierarchicalIsHierarchicalGroup,proto3,oneof" json:"address_book_hierarchical_is_hierarchical_group,omitempty" msg:"36061-11,omitempty"` // Contains the distinguished name (DN) of either the root Department object or the root departmental group in the department hierarchy for the organization. - AddressBookHierarchicalRootDepartment *string `protobuf:"bytes,32,opt,name=address_book_hierarchical_root_department,json=addressBookHierarchicalRootDepartment,proto3,oneof" json:"address_book_hierarchical_root_department,omitempty" msg:"35992,omitempty" type:"30,omitempty"` + AddressBookHierarchicalRootDepartment *string `protobuf:"bytes,32,opt,name=address_book_hierarchical_root_department,json=addressBookHierarchicalRootDepartment,proto3,oneof" json:"address_book_hierarchical_root_department,omitempty" msg:"35992-30,omitempty"` // Contains the DN expressed in the X500 DN format. This property is returned from a name service provider interface (NSPI) server as a PtypEmbeddedTable. Otherwise, the data type is PtypString8. - AddressBookHomeMessageDatabase *string `protobuf:"bytes,34,opt,name=address_book_home_message_database,json=addressBookHomeMessageDatabase,proto3,oneof" json:"address_book_home_message_database,omitempty" msg:"32774,omitempty" type:"30,omitempty"` + AddressBookHomeMessageDatabase *string `protobuf:"bytes,34,opt,name=address_book_home_message_database,json=addressBookHomeMessageDatabase,proto3,oneof" json:"address_book_home_message_database,omitempty" msg:"32774-30,omitempty"` // Contains a Boolean value of TRUE if it is possible to create Address Book objects in that container, and FALSE otherwise. - AddressBookIsMaster *bool `protobuf:"varint,35,opt,name=address_book_is_master,json=addressBookIsMaster,proto3,oneof" json:"address_book_is_master,omitempty" msg:"65531,omitempty" type:"11,omitempty"` + AddressBookIsMaster *bool `protobuf:"varint,35,opt,name=address_book_is_master,json=addressBookIsMaster,proto3,oneof" json:"address_book_is_master,omitempty" msg:"65531-11,omitempty"` // Lists all of the distribution lists for which the object is a member. This property is returned from an NSPI server as a PtypEmbeddedTable. Otherwise, the data type is PtypString8. - AddressBookIsMemberOfDistributionList *string `protobuf:"bytes,36,opt,name=address_book_is_member_of_distribution_list,json=addressBookIsMemberOfDistributionList,proto3,oneof" json:"address_book_is_member_of_distribution_list,omitempty" msg:"32776,omitempty" type:"30,omitempty"` + AddressBookIsMemberOfDistributionList *string `protobuf:"bytes,36,opt,name=address_book_is_member_of_distribution_list,json=addressBookIsMemberOfDistributionList,proto3,oneof" json:"address_book_is_member_of_distribution_list,omitempty" msg:"32776-30,omitempty"` // Contains the DN of the mail user's manager. - AddressBookManagerDistinguishedName *string `protobuf:"bytes,39,opt,name=address_book_manager_distinguished_name,json=addressBookManagerDistinguishedName,proto3,oneof" json:"address_book_manager_distinguished_name,omitempty" msg:"32773,omitempty" type:"31,omitempty"` + AddressBookManagerDistinguishedName *string `protobuf:"bytes,39,opt,name=address_book_manager_distinguished_name,json=addressBookManagerDistinguishedName,proto3,oneof" json:"address_book_manager_distinguished_name,omitempty" msg:"32773-31,omitempty"` // Indicates whether moderation is enabled for the mail user or distribution list. - AddressBookModerationEnabled *bool `protobuf:"varint,41,opt,name=address_book_moderation_enabled,json=addressBookModerationEnabled,proto3,oneof" json:"address_book_moderation_enabled,omitempty" msg:"36021,omitempty" type:"11,omitempty"` + AddressBookModerationEnabled *bool `protobuf:"varint,41,opt,name=address_book_moderation_enabled,json=addressBookModerationEnabled,proto3,oneof" json:"address_book_moderation_enabled,omitempty" msg:"36021-11,omitempty"` // Contains the DN of the Address Book object. - AddressBookObjectDistinguishedName *string `protobuf:"bytes,43,opt,name=address_book_object_distinguished_name,json=addressBookObjectDistinguishedName,proto3,oneof" json:"address_book_object_distinguished_name,omitempty" msg:"32828,omitempty" type:"31,omitempty"` + AddressBookObjectDistinguishedName *string `protobuf:"bytes,43,opt,name=address_book_object_distinguished_name,json=addressBookObjectDistinguishedName,proto3,oneof" json:"address_book_object_distinguished_name,omitempty" msg:"32828-31,omitempty"` // Contains the DN of the Organization object of the mail user's organization. - AddressBookOrganizationalUnitRootDistinguishedName *string `protobuf:"bytes,45,opt,name=address_book_organizational_unit_root_distinguished_name,json=addressBookOrganizationalUnitRootDistinguishedName,proto3,oneof" json:"address_book_organizational_unit_root_distinguished_name,omitempty" msg:"36008,omitempty" type:"31,omitempty"` + AddressBookOrganizationalUnitRootDistinguishedName *string `protobuf:"bytes,45,opt,name=address_book_organizational_unit_root_distinguished_name,json=addressBookOrganizationalUnitRootDistinguishedName,proto3,oneof" json:"address_book_organizational_unit_root_distinguished_name,omitempty" msg:"36008-31,omitempty"` // Contains the phonetic representation of the PidTagCompanyName property (section 2.639). - AddressBookPhoneticCompanyName *string `protobuf:"bytes,49,opt,name=address_book_phonetic_company_name,json=addressBookPhoneticCompanyName,proto3,oneof" json:"address_book_phonetic_company_name,omitempty" msg:"35985,omitempty" type:"31,omitempty"` + AddressBookPhoneticCompanyName *string `protobuf:"bytes,49,opt,name=address_book_phonetic_company_name,json=addressBookPhoneticCompanyName,proto3,oneof" json:"address_book_phonetic_company_name,omitempty" msg:"35985-31,omitempty"` // Contains the phonetic representation of the PidTagDepartmentName property (section 2.672). - AddressBookPhoneticDepartmentName *string `protobuf:"bytes,50,opt,name=address_book_phonetic_department_name,json=addressBookPhoneticDepartmentName,proto3,oneof" json:"address_book_phonetic_department_name,omitempty" msg:"35984,omitempty" type:"31,omitempty"` + AddressBookPhoneticDepartmentName *string `protobuf:"bytes,50,opt,name=address_book_phonetic_department_name,json=addressBookPhoneticDepartmentName,proto3,oneof" json:"address_book_phonetic_department_name,omitempty" msg:"35984-31,omitempty"` // Contains the phonetic representation of the PidTagDisplayName property (section 2.676). - AddressBookPhoneticDisplayName *string `protobuf:"bytes,51,opt,name=address_book_phonetic_display_name,json=addressBookPhoneticDisplayName,proto3,oneof" json:"address_book_phonetic_display_name,omitempty" msg:"35986,omitempty" type:"31,omitempty"` + AddressBookPhoneticDisplayName *string `protobuf:"bytes,51,opt,name=address_book_phonetic_display_name,json=addressBookPhoneticDisplayName,proto3,oneof" json:"address_book_phonetic_display_name,omitempty" msg:"35986-31,omitempty"` // Contains the phonetic representation of the PidTagGivenName property (section 2.714). - AddressBookPhoneticGivenName *string `protobuf:"bytes,52,opt,name=address_book_phonetic_given_name,json=addressBookPhoneticGivenName,proto3,oneof" json:"address_book_phonetic_given_name,omitempty" msg:"35982,omitempty" type:"31,omitempty"` + AddressBookPhoneticGivenName *string `protobuf:"bytes,52,opt,name=address_book_phonetic_given_name,json=addressBookPhoneticGivenName,proto3,oneof" json:"address_book_phonetic_given_name,omitempty" msg:"35982-31,omitempty"` // Contains the phonetic representation of the PidTagSurname property (section 2.1036). - AddressBookPhoneticSurname *string `protobuf:"bytes,53,opt,name=address_book_phonetic_surname,json=addressBookPhoneticSurname,proto3,oneof" json:"address_book_phonetic_surname,omitempty" msg:"35983,omitempty" type:"31,omitempty"` + AddressBookPhoneticSurname *string `protobuf:"bytes,53,opt,name=address_book_phonetic_surname,json=addressBookPhoneticSurname,proto3,oneof" json:"address_book_phonetic_surname,omitempty" msg:"35983-31,omitempty"` // Contains the maximum occupancy of the room. - AddressBookRoomCapacity *int32 `protobuf:"varint,57,opt,name=address_book_room_capacity,json=addressBookRoomCapacity,proto3,oneof" json:"address_book_room_capacity,omitempty" msg:"2055,omitempty" type:"3,omitempty"` + AddressBookRoomCapacity *int32 `protobuf:"varint,57,opt,name=address_book_room_capacity,json=addressBookRoomCapacity,proto3,oneof" json:"address_book_room_capacity,omitempty" msg:"2055-3,omitempty"` // Contains a description of the Resource object. - AddressBookRoomDescription *string `protobuf:"bytes,59,opt,name=address_book_room_description,json=addressBookRoomDescription,proto3,oneof" json:"address_book_room_description,omitempty" msg:"2057,omitempty" type:"31,omitempty"` + AddressBookRoomDescription *string `protobuf:"bytes,59,opt,name=address_book_room_description,json=addressBookRoomDescription,proto3,oneof" json:"address_book_room_description,omitempty" msg:"2057-31,omitempty"` // Contains a signed integer that specifies the seniority order of Address Book objects that represent members of a department and are referenced by a Department object or departmental group, with larger values specifying members that are more senior. - AddressBookSeniorityIndex *int32 `protobuf:"varint,61,opt,name=address_book_seniority_index,json=addressBookSeniorityIndex,proto3,oneof" json:"address_book_seniority_index,omitempty" msg:"36000,omitempty" type:"3,omitempty"` + AddressBookSeniorityIndex *int32 `protobuf:"varint,61,opt,name=address_book_seniority_index,json=addressBookSeniorityIndex,proto3,oneof" json:"address_book_seniority_index,omitempty" msg:"36000-3,omitempty"` // Contains the foreign system email address of an Address Book object. - AddressBookTargetAddress *string `protobuf:"bytes,62,opt,name=address_book_target_address,json=addressBookTargetAddress,proto3,oneof" json:"address_book_target_address,omitempty" msg:"32785,omitempty" type:"31,omitempty"` + AddressBookTargetAddress *string `protobuf:"bytes,62,opt,name=address_book_target_address,json=addressBookTargetAddress,proto3,oneof" json:"address_book_target_address,omitempty" msg:"32785-31,omitempty"` // Contains a filter value used in ambiguous name resolution. - Anr *string `protobuf:"bytes,65,opt,name=anr,proto3,oneof" json:"anr,omitempty" msg:"13836,omitempty" type:"31,omitempty"` + Anr *string `protobuf:"bytes,65,opt,name=anr,proto3,oneof" json:"anr,omitempty" msg:"13836-31,omitempty"` // Contains a bitmask of flags that describe capabilities of an address book container. - ContainerFlags *int32 `protobuf:"varint,66,opt,name=container_flags,json=containerFlags,proto3,oneof" json:"container_flags,omitempty" msg:"13824,omitempty" type:"3,omitempty"` + ContainerFlags *int32 `protobuf:"varint,66,opt,name=container_flags,json=containerFlags,proto3,oneof" json:"container_flags,omitempty" msg:"13824-3,omitempty"` // Contains an integer value that indicates how to display an Address Book object in a table or as an addressee on a message. - DisplayType *int32 `protobuf:"varint,67,opt,name=display_type,json=displayType,proto3,oneof" json:"display_type,omitempty" msg:"14592,omitempty" type:"3,omitempty"` + DisplayType *int32 `protobuf:"varint,67,opt,name=display_type,json=displayType,proto3,oneof" json:"display_type,omitempty" msg:"14592-3,omitempty"` // Contains an integer value that indicates how to display an Address Book object in a table or as a recipient on a message. - DisplayTypeEx *int32 `protobuf:"varint,68,opt,name=display_type_ex,json=displayTypeEx,proto3,oneof" json:"display_type_ex,omitempty" msg:"14597,omitempty" type:"3,omitempty"` + DisplayTypeEx *int32 `protobuf:"varint,68,opt,name=display_type_ex,json=displayTypeEx,proto3,oneof" json:"display_type_ex,omitempty" msg:"14597-3,omitempty"` } func (x *AddressBook) Reset() { diff --git a/pkg/properties/address_book.pb_gen.go b/pkg/properties/address_book.pb_gen.go index c64264f..3396f60 100644 --- a/pkg/properties/address_book.pb_gen.go +++ b/pkg/properties/address_book.pb_gen.go @@ -24,7 +24,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "14848": + case "14848-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "65533": + case "65533-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32874": + case "32874-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14847": + case "14847-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35987": + case "35987-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "36067": + case "36067-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "36066": + case "36066-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32813": + case "32813-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32822": + case "32822-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35927": + case "35927-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35928": + case "35928-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35929": + case "35929-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35936": + case "35936-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35937": + case "35937-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32814": + case "32814-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -294,7 +294,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32815": + case "32815-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -312,7 +312,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32816": + case "32816-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -330,7 +330,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32817": + case "32817-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -348,7 +348,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32818": + case "32818-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -366,7 +366,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32819": + case "32819-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -384,7 +384,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32820": + case "32820-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -402,7 +402,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32821": + case "32821-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -420,7 +420,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32772": + case "32772-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -438,7 +438,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "36061": + case "36061-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -456,7 +456,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35992": + case "35992-30": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -474,7 +474,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32774": + case "32774-30": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -492,7 +492,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "65531": + case "65531-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -510,7 +510,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32776": + case "32776-30": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -528,7 +528,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32773": + case "32773-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -546,7 +546,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "36021": + case "36021-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -564,7 +564,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32828": + case "32828-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -582,7 +582,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "36008": + case "36008-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -600,7 +600,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35985": + case "35985-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -618,7 +618,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35984": + case "35984-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -636,7 +636,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35986": + case "35986-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -654,7 +654,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35982": + case "35982-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -672,7 +672,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35983": + case "35983-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -690,7 +690,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2055": + case "2055-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -708,7 +708,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2057": + case "2057-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -726,7 +726,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "36000": + case "36000-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -744,7 +744,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32785": + case "32785-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -762,7 +762,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "13836": + case "13836-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -780,7 +780,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "13824": + case "13824-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -798,7 +798,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14592": + case "14592-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -816,7 +816,7 @@ func (z *AddressBook) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14597": + case "14597-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1039,8 +1039,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // write "14848" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x34, 0x38) + // write "14848-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x34, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1058,8 +1058,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // write "65533" - err = en.Append(0xa5, 0x36, 0x35, 0x35, 0x33, 0x33) + // write "65533-3" + err = en.Append(0xa7, 0x36, 0x35, 0x35, 0x33, 0x33, 0x2d, 0x33) if err != nil { return } @@ -1077,8 +1077,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // write "32874" - err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x37, 0x34) + // write "32874-3" + err = en.Append(0xa7, 0x33, 0x32, 0x38, 0x37, 0x34, 0x2d, 0x33) if err != nil { return } @@ -1096,8 +1096,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // write "14847" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x34, 0x37) + // write "14847-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x34, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1115,8 +1115,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "35987" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x38, 0x37) + // write "35987-3" + err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x38, 0x37, 0x2d, 0x33) if err != nil { return } @@ -1134,8 +1134,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // write "36067" - err = en.Append(0xa5, 0x33, 0x36, 0x30, 0x36, 0x37) + // write "36067-3" + err = en.Append(0xa7, 0x33, 0x36, 0x30, 0x36, 0x37, 0x2d, 0x33) if err != nil { return } @@ -1153,8 +1153,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // write "36066" - err = en.Append(0xa5, 0x33, 0x36, 0x30, 0x36, 0x36) + // write "36066-3" + err = en.Append(0xa7, 0x33, 0x36, 0x30, 0x36, 0x36, 0x2d, 0x33) if err != nil { return } @@ -1172,8 +1172,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // write "32813" - err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x33) + // write "32813-31" + err = en.Append(0xa8, 0x33, 0x32, 0x38, 0x31, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1191,8 +1191,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // write "32822" - err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x32, 0x32) + // write "32822-31" + err = en.Append(0xa8, 0x33, 0x32, 0x38, 0x32, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1210,8 +1210,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // write "35927" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x32, 0x37) + // write "35927-31" + err = en.Append(0xa8, 0x33, 0x35, 0x39, 0x32, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1229,8 +1229,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // write "35928" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x32, 0x38) + // write "35928-31" + err = en.Append(0xa8, 0x33, 0x35, 0x39, 0x32, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1248,8 +1248,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // write "35929" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x32, 0x39) + // write "35929-31" + err = en.Append(0xa8, 0x33, 0x35, 0x39, 0x32, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1267,8 +1267,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // write "35936" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x33, 0x36) + // write "35936-31" + err = en.Append(0xa8, 0x33, 0x35, 0x39, 0x33, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1286,8 +1286,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // write "35937" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x33, 0x37) + // write "35937-31" + err = en.Append(0xa8, 0x33, 0x35, 0x39, 0x33, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1305,8 +1305,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000) == 0 { // if not empty - // write "32814" - err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x34) + // write "32814-31" + err = en.Append(0xa8, 0x33, 0x32, 0x38, 0x31, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1324,8 +1324,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8000) == 0 { // if not empty - // write "32815" - err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x35) + // write "32815-31" + err = en.Append(0xa8, 0x33, 0x32, 0x38, 0x31, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1343,8 +1343,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10000) == 0 { // if not empty - // write "32816" - err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x36) + // write "32816-31" + err = en.Append(0xa8, 0x33, 0x32, 0x38, 0x31, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1362,8 +1362,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20000) == 0 { // if not empty - // write "32817" - err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x37) + // write "32817-31" + err = en.Append(0xa8, 0x33, 0x32, 0x38, 0x31, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1381,8 +1381,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40000) == 0 { // if not empty - // write "32818" - err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x38) + // write "32818-31" + err = en.Append(0xa8, 0x33, 0x32, 0x38, 0x31, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1400,8 +1400,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80000) == 0 { // if not empty - // write "32819" - err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x31, 0x39) + // write "32819-31" + err = en.Append(0xa8, 0x33, 0x32, 0x38, 0x31, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1419,8 +1419,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100000) == 0 { // if not empty - // write "32820" - err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x32, 0x30) + // write "32820-31" + err = en.Append(0xa8, 0x33, 0x32, 0x38, 0x32, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1438,8 +1438,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200000) == 0 { // if not empty - // write "32821" - err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x32, 0x31) + // write "32821-31" + err = en.Append(0xa8, 0x33, 0x32, 0x38, 0x32, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1457,8 +1457,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400000) == 0 { // if not empty - // write "32772" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x32) + // write "32772-31" + err = en.Append(0xa8, 0x33, 0x32, 0x37, 0x37, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1476,8 +1476,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800000) == 0 { // if not empty - // write "36061" - err = en.Append(0xa5, 0x33, 0x36, 0x30, 0x36, 0x31) + // write "36061-11" + err = en.Append(0xa8, 0x33, 0x36, 0x30, 0x36, 0x31, 0x2d, 0x31, 0x31) if err != nil { return } @@ -1495,8 +1495,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000000) == 0 { // if not empty - // write "35992" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x39, 0x32) + // write "35992-30" + err = en.Append(0xa8, 0x33, 0x35, 0x39, 0x39, 0x32, 0x2d, 0x33, 0x30) if err != nil { return } @@ -1514,8 +1514,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000000) == 0 { // if not empty - // write "32774" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x34) + // write "32774-30" + err = en.Append(0xa8, 0x33, 0x32, 0x37, 0x37, 0x34, 0x2d, 0x33, 0x30) if err != nil { return } @@ -1533,8 +1533,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000000) == 0 { // if not empty - // write "65531" - err = en.Append(0xa5, 0x36, 0x35, 0x35, 0x33, 0x31) + // write "65531-11" + err = en.Append(0xa8, 0x36, 0x35, 0x35, 0x33, 0x31, 0x2d, 0x31, 0x31) if err != nil { return } @@ -1552,8 +1552,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8000000) == 0 { // if not empty - // write "32776" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x36) + // write "32776-30" + err = en.Append(0xa8, 0x33, 0x32, 0x37, 0x37, 0x36, 0x2d, 0x33, 0x30) if err != nil { return } @@ -1571,8 +1571,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10000000) == 0 { // if not empty - // write "32773" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x33) + // write "32773-31" + err = en.Append(0xa8, 0x33, 0x32, 0x37, 0x37, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1590,8 +1590,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20000000) == 0 { // if not empty - // write "36021" - err = en.Append(0xa5, 0x33, 0x36, 0x30, 0x32, 0x31) + // write "36021-11" + err = en.Append(0xa8, 0x33, 0x36, 0x30, 0x32, 0x31, 0x2d, 0x31, 0x31) if err != nil { return } @@ -1609,8 +1609,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40000000) == 0 { // if not empty - // write "32828" - err = en.Append(0xa5, 0x33, 0x32, 0x38, 0x32, 0x38) + // write "32828-31" + err = en.Append(0xa8, 0x33, 0x32, 0x38, 0x32, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1628,8 +1628,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80000000) == 0 { // if not empty - // write "36008" - err = en.Append(0xa5, 0x33, 0x36, 0x30, 0x30, 0x38) + // write "36008-31" + err = en.Append(0xa8, 0x33, 0x36, 0x30, 0x30, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1647,8 +1647,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100000000) == 0 { // if not empty - // write "35985" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x38, 0x35) + // write "35985-31" + err = en.Append(0xa8, 0x33, 0x35, 0x39, 0x38, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1666,8 +1666,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200000000) == 0 { // if not empty - // write "35984" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x38, 0x34) + // write "35984-31" + err = en.Append(0xa8, 0x33, 0x35, 0x39, 0x38, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1685,8 +1685,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400000000) == 0 { // if not empty - // write "35986" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x38, 0x36) + // write "35986-31" + err = en.Append(0xa8, 0x33, 0x35, 0x39, 0x38, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1704,8 +1704,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800000000) == 0 { // if not empty - // write "35982" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x38, 0x32) + // write "35982-31" + err = en.Append(0xa8, 0x33, 0x35, 0x39, 0x38, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1723,8 +1723,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000000000) == 0 { // if not empty - // write "35983" - err = en.Append(0xa5, 0x33, 0x35, 0x39, 0x38, 0x33) + // write "35983-31" + err = en.Append(0xa8, 0x33, 0x35, 0x39, 0x38, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1742,8 +1742,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000000000) == 0 { // if not empty - // write "2055" - err = en.Append(0xa4, 0x32, 0x30, 0x35, 0x35) + // write "2055-3" + err = en.Append(0xa6, 0x32, 0x30, 0x35, 0x35, 0x2d, 0x33) if err != nil { return } @@ -1761,8 +1761,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000000000) == 0 { // if not empty - // write "2057" - err = en.Append(0xa4, 0x32, 0x30, 0x35, 0x37) + // write "2057-31" + err = en.Append(0xa7, 0x32, 0x30, 0x35, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1780,8 +1780,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8000000000) == 0 { // if not empty - // write "36000" - err = en.Append(0xa5, 0x33, 0x36, 0x30, 0x30, 0x30) + // write "36000-3" + err = en.Append(0xa7, 0x33, 0x36, 0x30, 0x30, 0x30, 0x2d, 0x33) if err != nil { return } @@ -1799,8 +1799,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10000000000) == 0 { // if not empty - // write "32785" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x38, 0x35) + // write "32785-31" + err = en.Append(0xa8, 0x33, 0x32, 0x37, 0x38, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1818,8 +1818,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20000000000) == 0 { // if not empty - // write "13836" - err = en.Append(0xa5, 0x31, 0x33, 0x38, 0x33, 0x36) + // write "13836-31" + err = en.Append(0xa8, 0x31, 0x33, 0x38, 0x33, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1837,8 +1837,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40000000000) == 0 { // if not empty - // write "13824" - err = en.Append(0xa5, 0x31, 0x33, 0x38, 0x32, 0x34) + // write "13824-3" + err = en.Append(0xa7, 0x31, 0x33, 0x38, 0x32, 0x34, 0x2d, 0x33) if err != nil { return } @@ -1856,8 +1856,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80000000000) == 0 { // if not empty - // write "14592" - err = en.Append(0xa5, 0x31, 0x34, 0x35, 0x39, 0x32) + // write "14592-3" + err = en.Append(0xa7, 0x31, 0x34, 0x35, 0x39, 0x32, 0x2d, 0x33) if err != nil { return } @@ -1875,8 +1875,8 @@ func (z *AddressBook) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100000000000) == 0 { // if not empty - // write "14597" - err = en.Append(0xa5, 0x31, 0x34, 0x35, 0x39, 0x37) + // write "14597-3" + err = en.Append(0xa7, 0x31, 0x34, 0x35, 0x39, 0x37, 0x2d, 0x33) if err != nil { return } @@ -2088,8 +2088,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // string "14848" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x34, 0x38) + // string "14848-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x34, 0x38, 0x2d, 0x33, 0x31) if z.Account == nil { o = msgp.AppendNil(o) } else { @@ -2097,8 +2097,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // string "65533" - o = append(o, 0xa5, 0x36, 0x35, 0x35, 0x33, 0x33) + // string "65533-3" + o = append(o, 0xa7, 0x36, 0x35, 0x35, 0x33, 0x33, 0x2d, 0x33) if z.AddressBookContainerId == nil { o = msgp.AppendNil(o) } else { @@ -2106,8 +2106,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // string "32874" - o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x37, 0x34) + // string "32874-3" + o = append(o, 0xa7, 0x33, 0x32, 0x38, 0x37, 0x34, 0x2d, 0x33) if z.AddressBookDeliveryContentLength == nil { o = msgp.AppendNil(o) } else { @@ -2115,8 +2115,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // string "14847" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x34, 0x37) + // string "14847-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x34, 0x37, 0x2d, 0x33, 0x31) if z.AddressBookDisplayNamePrintable == nil { o = msgp.AppendNil(o) } else { @@ -2124,8 +2124,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "35987" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x38, 0x37) + // string "35987-3" + o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x38, 0x37, 0x2d, 0x33) if z.AddressBookDisplayTypeExtended == nil { o = msgp.AppendNil(o) } else { @@ -2133,8 +2133,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // string "36067" - o = append(o, 0xa5, 0x33, 0x36, 0x30, 0x36, 0x37) + // string "36067-3" + o = append(o, 0xa7, 0x33, 0x36, 0x30, 0x36, 0x37, 0x2d, 0x33) if z.AddressBookDistributionListExternalMemberCount == nil { o = msgp.AppendNil(o) } else { @@ -2142,8 +2142,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // string "36066" - o = append(o, 0xa5, 0x33, 0x36, 0x30, 0x36, 0x36) + // string "36066-3" + o = append(o, 0xa7, 0x33, 0x36, 0x30, 0x36, 0x36, 0x2d, 0x33) if z.AddressBookDistributionListMemberCount == nil { o = msgp.AppendNil(o) } else { @@ -2151,8 +2151,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // string "32813" - o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x33) + // string "32813-31" + o = append(o, 0xa8, 0x33, 0x32, 0x38, 0x31, 0x33, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute1 == nil { o = msgp.AppendNil(o) } else { @@ -2160,8 +2160,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // string "32822" - o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x32, 0x32) + // string "32822-31" + o = append(o, 0xa8, 0x33, 0x32, 0x38, 0x32, 0x32, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute10 == nil { o = msgp.AppendNil(o) } else { @@ -2169,8 +2169,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // string "35927" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x32, 0x37) + // string "35927-31" + o = append(o, 0xa8, 0x33, 0x35, 0x39, 0x32, 0x37, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute11 == nil { o = msgp.AppendNil(o) } else { @@ -2178,8 +2178,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // string "35928" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x32, 0x38) + // string "35928-31" + o = append(o, 0xa8, 0x33, 0x35, 0x39, 0x32, 0x38, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute12 == nil { o = msgp.AppendNil(o) } else { @@ -2187,8 +2187,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // string "35929" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x32, 0x39) + // string "35929-31" + o = append(o, 0xa8, 0x33, 0x35, 0x39, 0x32, 0x39, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute13 == nil { o = msgp.AppendNil(o) } else { @@ -2196,8 +2196,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // string "35936" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x33, 0x36) + // string "35936-31" + o = append(o, 0xa8, 0x33, 0x35, 0x39, 0x33, 0x36, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute14 == nil { o = msgp.AppendNil(o) } else { @@ -2205,8 +2205,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // string "35937" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x33, 0x37) + // string "35937-31" + o = append(o, 0xa8, 0x33, 0x35, 0x39, 0x33, 0x37, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute15 == nil { o = msgp.AppendNil(o) } else { @@ -2214,8 +2214,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000) == 0 { // if not empty - // string "32814" - o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x34) + // string "32814-31" + o = append(o, 0xa8, 0x33, 0x32, 0x38, 0x31, 0x34, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute2 == nil { o = msgp.AppendNil(o) } else { @@ -2223,8 +2223,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8000) == 0 { // if not empty - // string "32815" - o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x35) + // string "32815-31" + o = append(o, 0xa8, 0x33, 0x32, 0x38, 0x31, 0x35, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute3 == nil { o = msgp.AppendNil(o) } else { @@ -2232,8 +2232,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10000) == 0 { // if not empty - // string "32816" - o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x36) + // string "32816-31" + o = append(o, 0xa8, 0x33, 0x32, 0x38, 0x31, 0x36, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute4 == nil { o = msgp.AppendNil(o) } else { @@ -2241,8 +2241,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20000) == 0 { // if not empty - // string "32817" - o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x37) + // string "32817-31" + o = append(o, 0xa8, 0x33, 0x32, 0x38, 0x31, 0x37, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute5 == nil { o = msgp.AppendNil(o) } else { @@ -2250,8 +2250,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40000) == 0 { // if not empty - // string "32818" - o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x38) + // string "32818-31" + o = append(o, 0xa8, 0x33, 0x32, 0x38, 0x31, 0x38, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute6 == nil { o = msgp.AppendNil(o) } else { @@ -2259,8 +2259,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80000) == 0 { // if not empty - // string "32819" - o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x31, 0x39) + // string "32819-31" + o = append(o, 0xa8, 0x33, 0x32, 0x38, 0x31, 0x39, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute7 == nil { o = msgp.AppendNil(o) } else { @@ -2268,8 +2268,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100000) == 0 { // if not empty - // string "32820" - o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x32, 0x30) + // string "32820-31" + o = append(o, 0xa8, 0x33, 0x32, 0x38, 0x32, 0x30, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute8 == nil { o = msgp.AppendNil(o) } else { @@ -2277,8 +2277,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200000) == 0 { // if not empty - // string "32821" - o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x32, 0x31) + // string "32821-31" + o = append(o, 0xa8, 0x33, 0x32, 0x38, 0x32, 0x31, 0x2d, 0x33, 0x31) if z.AddressBookExtensionAttribute9 == nil { o = msgp.AppendNil(o) } else { @@ -2286,8 +2286,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400000) == 0 { // if not empty - // string "32772" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x32) + // string "32772-31" + o = append(o, 0xa8, 0x33, 0x32, 0x37, 0x37, 0x32, 0x2d, 0x33, 0x31) if z.AddressBookFolderPathname == nil { o = msgp.AppendNil(o) } else { @@ -2295,8 +2295,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800000) == 0 { // if not empty - // string "36061" - o = append(o, 0xa5, 0x33, 0x36, 0x30, 0x36, 0x31) + // string "36061-11" + o = append(o, 0xa8, 0x33, 0x36, 0x30, 0x36, 0x31, 0x2d, 0x31, 0x31) if z.AddressBookHierarchicalIsHierarchicalGroup == nil { o = msgp.AppendNil(o) } else { @@ -2304,8 +2304,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000000) == 0 { // if not empty - // string "35992" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x39, 0x32) + // string "35992-30" + o = append(o, 0xa8, 0x33, 0x35, 0x39, 0x39, 0x32, 0x2d, 0x33, 0x30) if z.AddressBookHierarchicalRootDepartment == nil { o = msgp.AppendNil(o) } else { @@ -2313,8 +2313,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000000) == 0 { // if not empty - // string "32774" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x34) + // string "32774-30" + o = append(o, 0xa8, 0x33, 0x32, 0x37, 0x37, 0x34, 0x2d, 0x33, 0x30) if z.AddressBookHomeMessageDatabase == nil { o = msgp.AppendNil(o) } else { @@ -2322,8 +2322,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000000) == 0 { // if not empty - // string "65531" - o = append(o, 0xa5, 0x36, 0x35, 0x35, 0x33, 0x31) + // string "65531-11" + o = append(o, 0xa8, 0x36, 0x35, 0x35, 0x33, 0x31, 0x2d, 0x31, 0x31) if z.AddressBookIsMaster == nil { o = msgp.AppendNil(o) } else { @@ -2331,8 +2331,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8000000) == 0 { // if not empty - // string "32776" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x36) + // string "32776-30" + o = append(o, 0xa8, 0x33, 0x32, 0x37, 0x37, 0x36, 0x2d, 0x33, 0x30) if z.AddressBookIsMemberOfDistributionList == nil { o = msgp.AppendNil(o) } else { @@ -2340,8 +2340,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10000000) == 0 { // if not empty - // string "32773" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x33) + // string "32773-31" + o = append(o, 0xa8, 0x33, 0x32, 0x37, 0x37, 0x33, 0x2d, 0x33, 0x31) if z.AddressBookManagerDistinguishedName == nil { o = msgp.AppendNil(o) } else { @@ -2349,8 +2349,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20000000) == 0 { // if not empty - // string "36021" - o = append(o, 0xa5, 0x33, 0x36, 0x30, 0x32, 0x31) + // string "36021-11" + o = append(o, 0xa8, 0x33, 0x36, 0x30, 0x32, 0x31, 0x2d, 0x31, 0x31) if z.AddressBookModerationEnabled == nil { o = msgp.AppendNil(o) } else { @@ -2358,8 +2358,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40000000) == 0 { // if not empty - // string "32828" - o = append(o, 0xa5, 0x33, 0x32, 0x38, 0x32, 0x38) + // string "32828-31" + o = append(o, 0xa8, 0x33, 0x32, 0x38, 0x32, 0x38, 0x2d, 0x33, 0x31) if z.AddressBookObjectDistinguishedName == nil { o = msgp.AppendNil(o) } else { @@ -2367,8 +2367,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80000000) == 0 { // if not empty - // string "36008" - o = append(o, 0xa5, 0x33, 0x36, 0x30, 0x30, 0x38) + // string "36008-31" + o = append(o, 0xa8, 0x33, 0x36, 0x30, 0x30, 0x38, 0x2d, 0x33, 0x31) if z.AddressBookOrganizationalUnitRootDistinguishedName == nil { o = msgp.AppendNil(o) } else { @@ -2376,8 +2376,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100000000) == 0 { // if not empty - // string "35985" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x38, 0x35) + // string "35985-31" + o = append(o, 0xa8, 0x33, 0x35, 0x39, 0x38, 0x35, 0x2d, 0x33, 0x31) if z.AddressBookPhoneticCompanyName == nil { o = msgp.AppendNil(o) } else { @@ -2385,8 +2385,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200000000) == 0 { // if not empty - // string "35984" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x38, 0x34) + // string "35984-31" + o = append(o, 0xa8, 0x33, 0x35, 0x39, 0x38, 0x34, 0x2d, 0x33, 0x31) if z.AddressBookPhoneticDepartmentName == nil { o = msgp.AppendNil(o) } else { @@ -2394,8 +2394,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400000000) == 0 { // if not empty - // string "35986" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x38, 0x36) + // string "35986-31" + o = append(o, 0xa8, 0x33, 0x35, 0x39, 0x38, 0x36, 0x2d, 0x33, 0x31) if z.AddressBookPhoneticDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -2403,8 +2403,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800000000) == 0 { // if not empty - // string "35982" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x38, 0x32) + // string "35982-31" + o = append(o, 0xa8, 0x33, 0x35, 0x39, 0x38, 0x32, 0x2d, 0x33, 0x31) if z.AddressBookPhoneticGivenName == nil { o = msgp.AppendNil(o) } else { @@ -2412,8 +2412,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000000000) == 0 { // if not empty - // string "35983" - o = append(o, 0xa5, 0x33, 0x35, 0x39, 0x38, 0x33) + // string "35983-31" + o = append(o, 0xa8, 0x33, 0x35, 0x39, 0x38, 0x33, 0x2d, 0x33, 0x31) if z.AddressBookPhoneticSurname == nil { o = msgp.AppendNil(o) } else { @@ -2421,8 +2421,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000000000) == 0 { // if not empty - // string "2055" - o = append(o, 0xa4, 0x32, 0x30, 0x35, 0x35) + // string "2055-3" + o = append(o, 0xa6, 0x32, 0x30, 0x35, 0x35, 0x2d, 0x33) if z.AddressBookRoomCapacity == nil { o = msgp.AppendNil(o) } else { @@ -2430,8 +2430,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000000000) == 0 { // if not empty - // string "2057" - o = append(o, 0xa4, 0x32, 0x30, 0x35, 0x37) + // string "2057-31" + o = append(o, 0xa7, 0x32, 0x30, 0x35, 0x37, 0x2d, 0x33, 0x31) if z.AddressBookRoomDescription == nil { o = msgp.AppendNil(o) } else { @@ -2439,8 +2439,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8000000000) == 0 { // if not empty - // string "36000" - o = append(o, 0xa5, 0x33, 0x36, 0x30, 0x30, 0x30) + // string "36000-3" + o = append(o, 0xa7, 0x33, 0x36, 0x30, 0x30, 0x30, 0x2d, 0x33) if z.AddressBookSeniorityIndex == nil { o = msgp.AppendNil(o) } else { @@ -2448,8 +2448,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10000000000) == 0 { // if not empty - // string "32785" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x38, 0x35) + // string "32785-31" + o = append(o, 0xa8, 0x33, 0x32, 0x37, 0x38, 0x35, 0x2d, 0x33, 0x31) if z.AddressBookTargetAddress == nil { o = msgp.AppendNil(o) } else { @@ -2457,8 +2457,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20000000000) == 0 { // if not empty - // string "13836" - o = append(o, 0xa5, 0x31, 0x33, 0x38, 0x33, 0x36) + // string "13836-31" + o = append(o, 0xa8, 0x31, 0x33, 0x38, 0x33, 0x36, 0x2d, 0x33, 0x31) if z.Anr == nil { o = msgp.AppendNil(o) } else { @@ -2466,8 +2466,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40000000000) == 0 { // if not empty - // string "13824" - o = append(o, 0xa5, 0x31, 0x33, 0x38, 0x32, 0x34) + // string "13824-3" + o = append(o, 0xa7, 0x31, 0x33, 0x38, 0x32, 0x34, 0x2d, 0x33) if z.ContainerFlags == nil { o = msgp.AppendNil(o) } else { @@ -2475,8 +2475,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80000000000) == 0 { // if not empty - // string "14592" - o = append(o, 0xa5, 0x31, 0x34, 0x35, 0x39, 0x32) + // string "14592-3" + o = append(o, 0xa7, 0x31, 0x34, 0x35, 0x39, 0x32, 0x2d, 0x33) if z.DisplayType == nil { o = msgp.AppendNil(o) } else { @@ -2484,8 +2484,8 @@ func (z *AddressBook) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100000000000) == 0 { // if not empty - // string "14597" - o = append(o, 0xa5, 0x31, 0x34, 0x35, 0x39, 0x37) + // string "14597-3" + o = append(o, 0xa7, 0x31, 0x34, 0x35, 0x39, 0x37, 0x2d, 0x33) if z.DisplayTypeEx == nil { o = msgp.AppendNil(o) } else { @@ -2513,7 +2513,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "14848": + case "14848-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2530,7 +2530,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "65533": + case "65533-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2547,7 +2547,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32874": + case "32874-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2564,7 +2564,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14847": + case "14847-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2581,7 +2581,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35987": + case "35987-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2598,7 +2598,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "36067": + case "36067-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2615,7 +2615,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "36066": + case "36066-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2632,7 +2632,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32813": + case "32813-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2649,7 +2649,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32822": + case "32822-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2666,7 +2666,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35927": + case "35927-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2683,7 +2683,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35928": + case "35928-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2700,7 +2700,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35929": + case "35929-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2717,7 +2717,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35936": + case "35936-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2734,7 +2734,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35937": + case "35937-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2751,7 +2751,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32814": + case "32814-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2768,7 +2768,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32815": + case "32815-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2785,7 +2785,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32816": + case "32816-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2802,7 +2802,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32817": + case "32817-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2819,7 +2819,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32818": + case "32818-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2836,7 +2836,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32819": + case "32819-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2853,7 +2853,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32820": + case "32820-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2870,7 +2870,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32821": + case "32821-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2887,7 +2887,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32772": + case "32772-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2904,7 +2904,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "36061": + case "36061-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2921,7 +2921,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35992": + case "35992-30": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2938,7 +2938,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32774": + case "32774-30": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2955,7 +2955,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "65531": + case "65531-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2972,7 +2972,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32776": + case "32776-30": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2989,7 +2989,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32773": + case "32773-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3006,7 +3006,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "36021": + case "36021-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3023,7 +3023,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32828": + case "32828-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3040,7 +3040,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "36008": + case "36008-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3057,7 +3057,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35985": + case "35985-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3074,7 +3074,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35984": + case "35984-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3091,7 +3091,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35986": + case "35986-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3108,7 +3108,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35982": + case "35982-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3125,7 +3125,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35983": + case "35983-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3142,7 +3142,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2055": + case "2055-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3159,7 +3159,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2057": + case "2057-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3176,7 +3176,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "36000": + case "36000-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3193,7 +3193,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32785": + case "32785-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3210,7 +3210,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "13836": + case "13836-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3227,7 +3227,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "13824": + case "13824-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3244,7 +3244,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14592": + case "14592-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3261,7 +3261,7 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14597": + case "14597-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3292,271 +3292,271 @@ func (z *AddressBook) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *AddressBook) Msgsize() (s int) { - s = 3 + 6 + s = 3 + 9 if z.Account == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Account) } - s += 6 + s += 8 if z.AddressBookContainerId == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 8 if z.AddressBookDeliveryContentLength == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.AddressBookDisplayNamePrintable == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookDisplayNamePrintable) } - s += 6 + s += 8 if z.AddressBookDisplayTypeExtended == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 8 if z.AddressBookDistributionListExternalMemberCount == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 8 if z.AddressBookDistributionListMemberCount == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.AddressBookExtensionAttribute1 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute1) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute10 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute10) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute11 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute11) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute12 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute12) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute13 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute13) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute14 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute14) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute15 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute15) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute2 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute2) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute3 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute3) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute4 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute4) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute5 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute5) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute6 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute6) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute7 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute7) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute8 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute8) } - s += 6 + s += 9 if z.AddressBookExtensionAttribute9 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookExtensionAttribute9) } - s += 6 + s += 9 if z.AddressBookFolderPathname == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookFolderPathname) } - s += 6 + s += 9 if z.AddressBookHierarchicalIsHierarchicalGroup == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.AddressBookHierarchicalRootDepartment == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookHierarchicalRootDepartment) } - s += 6 + s += 9 if z.AddressBookHomeMessageDatabase == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookHomeMessageDatabase) } - s += 6 + s += 9 if z.AddressBookIsMaster == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.AddressBookIsMemberOfDistributionList == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookIsMemberOfDistributionList) } - s += 6 + s += 9 if z.AddressBookManagerDistinguishedName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookManagerDistinguishedName) } - s += 6 + s += 9 if z.AddressBookModerationEnabled == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.AddressBookObjectDistinguishedName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookObjectDistinguishedName) } - s += 6 + s += 9 if z.AddressBookOrganizationalUnitRootDistinguishedName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookOrganizationalUnitRootDistinguishedName) } - s += 6 + s += 9 if z.AddressBookPhoneticCompanyName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookPhoneticCompanyName) } - s += 6 + s += 9 if z.AddressBookPhoneticDepartmentName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookPhoneticDepartmentName) } - s += 6 + s += 9 if z.AddressBookPhoneticDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookPhoneticDisplayName) } - s += 6 + s += 9 if z.AddressBookPhoneticGivenName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookPhoneticGivenName) } - s += 6 + s += 9 if z.AddressBookPhoneticSurname == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookPhoneticSurname) } - s += 5 + s += 7 if z.AddressBookRoomCapacity == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 8 if z.AddressBookRoomDescription == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookRoomDescription) } - s += 6 + s += 8 if z.AddressBookSeniorityIndex == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.AddressBookTargetAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressBookTargetAddress) } - s += 6 + s += 9 if z.Anr == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Anr) } - s += 6 + s += 8 if z.ContainerFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 8 if z.DisplayType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 8 if z.DisplayTypeEx == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/appointment.pb.go b/pkg/properties/appointment.pb.go index b16f34f..155f324 100644 --- a/pkg/properties/appointment.pb.go +++ b/pkg/properties/appointment.pb.go @@ -44,244 +44,244 @@ type Appointment struct { unknownFields protoimpl.UnknownFields // Specifies a list of all the attendees except for the organizer, including resources and unsendable attendees. - AllAttendeesString *string `protobuf:"bytes,1,opt,name=all_attendees_string,json=allAttendeesString,proto3,oneof" json:"all_attendees_string,omitempty" msg:"264296,omitempty" type:"31,omitempty"` + AllAttendeesString *string `protobuf:"bytes,1,opt,name=all_attendees_string,json=allAttendeesString,proto3,oneof" json:"all_attendees_string,omitempty" msg:"264296-31,omitempty"` // This property is set to TRUE. - AllowExternalCheck *bool `protobuf:"varint,2,opt,name=allow_external_check,json=allowExternalCheck,proto3,oneof" json:"allow_external_check,omitempty" msg:"264326,omitempty" type:"11,omitempty"` + AllowExternalCheck *bool `protobuf:"varint,2,opt,name=allow_external_check,json=allowExternalCheck,proto3,oneof" json:"allow_external_check,omitempty" msg:"264326-11,omitempty"` // Specifies a bit field that describes the auxiliary state of the object. - AppointmentAuxiliaryFlags *int32 `protobuf:"varint,3,opt,name=appointment_auxiliary_flags,json=appointmentAuxiliaryFlags,proto3,oneof" json:"appointment_auxiliary_flags,omitempty" msg:"264199,omitempty" type:"3,omitempty"` + AppointmentAuxiliaryFlags *int32 `protobuf:"varint,3,opt,name=appointment_auxiliary_flags,json=appointmentAuxiliaryFlags,proto3,oneof" json:"appointment_auxiliary_flags,omitempty" msg:"264199-3,omitempty"` // Specifies the color to be used when displaying the Calendar object. - AppointmentColor *int32 `protobuf:"varint,4,opt,name=appointment_color,json=appointmentColor,proto3,oneof" json:"appointment_color,omitempty" msg:"264228,omitempty" type:"3,omitempty"` + AppointmentColor *int32 `protobuf:"varint,4,opt,name=appointment_color,json=appointmentColor,proto3,oneof" json:"appointment_color,omitempty" msg:"264228-3,omitempty"` // Indicates whether a Meeting Response object is a counter proposal. - AppointmentCounterProposal *bool `protobuf:"varint,5,opt,name=appointment_counter_proposal,json=appointmentCounterProposal,proto3,oneof" json:"appointment_counter_proposal,omitempty" msg:"264359,omitempty" type:"11,omitempty"` + AppointmentCounterProposal *bool `protobuf:"varint,5,opt,name=appointment_counter_proposal,json=appointmentCounterProposal,proto3,oneof" json:"appointment_counter_proposal,omitempty" msg:"264359-11,omitempty"` // Specifies the length of the event, in minutes. - AppointmentDuration *int32 `protobuf:"varint,6,opt,name=appointment_duration,json=appointmentDuration,proto3,oneof" json:"appointment_duration,omitempty" msg:"264227,omitempty" type:"3,omitempty"` + AppointmentDuration *int32 `protobuf:"varint,6,opt,name=appointment_duration,json=appointmentDuration,proto3,oneof" json:"appointment_duration,omitempty" msg:"264227-3,omitempty"` // Indicates the date that the appointment ends. - AppointmentEndDate *int64 `protobuf:"varint,7,opt,name=appointment_end_date,json=appointmentEndDate,proto3,oneof" json:"appointment_end_date,omitempty" msg:"264225,omitempty" type:"64,omitempty"` + AppointmentEndDate *int64 `protobuf:"varint,7,opt,name=appointment_end_date,json=appointmentEndDate,proto3,oneof" json:"appointment_end_date,omitempty" msg:"264225-64,omitempty"` // Indicates the time that the appointment ends. - AppointmentEndTime *int64 `protobuf:"varint,8,opt,name=appointment_end_time,json=appointmentEndTime,proto3,oneof" json:"appointment_end_time,omitempty" msg:"264224,omitempty" type:"64,omitempty"` + AppointmentEndTime *int64 `protobuf:"varint,8,opt,name=appointment_end_time,json=appointmentEndTime,proto3,oneof" json:"appointment_end_time,omitempty" msg:"264224-64,omitempty"` // Specifies the end date and time for the event. - AppointmentEndWhole *int64 `protobuf:"varint,9,opt,name=appointment_end_whole,json=appointmentEndWhole,proto3,oneof" json:"appointment_end_whole,omitempty" msg:"264206,omitempty" type:"64,omitempty"` + AppointmentEndWhole *int64 `protobuf:"varint,9,opt,name=appointment_end_whole,json=appointmentEndWhole,proto3,oneof" json:"appointment_end_whole,omitempty" msg:"264206-64,omitempty"` // Indicates to the organizer the last sequence number that was sent to any attendee. - AppointmentLastSequence *int32 `protobuf:"varint,10,opt,name=appointment_last_sequence,json=appointmentLastSequence,proto3,oneof" json:"appointment_last_sequence,omitempty" msg:"264195,omitempty" type:"3,omitempty"` + AppointmentLastSequence *int32 `protobuf:"varint,10,opt,name=appointment_last_sequence,json=appointmentLastSequence,proto3,oneof" json:"appointment_last_sequence,omitempty" msg:"264195-3,omitempty"` // Indicates the message class of the Meeting object to be generated from the Meeting Request object. - AppointmentMessageClass *string `protobuf:"bytes,11,opt,name=appointment_message_class,json=appointmentMessageClass,proto3,oneof" json:"appointment_message_class,omitempty" msg:"68,omitempty" type:"31,omitempty"` + AppointmentMessageClass *string `protobuf:"bytes,11,opt,name=appointment_message_class,json=appointmentMessageClass,proto3,oneof" json:"appointment_message_class,omitempty" msg:"68-31,omitempty"` // Indicates whether attendees are not allowed to propose a new date and/or time for the meeting. - AppointmentNotAllowPropose *bool `protobuf:"varint,12,opt,name=appointment_not_allow_propose,json=appointmentNotAllowPropose,proto3,oneof" json:"appointment_not_allow_propose,omitempty" msg:"264362,omitempty" type:"11,omitempty"` + AppointmentNotAllowPropose *bool `protobuf:"varint,12,opt,name=appointment_not_allow_propose,json=appointmentNotAllowPropose,proto3,oneof" json:"appointment_not_allow_propose,omitempty" msg:"264362-11,omitempty"` // Specifies the number of attendees who have sent counter proposals that have not been accepted or rejected by the organizer. - AppointmentProposalNumber *int32 `protobuf:"varint,13,opt,name=appointment_proposal_number,json=appointmentProposalNumber,proto3,oneof" json:"appointment_proposal_number,omitempty" msg:"264361,omitempty" type:"3,omitempty"` + AppointmentProposalNumber *int32 `protobuf:"varint,13,opt,name=appointment_proposal_number,json=appointmentProposalNumber,proto3,oneof" json:"appointment_proposal_number,omitempty" msg:"264361-3,omitempty"` // Indicates the proposed value for the PidLidAppointmentDuration property (section 2.11) for a counter proposal. - AppointmentProposedDuration *int32 `protobuf:"varint,14,opt,name=appointment_proposed_duration,json=appointmentProposedDuration,proto3,oneof" json:"appointment_proposed_duration,omitempty" msg:"264358,omitempty" type:"3,omitempty"` + AppointmentProposedDuration *int32 `protobuf:"varint,14,opt,name=appointment_proposed_duration,json=appointmentProposedDuration,proto3,oneof" json:"appointment_proposed_duration,omitempty" msg:"264358-3,omitempty"` // Specifies the proposed value for the PidLidAppointmentEndWhole property (section 2.14) for a counter proposal. - AppointmentProposedEndWhole *int64 `protobuf:"varint,15,opt,name=appointment_proposed_end_whole,json=appointmentProposedEndWhole,proto3,oneof" json:"appointment_proposed_end_whole,omitempty" msg:"264353,omitempty" type:"64,omitempty"` + AppointmentProposedEndWhole *int64 `protobuf:"varint,15,opt,name=appointment_proposed_end_whole,json=appointmentProposedEndWhole,proto3,oneof" json:"appointment_proposed_end_whole,omitempty" msg:"264353-64,omitempty"` // Specifies the proposed value for the PidLidAppointmentStartWhole property (section 2.29) for a counter proposal. - AppointmentProposedStartWhole *int64 `protobuf:"varint,16,opt,name=appointment_proposed_start_whole,json=appointmentProposedStartWhole,proto3,oneof" json:"appointment_proposed_start_whole,omitempty" msg:"264352,omitempty" type:"64,omitempty"` + AppointmentProposedStartWhole *int64 `protobuf:"varint,16,opt,name=appointment_proposed_start_whole,json=appointmentProposedStartWhole,proto3,oneof" json:"appointment_proposed_start_whole,omitempty" msg:"264352-64,omitempty"` // Specifies the user who last replied to the meeting request or meeting update. - AppointmentReplyName *string `protobuf:"bytes,18,opt,name=appointment_reply_name,json=appointmentReplyName,proto3,oneof" json:"appointment_reply_name,omitempty" msg:"264288,omitempty" type:"31,omitempty"` + AppointmentReplyName *string `protobuf:"bytes,18,opt,name=appointment_reply_name,json=appointmentReplyName,proto3,oneof" json:"appointment_reply_name,omitempty" msg:"264288-31,omitempty"` // Specifies the date and time at which the attendee responded to a received meeting request or Meeting Update object. - AppointmentReplyTime *int64 `protobuf:"varint,19,opt,name=appointment_reply_time,json=appointmentReplyTime,proto3,oneof" json:"appointment_reply_time,omitempty" msg:"264256,omitempty" type:"64,omitempty"` + AppointmentReplyTime *int64 `protobuf:"varint,19,opt,name=appointment_reply_time,json=appointmentReplyTime,proto3,oneof" json:"appointment_reply_time,omitempty" msg:"264256-64,omitempty"` // Specifies the sequence number of a Meeting object. - AppointmentSequence *int32 `protobuf:"varint,20,opt,name=appointment_sequence,json=appointmentSequence,proto3,oneof" json:"appointment_sequence,omitempty" msg:"264193,omitempty" type:"3,omitempty"` + AppointmentSequence *int32 `protobuf:"varint,20,opt,name=appointment_sequence,json=appointmentSequence,proto3,oneof" json:"appointment_sequence,omitempty" msg:"264193-3,omitempty"` // Indicates the date and time at which the PidLidAppointmentSequence property (section 2.25) was last modified. - AppointmentSequenceTime *int64 `protobuf:"varint,21,opt,name=appointment_sequence_time,json=appointmentSequenceTime,proto3,oneof" json:"appointment_sequence_time,omitempty" msg:"264194,omitempty" type:"64,omitempty"` + AppointmentSequenceTime *int64 `protobuf:"varint,21,opt,name=appointment_sequence_time,json=appointmentSequenceTime,proto3,oneof" json:"appointment_sequence_time,omitempty" msg:"264194-64,omitempty"` // Identifies the date that the appointment starts. - AppointmentStartDate *int64 `protobuf:"varint,22,opt,name=appointment_start_date,json=appointmentStartDate,proto3,oneof" json:"appointment_start_date,omitempty" msg:"264226,omitempty" type:"64,omitempty"` + AppointmentStartDate *int64 `protobuf:"varint,22,opt,name=appointment_start_date,json=appointmentStartDate,proto3,oneof" json:"appointment_start_date,omitempty" msg:"264226-64,omitempty"` // Identifies the time that the appointment starts. - AppointmentStartTime *int64 `protobuf:"varint,23,opt,name=appointment_start_time,json=appointmentStartTime,proto3,oneof" json:"appointment_start_time,omitempty" msg:"264207,omitempty" type:"64,omitempty"` + AppointmentStartTime *int64 `protobuf:"varint,23,opt,name=appointment_start_time,json=appointmentStartTime,proto3,oneof" json:"appointment_start_time,omitempty" msg:"264207-64,omitempty"` // Specifies the start date and time of the appointment. - AppointmentStartWhole *int64 `protobuf:"varint,24,opt,name=appointment_start_whole,json=appointmentStartWhole,proto3,oneof" json:"appointment_start_whole,omitempty" msg:"264205,omitempty" type:"64,omitempty"` + AppointmentStartWhole *int64 `protobuf:"varint,24,opt,name=appointment_start_whole,json=appointmentStartWhole,proto3,oneof" json:"appointment_start_whole,omitempty" msg:"264205-64,omitempty"` // Specifies a bit field that describes the state of the object. - AppointmentStateFlags *int32 `protobuf:"varint,25,opt,name=appointment_state_flags,json=appointmentStateFlags,proto3,oneof" json:"appointment_state_flags,omitempty" msg:"264231,omitempty" type:"3,omitempty"` + AppointmentStateFlags *int32 `protobuf:"varint,25,opt,name=appointment_state_flags,json=appointmentStateFlags,proto3,oneof" json:"appointment_state_flags,omitempty" msg:"264231-3,omitempty"` // Specifies whether the event is an all-day event. - AppointmentSubType *bool `protobuf:"varint,26,opt,name=appointment_sub_type,json=appointmentSubType,proto3,oneof" json:"appointment_sub_type,omitempty" msg:"264229,omitempty" type:"11,omitempty"` + AppointmentSubType *bool `protobuf:"varint,26,opt,name=appointment_sub_type,json=appointmentSubType,proto3,oneof" json:"appointment_sub_type,omitempty" msg:"264229-11,omitempty"` // Indicates the time at which the appointment was last updated. - AppointmentUpdateTime *int64 `protobuf:"varint,31,opt,name=appointment_update_time,json=appointmentUpdateTime,proto3,oneof" json:"appointment_update_time,omitempty" msg:"264262,omitempty" type:"64,omitempty"` + AppointmentUpdateTime *int64 `protobuf:"varint,31,opt,name=appointment_update_time,json=appointmentUpdateTime,proto3,oneof" json:"appointment_update_time,omitempty" msg:"264262-64,omitempty"` // Specifies the date and time at which the meeting-related object was sent. - AttendeeCriticalChange *int64 `protobuf:"varint,32,opt,name=attendee_critical_change,json=attendeeCriticalChange,proto3,oneof" json:"attendee_critical_change,omitempty" msg:"1,omitempty" type:"64,omitempty"` + AttendeeCriticalChange *int64 `protobuf:"varint,32,opt,name=attendee_critical_change,json=attendeeCriticalChange,proto3,oneof" json:"attendee_critical_change,omitempty" msg:"1-64,omitempty"` // Indicates whether the value of the PidLidLocation property (section 2.159) is set to the PidTagDisplayName property (section 2.676). - AutoFillLocation *bool `protobuf:"varint,33,opt,name=auto_fill_location,json=autoFillLocation,proto3,oneof" json:"auto_fill_location,omitempty" msg:"264298,omitempty" type:"11,omitempty"` + AutoFillLocation *bool `protobuf:"varint,33,opt,name=auto_fill_location,json=autoFillLocation,proto3,oneof" json:"auto_fill_location,omitempty" msg:"264298-11,omitempty"` // Specifies whether to automatically start the conferencing application when a reminder for the start of a meeting is executed. - AutoStartCheck *bool `protobuf:"varint,34,opt,name=auto_start_check,json=autoStartCheck,proto3,oneof" json:"auto_start_check,omitempty" msg:"264324,omitempty" type:"11,omitempty"` + AutoStartCheck *bool `protobuf:"varint,34,opt,name=auto_start_check,json=autoStartCheck,proto3,oneof" json:"auto_start_check,omitempty" msg:"264324-11,omitempty"` // Specifies the availability of a user for the event described by the object. - BusyStatus *int32 `protobuf:"varint,35,opt,name=busy_status,json=busyStatus,proto3,oneof" json:"busy_status,omitempty" msg:"264197,omitempty" type:"3,omitempty"` + BusyStatus *int32 `protobuf:"varint,35,opt,name=busy_status,json=busyStatus,proto3,oneof" json:"busy_status,omitempty" msg:"264197-3,omitempty"` // Contains the value of the CalendarType field from the PidLidAppointmentRecur property (section 2.22). - CalendarType *int32 `protobuf:"varint,36,opt,name=calendar_type,json=calendarType,proto3,oneof" json:"calendar_type,omitempty" msg:"44,omitempty" type:"3,omitempty"` + CalendarType *int32 `protobuf:"varint,36,opt,name=calendar_type,json=calendarType,proto3,oneof" json:"calendar_type,omitempty" msg:"44-3,omitempty"` // Contains a list of all the sendable attendees who are also optional attendees. - CcAttendeesString *string `protobuf:"bytes,37,opt,name=cc_attendees_string,json=ccAttendeesString,proto3,oneof" json:"cc_attendees_string,omitempty" msg:"264300,omitempty" type:"31,omitempty"` + CcAttendeesString *string `protobuf:"bytes,37,opt,name=cc_attendees_string,json=ccAttendeesString,proto3,oneof" json:"cc_attendees_string,omitempty" msg:"264300-31,omitempty"` // Specifies a bit field that indicates how the Meeting object has changed. - ChangeHighlight *int32 `protobuf:"varint,38,opt,name=change_highlight,json=changeHighlight,proto3,oneof" json:"change_highlight,omitempty" msg:"264196,omitempty" type:"3,omitempty"` + ChangeHighlight *int32 `protobuf:"varint,38,opt,name=change_highlight,json=changeHighlight,proto3,oneof" json:"change_highlight,omitempty" msg:"264196-3,omitempty"` // Indicates what actions the user has taken on this Meeting object. - ClientIntent *int32 `protobuf:"varint,40,opt,name=client_intent,json=clientIntent,proto3,oneof" json:"client_intent,omitempty" msg:"37,omitempty" type:"3,omitempty"` + ClientIntent *int32 `protobuf:"varint,40,opt,name=client_intent,json=clientIntent,proto3,oneof" json:"client_intent,omitempty" msg:"37-3,omitempty"` // Specifies the end date and time of the event in UTC. - ClipEnd *int64 `protobuf:"varint,41,opt,name=clip_end,json=clipEnd,proto3,oneof" json:"clip_end,omitempty" msg:"264294,omitempty" type:"64,omitempty"` + ClipEnd *int64 `protobuf:"varint,41,opt,name=clip_end,json=clipEnd,proto3,oneof" json:"clip_end,omitempty" msg:"264294-64,omitempty"` // Specifies the start date and time of the event in UTC. - ClipStart *int64 `protobuf:"varint,42,opt,name=clip_start,json=clipStart,proto3,oneof" json:"clip_start,omitempty" msg:"264293,omitempty" type:"64,omitempty"` + ClipStart *int64 `protobuf:"varint,42,opt,name=clip_start,json=clipStart,proto3,oneof" json:"clip_start,omitempty" msg:"264293-64,omitempty"` // Specifies the document to be launched when the user joins the meeting. - CollaborateDoc *string `protobuf:"bytes,43,opt,name=collaborate_doc,json=collaborateDoc,proto3,oneof" json:"collaborate_doc,omitempty" msg:"264327,omitempty" type:"31,omitempty"` + CollaborateDoc *string `protobuf:"bytes,43,opt,name=collaborate_doc,json=collaborateDoc,proto3,oneof" json:"collaborate_doc,omitempty" msg:"264327-31,omitempty"` // When set to TRUE (0x00000001), the PidLidConferencingCheck property indicates that the associated meeting is one of the following types: - ConferencingCheck *bool `protobuf:"varint,44,opt,name=conferencing_check,json=conferencingCheck,proto3,oneof" json:"conferencing_check,omitempty" msg:"264320,omitempty" type:"11,omitempty"` + ConferencingCheck *bool `protobuf:"varint,44,opt,name=conferencing_check,json=conferencingCheck,proto3,oneof" json:"conferencing_check,omitempty" msg:"264320-11,omitempty"` // Specifies the type of the meeting. - ConferencingType *int32 `protobuf:"varint,45,opt,name=conferencing_type,json=conferencingType,proto3,oneof" json:"conferencing_type,omitempty" msg:"264321,omitempty" type:"3,omitempty"` + ConferencingType *int32 `protobuf:"varint,45,opt,name=conferencing_type,json=conferencingType,proto3,oneof" json:"conferencing_type,omitempty" msg:"264321-3,omitempty"` // Identifies the day interval for the recurrence pattern. - DayInterval *int32 `protobuf:"varint,46,opt,name=day_interval,json=dayInterval,proto3,oneof" json:"day_interval,omitempty" msg:"33,omitempty" type:"2,omitempty"` + DayInterval *int32 `protobuf:"varint,46,opt,name=day_interval,json=dayInterval,proto3,oneof" json:"day_interval,omitempty" msg:"33-2,omitempty"` // Identifies the day of the month for the appointment or meeting. - DayOfMonth *int32 `protobuf:"varint,47,opt,name=day_of_month,json=dayOfMonth,proto3,oneof" json:"day_of_month,omitempty" msg:"32768,omitempty" type:"3,omitempty"` + DayOfMonth *int32 `protobuf:"varint,47,opt,name=day_of_month,json=dayOfMonth,proto3,oneof" json:"day_of_month,omitempty" msg:"32768-3,omitempty"` // Indicates whether a delegate responded to the meeting request. - DelegateMail *bool `protobuf:"varint,48,opt,name=delegate_mail,json=delegateMail,proto3,oneof" json:"delegate_mail,omitempty" msg:"9,omitempty" type:"11,omitempty"` + DelegateMail *bool `protobuf:"varint,48,opt,name=delegate_mail,json=delegateMail,proto3,oneof" json:"delegate_mail,omitempty" msg:"9-11,omitempty"` // Specifies the directory server to be used. - Directory *string `protobuf:"bytes,49,opt,name=directory,proto3,oneof" json:"directory,omitempty" msg:"264322,omitempty" type:"31,omitempty"` + Directory *string `protobuf:"bytes,49,opt,name=directory,proto3,oneof" json:"directory,omitempty" msg:"264322-31,omitempty"` // Identifies the end date of the recurrence range. - EndRecurrenceDate *int32 `protobuf:"varint,50,opt,name=end_recurrence_date,json=endRecurrenceDate,proto3,oneof" json:"end_recurrence_date,omitempty" msg:"15,omitempty" type:"3,omitempty"` + EndRecurrenceDate *int32 `protobuf:"varint,50,opt,name=end_recurrence_date,json=endRecurrenceDate,proto3,oneof" json:"end_recurrence_date,omitempty" msg:"15-3,omitempty"` // Identifies the end time of the recurrence range. - EndRecurrenceTime *int32 `protobuf:"varint,51,opt,name=end_recurrence_time,json=endRecurrenceTime,proto3,oneof" json:"end_recurrence_time,omitempty" msg:"32,omitempty" type:"3,omitempty"` + EndRecurrenceTime *int32 `protobuf:"varint,51,opt,name=end_recurrence_time,json=endRecurrenceTime,proto3,oneof" json:"end_recurrence_time,omitempty" msg:"32-3,omitempty"` // Specifies the date and time, in UTC, within a recurrence pattern that an exception will replace. - ExceptionReplaceTime *int64 `protobuf:"varint,52,opt,name=exception_replace_time,json=exceptionReplaceTime,proto3,oneof" json:"exception_replace_time,omitempty" msg:"264264,omitempty" type:"64,omitempty"` + ExceptionReplaceTime *int64 `protobuf:"varint,52,opt,name=exception_replace_time,json=exceptionReplaceTime,proto3,oneof" json:"exception_replace_time,omitempty" msg:"264264-64,omitempty"` // Indicates that the object is a Recurring Calendar object with one or more exceptions, and that at least one of the Exception Embedded Message objects has at least one RecipientRow structure, as described in [MS-OXCDATA] section 2.8.3. - FExceptionalAttendees *bool `protobuf:"varint,53,opt,name=f_exceptional_attendees,json=fExceptionalAttendees,proto3,oneof" json:"f_exceptional_attendees,omitempty" msg:"264267,omitempty" type:"11,omitempty"` + FExceptionalAttendees *bool `protobuf:"varint,53,opt,name=f_exceptional_attendees,json=fExceptionalAttendees,proto3,oneof" json:"f_exceptional_attendees,omitempty" msg:"264267-11,omitempty"` // Indicates that the Exception Embedded Message object has a body that differs from the Recurring Calendar object. - FExceptionalBody *bool `protobuf:"varint,54,opt,name=f_exceptional_body,json=fExceptionalBody,proto3,oneof" json:"f_exceptional_body,omitempty" msg:"264198,omitempty" type:"11,omitempty"` + FExceptionalBody *bool `protobuf:"varint,54,opt,name=f_exceptional_body,json=fExceptionalBody,proto3,oneof" json:"f_exceptional_body,omitempty" msg:"264198-11,omitempty"` // Indicates whether invitations have been sent for the meeting that this Meeting object represents. - FInvited *bool `protobuf:"varint,55,opt,name=f_invited,json=fInvited,proto3,oneof" json:"f_invited,omitempty" msg:"264265,omitempty" type:"11,omitempty"` + FInvited *bool `protobuf:"varint,55,opt,name=f_invited,json=fInvited,proto3,oneof" json:"f_invited,omitempty" msg:"264265-11,omitempty"` // Indicates whether the Meeting Request object represents an exception to a recurring series, and whether it was forwarded (even when forwarded by the organizer) rather than being an invitation sent by the organizer. - ForwardInstance *bool `protobuf:"varint,56,opt,name=forward_instance,json=forwardInstance,proto3,oneof" json:"forward_instance,omitempty" msg:"264202,omitempty" type:"11,omitempty"` + ForwardInstance *bool `protobuf:"varint,56,opt,name=forward_instance,json=forwardInstance,proto3,oneof" json:"forward_instance,omitempty" msg:"264202-11,omitempty"` // Indicates whether the Calendar folder from which the meeting was opened is another user's calendar. - FOthersAppointment *bool `protobuf:"varint,58,opt,name=f_others_appointment,json=fOthersAppointment,proto3,oneof" json:"f_others_appointment,omitempty" msg:"264271,omitempty" type:"11,omitempty"` + FOthersAppointment *bool `protobuf:"varint,58,opt,name=f_others_appointment,json=fOthersAppointment,proto3,oneof" json:"f_others_appointment,omitempty" msg:"264271-11,omitempty"` // Identifies the day of the week for the appointment or meeting. - ICalendarDayOfWeekMask *int32 `protobuf:"varint,60,opt,name=i_calendar_day_of_week_mask,json=iCalendarDayOfWeekMask,proto3,oneof" json:"i_calendar_day_of_week_mask,omitempty" msg:"32769,omitempty" type:"3,omitempty"` + ICalendarDayOfWeekMask *int32 `protobuf:"varint,60,opt,name=i_calendar_day_of_week_mask,json=iCalendarDayOfWeekMask,proto3,oneof" json:"i_calendar_day_of_week_mask,omitempty" msg:"32769-3,omitempty"` // Contains the value of the PidLidBusyStatus property (section 2.47) on the Meeting object in the organizer's calendar at the time that the Meeting Request object or Meeting Update object was sent. - IntendedBusyStatus *int32 `protobuf:"varint,62,opt,name=intended_busy_status,json=intendedBusyStatus,proto3,oneof" json:"intended_busy_status,omitempty" msg:"264260,omitempty" type:"3,omitempty"` + IntendedBusyStatus *int32 `protobuf:"varint,62,opt,name=intended_busy_status,json=intendedBusyStatus,proto3,oneof" json:"intended_busy_status,omitempty" msg:"264260-3,omitempty"` // Indicates whether the object represents an exception (including an orphan instance). - IsException *bool `protobuf:"varint,63,opt,name=is_exception,json=isException,proto3,oneof" json:"is_exception,omitempty" msg:"10,omitempty" type:"11,omitempty"` + IsException *bool `protobuf:"varint,63,opt,name=is_exception,json=isException,proto3,oneof" json:"is_exception,omitempty" msg:"10-11,omitempty"` // Specifies whether the object is associated with a recurring series. - IsRecurring *bool `protobuf:"varint,64,opt,name=is_recurring,json=isRecurring,proto3,oneof" json:"is_recurring,omitempty" msg:"5,omitempty" type:"11,omitempty"` + IsRecurring *bool `protobuf:"varint,64,opt,name=is_recurring,json=isRecurring,proto3,oneof" json:"is_recurring,omitempty" msg:"5-11,omitempty"` // Indicates whether the user did not include any text in the body of the Meeting Response object. - IsSilent *bool `protobuf:"varint,65,opt,name=is_silent,json=isSilent,proto3,oneof" json:"is_silent,omitempty" msg:"4,omitempty" type:"11,omitempty"` + IsSilent *bool `protobuf:"varint,65,opt,name=is_silent,json=isSilent,proto3,oneof" json:"is_silent,omitempty" msg:"4-11,omitempty"` // Specifies the location of the event. - Location *string `protobuf:"bytes,66,opt,name=location,proto3,oneof" json:"location,omitempty" msg:"264200,omitempty" type:"31,omitempty"` + Location *string `protobuf:"bytes,66,opt,name=location,proto3,oneof" json:"location,omitempty" msg:"264200-31,omitempty"` // Indicates the type of Meeting Request object or Meeting Update object. - MeetingType *int32 `protobuf:"varint,67,opt,name=meeting_type,json=meetingType,proto3,oneof" json:"meeting_type,omitempty" msg:"70,omitempty" type:"3,omitempty"` + MeetingType *int32 `protobuf:"varint,67,opt,name=meeting_type,json=meetingType,proto3,oneof" json:"meeting_type,omitempty" msg:"70-3,omitempty"` // Specifies the URL of the Meeting Workspace that is associated with a Calendar object. - MeetingWorkspaceUrl *string `protobuf:"bytes,68,opt,name=meeting_workspace_url,json=meetingWorkspaceUrl,proto3,oneof" json:"meeting_workspace_url,omitempty" msg:"264201,omitempty" type:"31,omitempty"` + MeetingWorkspaceUrl *string `protobuf:"bytes,68,opt,name=meeting_workspace_url,json=meetingWorkspaceUrl,proto3,oneof" json:"meeting_workspace_url,omitempty" msg:"264201-31,omitempty"` // Indicates the monthly interval of the appointment or meeting. - MonthInterval *int32 `protobuf:"varint,69,opt,name=month_interval,json=monthInterval,proto3,oneof" json:"month_interval,omitempty" msg:"35,omitempty" type:"2,omitempty"` + MonthInterval *int32 `protobuf:"varint,69,opt,name=month_interval,json=monthInterval,proto3,oneof" json:"month_interval,omitempty" msg:"35-2,omitempty"` // Indicates the month of the year in which the appointment or meeting occurs. - MonthOfYear *int32 `protobuf:"varint,70,opt,name=month_of_year,json=monthOfYear,proto3,oneof" json:"month_of_year,omitempty" msg:"32774,omitempty" type:"3,omitempty"` + MonthOfYear *int32 `protobuf:"varint,70,opt,name=month_of_year,json=monthOfYear,proto3,oneof" json:"month_of_year,omitempty" msg:"32774-3,omitempty"` // Indicates the calculated month of the year in which the appointment or meeting occurs. - MonthOfYearMask *int32 `protobuf:"varint,71,opt,name=month_of_year_mask,json=monthOfYearMask,proto3,oneof" json:"month_of_year_mask,omitempty" msg:"39,omitempty" type:"3,omitempty"` + MonthOfYearMask *int32 `protobuf:"varint,71,opt,name=month_of_year_mask,json=monthOfYearMask,proto3,oneof" json:"month_of_year_mask,omitempty" msg:"39-3,omitempty"` // Specifies the URL to be launched when the user joins the meeting. - NetShowUrl *string `protobuf:"bytes,72,opt,name=net_show_url,json=netShowUrl,proto3,oneof" json:"net_show_url,omitempty" msg:"264328,omitempty" type:"31,omitempty"` + NetShowUrl *string `protobuf:"bytes,72,opt,name=net_show_url,json=netShowUrl,proto3,oneof" json:"net_show_url,omitempty" msg:"264328-31,omitempty"` // Indicates whether the recurrence pattern has an end date. - NoEndDateFlag *bool `protobuf:"varint,73,opt,name=no_end_date_flag,json=noEndDateFlag,proto3,oneof" json:"no_end_date_flag,omitempty" msg:"32779,omitempty" type:"11,omitempty"` + NoEndDateFlag *bool `protobuf:"varint,73,opt,name=no_end_date_flag,json=noEndDateFlag,proto3,oneof" json:"no_end_date_flag,omitempty" msg:"32779-11,omitempty"` // Contains a list of all of the unsendable attendees who are also resources. - NonSendableBcc *string `protobuf:"bytes,74,opt,name=non_sendable_bcc,json=nonSendableBcc,proto3,oneof" json:"non_sendable_bcc,omitempty" msg:"267368,omitempty" type:"31,omitempty"` + NonSendableBcc *string `protobuf:"bytes,74,opt,name=non_sendable_bcc,json=nonSendableBcc,proto3,oneof" json:"non_sendable_bcc,omitempty" msg:"267368-31,omitempty"` // Contains a list of all of the unsendable attendees who are also optional attendees. - NonSendableCc *string `protobuf:"bytes,75,opt,name=non_sendable_cc,json=nonSendableCc,proto3,oneof" json:"non_sendable_cc,omitempty" msg:"267367,omitempty" type:"31,omitempty"` + NonSendableCc *string `protobuf:"bytes,75,opt,name=non_sendable_cc,json=nonSendableCc,proto3,oneof" json:"non_sendable_cc,omitempty" msg:"267367-31,omitempty"` // Contains a list of all of the unsendable attendees who are also required attendees. - NonSendableTo *string `protobuf:"bytes,76,opt,name=non_sendable_to,json=nonSendableTo,proto3,oneof" json:"non_sendable_to,omitempty" msg:"267366,omitempty" type:"31,omitempty"` + NonSendableTo *string `protobuf:"bytes,76,opt,name=non_sendable_to,json=nonSendableTo,proto3,oneof" json:"non_sendable_to,omitempty" msg:"267366-31,omitempty"` // Indicates the number of occurrences in the recurring appointment or meeting. - Occurrences *int32 `protobuf:"varint,77,opt,name=occurrences,proto3,oneof" json:"occurrences,omitempty" msg:"32773,omitempty" type:"3,omitempty"` + Occurrences *int32 `protobuf:"varint,77,opt,name=occurrences,proto3,oneof" json:"occurrences,omitempty" msg:"32773-3,omitempty"` // Indicates the original value of the PidLidLocation property (section 2.159) before a meeting update. - OldLocation *string `protobuf:"bytes,78,opt,name=old_location,json=oldLocation,proto3,oneof" json:"old_location,omitempty" msg:"72,omitempty" type:"31,omitempty"` + OldLocation *string `protobuf:"bytes,78,opt,name=old_location,json=oldLocation,proto3,oneof" json:"old_location,omitempty" msg:"72-31,omitempty"` // Indicates the recurrence pattern for the appointment or meeting. - OldRecurrenceType *int32 `protobuf:"varint,79,opt,name=old_recurrence_type,json=oldRecurrenceType,proto3,oneof" json:"old_recurrence_type,omitempty" msg:"40,omitempty" type:"2,omitempty"` + OldRecurrenceType *int32 `protobuf:"varint,79,opt,name=old_recurrence_type,json=oldRecurrenceType,proto3,oneof" json:"old_recurrence_type,omitempty" msg:"40-2,omitempty"` // Indicates the original value of the PidLidAppointmentEndWhole property (section 2.14) before a meeting update. - OldWhenEndWhole *int64 `protobuf:"varint,80,opt,name=old_when_end_whole,json=oldWhenEndWhole,proto3,oneof" json:"old_when_end_whole,omitempty" msg:"74,omitempty" type:"64,omitempty"` + OldWhenEndWhole *int64 `protobuf:"varint,80,opt,name=old_when_end_whole,json=oldWhenEndWhole,proto3,oneof" json:"old_when_end_whole,omitempty" msg:"74-64,omitempty"` // Indicates the original value of the PidLidAppointmentStartWhole property (section 2.29) before a meeting update. - OldWhenStartWhole *int64 `protobuf:"varint,81,opt,name=old_when_start_whole,json=oldWhenStartWhole,proto3,oneof" json:"old_when_start_whole,omitempty" msg:"73,omitempty" type:"64,omitempty"` + OldWhenStartWhole *int64 `protobuf:"varint,81,opt,name=old_when_start_whole,json=oldWhenStartWhole,proto3,oneof" json:"old_when_start_whole,omitempty" msg:"73-64,omitempty"` // Specifies the password for a meeting on which the PidLidConferencingType property (section 2.66) has the value 0x00000002. - OnlinePassword *string `protobuf:"bytes,82,opt,name=online_password,json=onlinePassword,proto3,oneof" json:"online_password,omitempty" msg:"264329,omitempty" type:"31,omitempty"` + OnlinePassword *string `protobuf:"bytes,82,opt,name=online_password,json=onlinePassword,proto3,oneof" json:"online_password,omitempty" msg:"264329-31,omitempty"` // Specifies optional attendees. - OptionalAttendees *string `protobuf:"bytes,83,opt,name=optional_attendees,json=optionalAttendees,proto3,oneof" json:"optional_attendees,omitempty" msg:"7,omitempty" type:"31,omitempty"` + OptionalAttendees *string `protobuf:"bytes,83,opt,name=optional_attendees,json=optionalAttendees,proto3,oneof" json:"optional_attendees,omitempty" msg:"7-31,omitempty"` // Specifies the email address of the organizer. - OrganizerAlias *string `protobuf:"bytes,84,opt,name=organizer_alias,json=organizerAlias,proto3,oneof" json:"organizer_alias,omitempty" msg:"264323,omitempty" type:"31,omitempty"` + OrganizerAlias *string `protobuf:"bytes,84,opt,name=organizer_alias,json=organizerAlias,proto3,oneof" json:"organizer_alias,omitempty" msg:"264323-31,omitempty"` // Specifies the date and time at which a Meeting Request object was sent by the organizer. - OwnerCriticalChange *int64 `protobuf:"varint,86,opt,name=owner_critical_change,json=ownerCriticalChange,proto3,oneof" json:"owner_critical_change,omitempty" msg:"42,omitempty" type:"64,omitempty"` + OwnerCriticalChange *int64 `protobuf:"varint,86,opt,name=owner_critical_change,json=ownerCriticalChange,proto3,oneof" json:"owner_critical_change,omitempty" msg:"42-64,omitempty"` // Indicates the name of the owner of the mailbox. - OwnerName *string `protobuf:"bytes,87,opt,name=owner_name,json=ownerName,proto3,oneof" json:"owner_name,omitempty" msg:"264270,omitempty" type:"31,omitempty"` + OwnerName *string `protobuf:"bytes,87,opt,name=owner_name,json=ownerName,proto3,oneof" json:"owner_name,omitempty" msg:"264270-31,omitempty"` // Identifies the length, in minutes, of the appointment or meeting. - RecurrenceDuration *int32 `protobuf:"varint,88,opt,name=recurrence_duration,json=recurrenceDuration,proto3,oneof" json:"recurrence_duration,omitempty" msg:"32781,omitempty" type:"3,omitempty"` + RecurrenceDuration *int32 `protobuf:"varint,88,opt,name=recurrence_duration,json=recurrenceDuration,proto3,oneof" json:"recurrence_duration,omitempty" msg:"32781-3,omitempty"` // Specifies a description of the recurrence pattern of the Calendar object. - RecurrencePattern *string `protobuf:"bytes,89,opt,name=recurrence_pattern,json=recurrencePattern,proto3,oneof" json:"recurrence_pattern,omitempty" msg:"264290,omitempty" type:"31,omitempty"` + RecurrencePattern *string `protobuf:"bytes,89,opt,name=recurrence_pattern,json=recurrencePattern,proto3,oneof" json:"recurrence_pattern,omitempty" msg:"264290-31,omitempty"` // Specifies the recurrence type of the recurring series. - RecurrenceType *int32 `protobuf:"varint,90,opt,name=recurrence_type,json=recurrenceType,proto3,oneof" json:"recurrence_type,omitempty" msg:"264289,omitempty" type:"3,omitempty"` + RecurrenceType *int32 `protobuf:"varint,90,opt,name=recurrence_type,json=recurrenceType,proto3,oneof" json:"recurrence_type,omitempty" msg:"264289-3,omitempty"` // Specifies whether the object represents a recurring series. - Recurring *bool `protobuf:"varint,91,opt,name=recurring,proto3,oneof" json:"recurring,omitempty" msg:"264259,omitempty" type:"11,omitempty"` + Recurring *bool `protobuf:"varint,91,opt,name=recurring,proto3,oneof" json:"recurring,omitempty" msg:"264259-11,omitempty"` // Specifies the interval, in minutes, between the time at which the reminder first becomes overdue and the start time of the Calendar object. - ReminderDelta *int32 `protobuf:"varint,92,opt,name=reminder_delta,json=reminderDelta,proto3,oneof" json:"reminder_delta,omitempty" msg:"267265,omitempty" type:"3,omitempty"` + ReminderDelta *int32 `protobuf:"varint,92,opt,name=reminder_delta,json=reminderDelta,proto3,oneof" json:"reminder_delta,omitempty" msg:"267265-3,omitempty"` // Specifies the filename of the sound that a client is to play when the reminder for that object becomes overdue. - ReminderFileParameter *string `protobuf:"bytes,93,opt,name=reminder_file_parameter,json=reminderFileParameter,proto3,oneof" json:"reminder_file_parameter,omitempty" msg:"267311,omitempty" type:"31,omitempty"` + ReminderFileParameter *string `protobuf:"bytes,93,opt,name=reminder_file_parameter,json=reminderFileParameter,proto3,oneof" json:"reminder_file_parameter,omitempty" msg:"267311-31,omitempty"` // Specifies whether the client is to respect the current values of the PidLidReminderPlaySound property (section 2.221) and the PidLidReminderFileParameter property (section 2.219), or use the default values for those properties. - ReminderOverride *bool `protobuf:"varint,94,opt,name=reminder_override,json=reminderOverride,proto3,oneof" json:"reminder_override,omitempty" msg:"267308,omitempty" type:"11,omitempty"` + ReminderOverride *bool `protobuf:"varint,94,opt,name=reminder_override,json=reminderOverride,proto3,oneof" json:"reminder_override,omitempty" msg:"267308-11,omitempty"` // Specifies whether the client is to play a sound when the reminder becomes overdue. - ReminderPlaySound *bool `protobuf:"varint,95,opt,name=reminder_play_sound,json=reminderPlaySound,proto3,oneof" json:"reminder_play_sound,omitempty" msg:"267310,omitempty" type:"11,omitempty"` + ReminderPlaySound *bool `protobuf:"varint,95,opt,name=reminder_play_sound,json=reminderPlaySound,proto3,oneof" json:"reminder_play_sound,omitempty" msg:"267310-11,omitempty"` // Specifies whether a reminder is set on the object. - ReminderSet *bool `protobuf:"varint,96,opt,name=reminder_set,json=reminderSet,proto3,oneof" json:"reminder_set,omitempty" msg:"267267,omitempty" type:"11,omitempty"` + ReminderSet *bool `protobuf:"varint,96,opt,name=reminder_set,json=reminderSet,proto3,oneof" json:"reminder_set,omitempty" msg:"267267-11,omitempty"` // Specifies the point in time when a reminder transitions from pending to overdue. - ReminderSignalTime *int64 `protobuf:"varint,97,opt,name=reminder_signal_time,json=reminderSignalTime,proto3,oneof" json:"reminder_signal_time,omitempty" msg:"267456,omitempty" type:"64,omitempty"` + ReminderSignalTime *int64 `protobuf:"varint,97,opt,name=reminder_signal_time,json=reminderSignalTime,proto3,oneof" json:"reminder_signal_time,omitempty" msg:"267456-64,omitempty"` // Specifies the initial signal time for objects that are not Calendar objects. - ReminderTime *int64 `protobuf:"varint,98,opt,name=reminder_time,json=reminderTime,proto3,oneof" json:"reminder_time,omitempty" msg:"267266,omitempty" type:"64,omitempty"` + ReminderTime *int64 `protobuf:"varint,98,opt,name=reminder_time,json=reminderTime,proto3,oneof" json:"reminder_time,omitempty" msg:"267266-64,omitempty"` // Indicates the time and date of the reminder for the appointment or meeting. - ReminderTimeDate *int64 `protobuf:"varint,99,opt,name=reminder_time_date,json=reminderTimeDate,proto3,oneof" json:"reminder_time_date,omitempty" msg:"267269,omitempty" type:"64,omitempty"` + ReminderTimeDate *int64 `protobuf:"varint,99,opt,name=reminder_time_date,json=reminderTimeDate,proto3,oneof" json:"reminder_time_date,omitempty" msg:"267269-64,omitempty"` // Indicates the time of the reminder for the appointment or meeting. - ReminderTimeTime *int64 `protobuf:"varint,100,opt,name=reminder_time_time,json=reminderTimeTime,proto3,oneof" json:"reminder_time_time,omitempty" msg:"267268,omitempty" type:"64,omitempty"` + ReminderTimeTime *int64 `protobuf:"varint,100,opt,name=reminder_time_time,json=reminderTimeTime,proto3,oneof" json:"reminder_time_time,omitempty" msg:"267268-64,omitempty"` // This property is not set and, if set, is ignored. - ReminderType *int32 `protobuf:"varint,101,opt,name=reminder_type,json=reminderType,proto3,oneof" json:"reminder_type,omitempty" msg:"267309,omitempty" type:"3,omitempty"` + ReminderType *int32 `protobuf:"varint,101,opt,name=reminder_type,json=reminderType,proto3,oneof" json:"reminder_type,omitempty" msg:"267309-3,omitempty"` // Identifies required attendees for the appointment or meeting. - RequiredAttendees *string `protobuf:"bytes,102,opt,name=required_attendees,json=requiredAttendees,proto3,oneof" json:"required_attendees,omitempty" msg:"6,omitempty" type:"31,omitempty"` + RequiredAttendees *string `protobuf:"bytes,102,opt,name=required_attendees,json=requiredAttendees,proto3,oneof" json:"required_attendees,omitempty" msg:"6-31,omitempty"` // Identifies resource attendees for the appointment or meeting. - ResourceAttendees *string `protobuf:"bytes,103,opt,name=resource_attendees,json=resourceAttendees,proto3,oneof" json:"resource_attendees,omitempty" msg:"8,omitempty" type:"31,omitempty"` + ResourceAttendees *string `protobuf:"bytes,103,opt,name=resource_attendees,json=resourceAttendees,proto3,oneof" json:"resource_attendees,omitempty" msg:"8-31,omitempty"` // Specifies the response status of an attendee. - ResponseStatus *int32 `protobuf:"varint,104,opt,name=response_status,json=responseStatus,proto3,oneof" json:"response_status,omitempty" msg:"264232,omitempty" type:"3,omitempty"` + ResponseStatus *int32 `protobuf:"varint,104,opt,name=response_status,json=responseStatus,proto3,oneof" json:"response_status,omitempty" msg:"264232-3,omitempty"` // Indicates whether the Meeting Request object or Meeting Update object has been processed. - ServerProcessed *bool `protobuf:"varint,105,opt,name=server_processed,json=serverProcessed,proto3,oneof" json:"server_processed,omitempty" msg:"267660,omitempty" type:"11,omitempty"` + ServerProcessed *bool `protobuf:"varint,105,opt,name=server_processed,json=serverProcessed,proto3,oneof" json:"server_processed,omitempty" msg:"267660-11,omitempty"` // Indicates what processing actions have been taken on this Meeting Request object or Meeting Update object. - ServerProcessingActions *int32 `protobuf:"varint,106,opt,name=server_processing_actions,json=serverProcessingActions,proto3,oneof" json:"server_processing_actions,omitempty" msg:"267661,omitempty" type:"3,omitempty"` + ServerProcessingActions *int32 `protobuf:"varint,106,opt,name=server_processing_actions,json=serverProcessingActions,proto3,oneof" json:"server_processing_actions,omitempty" msg:"267661-3,omitempty"` // Indicates that the original MIME message contained a single MIME part. - SingleBodyiCal *bool `protobuf:"varint,107,opt,name=single_bodyi_cal,json=singleBodyiCal,proto3,oneof" json:"single_bodyi_cal,omitempty" msg:"264427,omitempty" type:"11,omitempty"` + SingleBodyiCal *bool `protobuf:"varint,107,opt,name=single_bodyi_cal,json=singleBodyiCal,proto3,oneof" json:"single_bodyi_cal,omitempty" msg:"264427-11,omitempty"` // Identifies the start date of the recurrence pattern. - StartRecurrenceDate *int32 `protobuf:"varint,108,opt,name=start_recurrence_date,json=startRecurrenceDate,proto3,oneof" json:"start_recurrence_date,omitempty" msg:"13,omitempty" type:"3,omitempty"` + StartRecurrenceDate *int32 `protobuf:"varint,108,opt,name=start_recurrence_date,json=startRecurrenceDate,proto3,oneof" json:"start_recurrence_date,omitempty" msg:"13-3,omitempty"` // Identifies the start time of the recurrence pattern. - StartRecurrenceTime *int32 `protobuf:"varint,109,opt,name=start_recurrence_time,json=startRecurrenceTime,proto3,oneof" json:"start_recurrence_time,omitempty" msg:"14,omitempty" type:"3,omitempty"` + StartRecurrenceTime *int32 `protobuf:"varint,109,opt,name=start_recurrence_time,json=startRecurrenceTime,proto3,oneof" json:"start_recurrence_time,omitempty" msg:"14-3,omitempty"` // Specifies information about the time zone of a recurring meeting. - TimeZone *int32 `protobuf:"varint,110,opt,name=time_zone,json=timeZone,proto3,oneof" json:"time_zone,omitempty" msg:"12,omitempty" type:"3,omitempty"` + TimeZone *int32 `protobuf:"varint,110,opt,name=time_zone,json=timeZone,proto3,oneof" json:"time_zone,omitempty" msg:"12-3,omitempty"` // Specifies a human-readable description of the time zone that is represented by the data in the PidLidTimeZoneStruct property (section 2.342). - TimeZoneDescription *string `protobuf:"bytes,111,opt,name=time_zone_description,json=timeZoneDescription,proto3,oneof" json:"time_zone_description,omitempty" msg:"264292,omitempty" type:"31,omitempty"` + TimeZoneDescription *string `protobuf:"bytes,111,opt,name=time_zone_description,json=timeZoneDescription,proto3,oneof" json:"time_zone_description,omitempty" msg:"264292-31,omitempty"` // Contains a list of all of the sendable attendees who are also required attendees. - ToAttendeesString *string `protobuf:"bytes,113,opt,name=to_attendees_string,json=toAttendeesString,proto3,oneof" json:"to_attendees_string,omitempty" msg:"264299,omitempty" type:"31,omitempty"` + ToAttendeesString *string `protobuf:"bytes,113,opt,name=to_attendees_string,json=toAttendeesString,proto3,oneof" json:"to_attendees_string,omitempty" msg:"264299-31,omitempty"` // Identifies the number of weeks that occur between each meeting. - WeekInterval *int32 `protobuf:"varint,114,opt,name=week_interval,json=weekInterval,proto3,oneof" json:"week_interval,omitempty" msg:"34,omitempty" type:"2,omitempty"` + WeekInterval *int32 `protobuf:"varint,114,opt,name=week_interval,json=weekInterval,proto3,oneof" json:"week_interval,omitempty" msg:"34-2,omitempty"` // Contains the value of the PidLidLocation property (section 2.159) from the associated Meeting object. - Where *string `protobuf:"bytes,115,opt,name=where,proto3,oneof" json:"where,omitempty" msg:"2,omitempty" type:"31,omitempty"` + Where *string `protobuf:"bytes,115,opt,name=where,proto3,oneof" json:"where,omitempty" msg:"2-31,omitempty"` // Indicates the yearly interval of the appointment or meeting. - YearInterval *int32 `protobuf:"varint,116,opt,name=year_interval,json=yearInterval,proto3,oneof" json:"year_interval,omitempty" msg:"36,omitempty" type:"2,omitempty"` + YearInterval *int32 `protobuf:"varint,116,opt,name=year_interval,json=yearInterval,proto3,oneof" json:"year_interval,omitempty" msg:"36-2,omitempty"` LocationUrl *string `protobuf:"bytes,117,opt,name=location_url,json=locationUrl,proto3,oneof" json:"location_url,omitempty"` // Specifies whether to allow the meeting to be forwarded. MeetingDoNotForward *bool `protobuf:"varint,118,opt,name=meeting_do_not_forward,json=meetingDoNotForward,proto3,oneof" json:"meeting_do_not_forward,omitempty"` // Specifies the end time, in UTC, of the publishing range. - FreeBusyPublishEnd *int32 `protobuf:"varint,119,opt,name=free_busy_publish_end,json=freeBusyPublishEnd,proto3,oneof" json:"free_busy_publish_end,omitempty" msg:"26696,omitempty" type:"3,omitempty"` + FreeBusyPublishEnd *int32 `protobuf:"varint,119,opt,name=free_busy_publish_end,json=freeBusyPublishEnd,proto3,oneof" json:"free_busy_publish_end,omitempty" msg:"26696-3,omitempty"` // Specifies the start time, in UTC, of the publishing range. - FreeBusyPublishStart *int32 `protobuf:"varint,120,opt,name=free_busy_publish_start,json=freeBusyPublishStart,proto3,oneof" json:"free_busy_publish_start,omitempty" msg:"26695,omitempty" type:"3,omitempty"` + FreeBusyPublishStart *int32 `protobuf:"varint,120,opt,name=free_busy_publish_start,json=freeBusyPublishStart,proto3,oneof" json:"free_busy_publish_start,omitempty" msg:"26695-3,omitempty"` // Specifies the time, in UTC, that the data was published. - FreeBusyRangeTimestamp *int64 `protobuf:"varint,121,opt,name=free_busy_range_timestamp,json=freeBusyRangeTimestamp,proto3,oneof" json:"free_busy_range_timestamp,omitempty" msg:"26728,omitempty" type:"64,omitempty"` + FreeBusyRangeTimestamp *int64 `protobuf:"varint,121,opt,name=free_busy_range_timestamp,json=freeBusyRangeTimestamp,proto3,oneof" json:"free_busy_range_timestamp,omitempty" msg:"26728-64,omitempty"` // Contains the date and time, in UTC, when an appointment or meeting ends. - ICalendarEndTime *int64 `protobuf:"varint,122,opt,name=i_calendar_end_time,json=iCalendarEndTime,proto3,oneof" json:"i_calendar_end_time,omitempty" msg:"4292,omitempty" type:"64,omitempty"` + ICalendarEndTime *int64 `protobuf:"varint,122,opt,name=i_calendar_end_time,json=iCalendarEndTime,proto3,oneof" json:"i_calendar_end_time,omitempty" msg:"4292-64,omitempty"` // Contains the date and time, in UTC, for the activation of the next reminder. - ICalendarReminderNextTime *int64 `protobuf:"varint,123,opt,name=i_calendar_reminder_next_time,json=iCalendarReminderNextTime,proto3,oneof" json:"i_calendar_reminder_next_time,omitempty" msg:"4298,omitempty" type:"64,omitempty"` + ICalendarReminderNextTime *int64 `protobuf:"varint,123,opt,name=i_calendar_reminder_next_time,json=iCalendarReminderNextTime,proto3,oneof" json:"i_calendar_reminder_next_time,omitempty" msg:"4298-64,omitempty"` // Indicates whether a client has already processed a received task communication. - Processed *bool `protobuf:"varint,124,opt,name=processed,proto3,oneof" json:"processed,omitempty" msg:"32001,omitempty" type:"11,omitempty"` + Processed *bool `protobuf:"varint,124,opt,name=processed,proto3,oneof" json:"processed,omitempty" msg:"32001-11,omitempty"` // Indicates whether a client or server is to automatically respond to all meeting requests for the attendee or resource. - ScheduleInfoAutoAcceptAppointments *bool `protobuf:"varint,126,opt,name=schedule_info_auto_accept_appointments,json=scheduleInfoAutoAcceptAppointments,proto3,oneof" json:"schedule_info_auto_accept_appointments,omitempty" msg:"26733,omitempty" type:"11,omitempty"` + ScheduleInfoAutoAcceptAppointments *bool `protobuf:"varint,126,opt,name=schedule_info_auto_accept_appointments,json=scheduleInfoAutoAcceptAppointments,proto3,oneof" json:"schedule_info_auto_accept_appointments,omitempty" msg:"26733-11,omitempty"` // Indicates whether the delegator wants to receive copies of the meeting-related objects that are sent to the delegate. - ScheduleInfoDelegatorWantsCopy *bool `protobuf:"varint,130,opt,name=schedule_info_delegator_wants_copy,json=scheduleInfoDelegatorWantsCopy,proto3,oneof" json:"schedule_info_delegator_wants_copy,omitempty" msg:"26690,omitempty" type:"11,omitempty"` + ScheduleInfoDelegatorWantsCopy *bool `protobuf:"varint,130,opt,name=schedule_info_delegator_wants_copy,json=scheduleInfoDelegatorWantsCopy,proto3,oneof" json:"schedule_info_delegator_wants_copy,omitempty" msg:"26690-11,omitempty"` // Indicates whether the delegator wants to receive informational updates. - ScheduleInfoDelegatorWantsInfo *bool `protobuf:"varint,131,opt,name=schedule_info_delegator_wants_info,json=scheduleInfoDelegatorWantsInfo,proto3,oneof" json:"schedule_info_delegator_wants_info,omitempty" msg:"26699,omitempty" type:"11,omitempty"` + ScheduleInfoDelegatorWantsInfo *bool `protobuf:"varint,131,opt,name=schedule_info_delegator_wants_info,json=scheduleInfoDelegatorWantsInfo,proto3,oneof" json:"schedule_info_delegator_wants_info,omitempty" msg:"26699-11,omitempty"` // Indicates whether a client or server, when automatically responding to meeting requests, is to decline Meeting Request objects that overlap with previously scheduled events. - ScheduleInfoDisallowOverlappingAppts *bool `protobuf:"varint,132,opt,name=schedule_info_disallow_overlapping_appts,json=scheduleInfoDisallowOverlappingAppts,proto3,oneof" json:"schedule_info_disallow_overlapping_appts,omitempty" msg:"26735,omitempty" type:"11,omitempty"` + ScheduleInfoDisallowOverlappingAppts *bool `protobuf:"varint,132,opt,name=schedule_info_disallow_overlapping_appts,json=scheduleInfoDisallowOverlappingAppts,proto3,oneof" json:"schedule_info_disallow_overlapping_appts,omitempty" msg:"26735-11,omitempty"` // Indicates whether a client or server, when automatically responding to meeting requests, is to decline Meeting Request objects that represent a recurring series. - ScheduleInfoDisallowRecurringAppts *bool `protobuf:"varint,133,opt,name=schedule_info_disallow_recurring_appts,json=scheduleInfoDisallowRecurringAppts,proto3,oneof" json:"schedule_info_disallow_recurring_appts,omitempty" msg:"26734,omitempty" type:"11,omitempty"` + ScheduleInfoDisallowRecurringAppts *bool `protobuf:"varint,133,opt,name=schedule_info_disallow_recurring_appts,json=scheduleInfoDisallowRecurringAppts,proto3,oneof" json:"schedule_info_disallow_recurring_appts,omitempty" msg:"26734-11,omitempty"` // Contains a value set to TRUE by the client, regardless of user input. - ScheduleInfoDontMailDelegates *bool `protobuf:"varint,134,opt,name=schedule_info_dont_mail_delegates,json=scheduleInfoDontMailDelegates,proto3,oneof" json:"schedule_info_dont_mail_delegates,omitempty" msg:"26691,omitempty" type:"11,omitempty"` + ScheduleInfoDontMailDelegates *bool `protobuf:"varint,134,opt,name=schedule_info_dont_mail_delegates,json=scheduleInfoDontMailDelegates,proto3,oneof" json:"schedule_info_dont_mail_delegates,omitempty" msg:"26691-11,omitempty"` // Set to 0x00000000 when sending and is ignored on receipt. - ScheduleInfoResourceType *int32 `protobuf:"varint,144,opt,name=schedule_info_resource_type,json=scheduleInfoResourceType,proto3,oneof" json:"schedule_info_resource_type,omitempty" msg:"26689,omitempty" type:"3,omitempty"` + ScheduleInfoResourceType *int32 `protobuf:"varint,144,opt,name=schedule_info_resource_type,json=scheduleInfoResourceType,proto3,oneof" json:"schedule_info_resource_type,omitempty" msg:"26689-3,omitempty"` } func (x *Appointment) Reset() { diff --git a/pkg/properties/appointment.pb_gen.go b/pkg/properties/appointment.pb_gen.go index af7d343..b74bdf0 100644 --- a/pkg/properties/appointment.pb_gen.go +++ b/pkg/properties/appointment.pb_gen.go @@ -24,7 +24,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "264296": + case "264296-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264326": + case "264326-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264199": + case "264199-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264228": + case "264228-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264359": + case "264359-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264227": + case "264227-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264225": + case "264225-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264224": + case "264224-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264206": + case "264206-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264195": + case "264195-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "68": + case "68-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264362": + case "264362-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264361": + case "264361-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264358": + case "264358-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264353": + case "264353-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -294,7 +294,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264352": + case "264352-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -312,7 +312,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264288": + case "264288-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -330,7 +330,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264256": + case "264256-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -348,7 +348,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264193": + case "264193-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -366,7 +366,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264194": + case "264194-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -384,7 +384,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264226": + case "264226-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -402,7 +402,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264207": + case "264207-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -420,7 +420,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264205": + case "264205-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -438,7 +438,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264231": + case "264231-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -456,7 +456,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264229": + case "264229-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -474,7 +474,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264262": + case "264262-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -492,7 +492,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "1": + case "1-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -510,7 +510,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264298": + case "264298-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -528,7 +528,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264324": + case "264324-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -546,7 +546,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264197": + case "264197-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -564,7 +564,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "44": + case "44-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -582,7 +582,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264300": + case "264300-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -600,7 +600,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264196": + case "264196-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -618,7 +618,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "37": + case "37-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -636,7 +636,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264294": + case "264294-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -654,7 +654,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264293": + case "264293-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -672,7 +672,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264327": + case "264327-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -690,7 +690,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264320": + case "264320-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -708,7 +708,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264321": + case "264321-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -726,7 +726,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "33": + case "33-2": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -744,7 +744,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32768": + case "32768-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -762,7 +762,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "9": + case "9-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -780,7 +780,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264322": + case "264322-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -798,7 +798,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "15": + case "15-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -816,7 +816,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32": + case "32-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -834,7 +834,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264264": + case "264264-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -852,7 +852,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264267": + case "264267-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -870,7 +870,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264198": + case "264198-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -888,7 +888,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264265": + case "264265-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -906,7 +906,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264202": + case "264202-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -924,7 +924,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264271": + case "264271-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -942,7 +942,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32769": + case "32769-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -960,7 +960,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264260": + case "264260-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -978,7 +978,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "10": + case "10-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -996,7 +996,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "5": + case "5-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1014,7 +1014,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4": + case "4-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1032,7 +1032,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264200": + case "264200-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1050,7 +1050,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "70": + case "70-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1068,7 +1068,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264201": + case "264201-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1086,7 +1086,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35": + case "35-2": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1104,7 +1104,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32774": + case "32774-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1122,7 +1122,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "39": + case "39-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1140,7 +1140,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264328": + case "264328-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1158,7 +1158,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32779": + case "32779-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1176,7 +1176,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267368": + case "267368-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1194,7 +1194,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267367": + case "267367-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1212,7 +1212,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267366": + case "267366-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1230,7 +1230,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32773": + case "32773-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1248,7 +1248,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "72": + case "72-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1266,7 +1266,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "40": + case "40-2": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1284,7 +1284,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "74": + case "74-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1302,7 +1302,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "73": + case "73-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1320,7 +1320,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264329": + case "264329-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1338,7 +1338,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "7": + case "7-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1356,7 +1356,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264323": + case "264323-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1374,7 +1374,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "42": + case "42-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1392,7 +1392,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264270": + case "264270-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1410,7 +1410,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32781": + case "32781-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1428,7 +1428,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264290": + case "264290-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1446,7 +1446,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264289": + case "264289-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1464,7 +1464,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264259": + case "264259-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1482,7 +1482,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267265": + case "267265-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1500,7 +1500,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267311": + case "267311-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1518,7 +1518,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267308": + case "267308-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1536,7 +1536,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267310": + case "267310-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1554,7 +1554,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267267": + case "267267-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1572,7 +1572,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267456": + case "267456-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1590,7 +1590,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267266": + case "267266-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1608,7 +1608,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267269": + case "267269-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1626,7 +1626,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267268": + case "267268-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1644,7 +1644,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267309": + case "267309-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1662,7 +1662,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "6": + case "6-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1680,7 +1680,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "8": + case "8-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1698,7 +1698,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264232": + case "264232-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1716,7 +1716,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267660": + case "267660-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1734,7 +1734,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267661": + case "267661-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1752,7 +1752,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264427": + case "264427-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1770,7 +1770,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "13": + case "13-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1788,7 +1788,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14": + case "14-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1806,7 +1806,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "12": + case "12-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1824,7 +1824,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264292": + case "264292-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1842,7 +1842,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "264299": + case "264299-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1860,7 +1860,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "34": + case "34-2": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1878,7 +1878,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2": + case "2-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1896,7 +1896,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "36": + case "36-2": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1950,7 +1950,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26696": + case "26696-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1968,7 +1968,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26695": + case "26695-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1986,7 +1986,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26728": + case "26728-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2004,7 +2004,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4292": + case "4292-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2022,7 +2022,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4298": + case "4298-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2040,7 +2040,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32001": + case "32001-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2058,7 +2058,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26733": + case "26733-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2076,7 +2076,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26690": + case "26690-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2094,7 +2094,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26699": + case "26699-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2112,7 +2112,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26735": + case "26735-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2130,7 +2130,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26734": + case "26734-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2148,7 +2148,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26691": + case "26691-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2166,7 +2166,7 @@ func (z *Appointment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26689": + case "26689-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2681,8 +2681,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // write "264296" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x36) + // write "264296-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2700,8 +2700,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // write "264326" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x36) + // write "264326-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x36, 0x2d, 0x31, 0x31) if err != nil { return } @@ -2719,8 +2719,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // write "264199" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x39) + // write "264199-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x39, 0x2d, 0x33) if err != nil { return } @@ -2738,8 +2738,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // write "264228" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x38) + // write "264228-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x32, 0x38, 0x2d, 0x33) if err != nil { return } @@ -2757,8 +2757,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // write "264359" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x39) + // write "264359-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x33, 0x35, 0x39, 0x2d, 0x31, 0x31) if err != nil { return } @@ -2776,8 +2776,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // write "264227" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x37) + // write "264227-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x32, 0x37, 0x2d, 0x33) if err != nil { return } @@ -2795,8 +2795,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // write "264225" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x35) + // write "264225-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x32, 0x35, 0x2d, 0x36, 0x34) if err != nil { return } @@ -2814,8 +2814,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // write "264224" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x34) + // write "264224-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x32, 0x34, 0x2d, 0x36, 0x34) if err != nil { return } @@ -2833,8 +2833,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // write "264206" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x36) + // write "264206-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x30, 0x36, 0x2d, 0x36, 0x34) if err != nil { return } @@ -2852,8 +2852,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // write "264195" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x35) + // write "264195-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x35, 0x2d, 0x33) if err != nil { return } @@ -2871,8 +2871,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // write "68" - err = en.Append(0xa2, 0x36, 0x38) + // write "68-31" + err = en.Append(0xa5, 0x36, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2890,8 +2890,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // write "264362" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x36, 0x32) + // write "264362-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x33, 0x36, 0x32, 0x2d, 0x31, 0x31) if err != nil { return } @@ -2909,8 +2909,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // write "264361" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x36, 0x31) + // write "264361-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x36, 0x31, 0x2d, 0x33) if err != nil { return } @@ -2928,8 +2928,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // write "264358" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x38) + // write "264358-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x35, 0x38, 0x2d, 0x33) if err != nil { return } @@ -2947,8 +2947,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // write "264353" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x33) + // write "264353-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x33, 0x35, 0x33, 0x2d, 0x36, 0x34) if err != nil { return } @@ -2966,8 +2966,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000) == 0 { // if not empty - // write "264352" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x32) + // write "264352-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x33, 0x35, 0x32, 0x2d, 0x36, 0x34) if err != nil { return } @@ -2985,8 +2985,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000) == 0 { // if not empty - // write "264288" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x38, 0x38) + // write "264288-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x38, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3004,8 +3004,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000) == 0 { // if not empty - // write "264256" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x35, 0x36) + // write "264256-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x35, 0x36, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3023,8 +3023,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000) == 0 { // if not empty - // write "264193" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x33) + // write "264193-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x33, 0x2d, 0x33) if err != nil { return } @@ -3042,8 +3042,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000) == 0 { // if not empty - // write "264194" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x34) + // write "264194-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x31, 0x39, 0x34, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3061,8 +3061,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000) == 0 { // if not empty - // write "264226" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x36) + // write "264226-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x32, 0x36, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3080,8 +3080,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000) == 0 { // if not empty - // write "264207" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x37) + // write "264207-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x30, 0x37, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3099,8 +3099,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000) == 0 { // if not empty - // write "264205" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x35) + // write "264205-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x30, 0x35, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3118,8 +3118,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000) == 0 { // if not empty - // write "264231" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x33, 0x31) + // write "264231-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x33, 0x31, 0x2d, 0x33) if err != nil { return } @@ -3137,8 +3137,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000) == 0 { // if not empty - // write "264229" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x39) + // write "264229-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x32, 0x39, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3156,8 +3156,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // write "264262" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x32) + // write "264262-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x36, 0x32, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3175,8 +3175,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // write "1" - err = en.Append(0xa1, 0x31) + // write "1-64" + err = en.Append(0xa4, 0x31, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3194,8 +3194,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // write "264298" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x38) + // write "264298-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x38, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3213,8 +3213,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // write "264324" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x34) + // write "264324-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x34, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3232,8 +3232,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // write "264197" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x37) + // write "264197-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x37, 0x2d, 0x33) if err != nil { return } @@ -3251,8 +3251,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // write "44" - err = en.Append(0xa2, 0x34, 0x34) + // write "44-3" + err = en.Append(0xa4, 0x34, 0x34, 0x2d, 0x33) if err != nil { return } @@ -3270,8 +3270,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // write "264300" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x30, 0x30) + // write "264300-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x33, 0x30, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3289,8 +3289,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // write "264196" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x36) + // write "264196-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x36, 0x2d, 0x33) if err != nil { return } @@ -3308,8 +3308,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // write "37" - err = en.Append(0xa2, 0x33, 0x37) + // write "37-3" + err = en.Append(0xa4, 0x33, 0x37, 0x2d, 0x33) if err != nil { return } @@ -3327,8 +3327,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // write "264294" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x34) + // write "264294-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x34, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3346,8 +3346,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // write "264293" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x33) + // write "264293-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x33, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3365,8 +3365,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // write "264327" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x37) + // write "264327-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3384,8 +3384,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // write "264320" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x30) + // write "264320-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x30, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3403,8 +3403,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // write "264321" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x31) + // write "264321-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x31, 0x2d, 0x33) if err != nil { return } @@ -3422,8 +3422,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // write "33" - err = en.Append(0xa2, 0x33, 0x33) + // write "33-2" + err = en.Append(0xa4, 0x33, 0x33, 0x2d, 0x32) if err != nil { return } @@ -3441,8 +3441,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // write "32768" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x36, 0x38) + // write "32768-3" + err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x36, 0x38, 0x2d, 0x33) if err != nil { return } @@ -3460,8 +3460,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // write "9" - err = en.Append(0xa1, 0x39) + // write "9-11" + err = en.Append(0xa4, 0x39, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3479,8 +3479,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // write "264322" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x32) + // write "264322-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3498,8 +3498,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // write "15" - err = en.Append(0xa2, 0x31, 0x35) + // write "15-3" + err = en.Append(0xa4, 0x31, 0x35, 0x2d, 0x33) if err != nil { return } @@ -3517,8 +3517,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // write "32" - err = en.Append(0xa2, 0x33, 0x32) + // write "32-3" + err = en.Append(0xa4, 0x33, 0x32, 0x2d, 0x33) if err != nil { return } @@ -3536,8 +3536,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // write "264264" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x34) + // write "264264-64" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x36, 0x34, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3555,8 +3555,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // write "264267" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x37) + // write "264267-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x36, 0x37, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3574,8 +3574,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // write "264198" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x38) + // write "264198-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x31, 0x39, 0x38, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3593,8 +3593,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // write "264265" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x35) + // write "264265-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x36, 0x35, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3612,8 +3612,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // write "264202" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x32) + // write "264202-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x30, 0x32, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3631,8 +3631,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // write "264271" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x37, 0x31) + // write "264271-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x37, 0x31, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3650,8 +3650,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // write "32769" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x36, 0x39) + // write "32769-3" + err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x36, 0x39, 0x2d, 0x33) if err != nil { return } @@ -3669,8 +3669,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // write "264260" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x30) + // write "264260-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x36, 0x30, 0x2d, 0x33) if err != nil { return } @@ -3688,8 +3688,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // write "10" - err = en.Append(0xa2, 0x31, 0x30) + // write "10-11" + err = en.Append(0xa5, 0x31, 0x30, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3707,8 +3707,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // write "5" - err = en.Append(0xa1, 0x35) + // write "5-11" + err = en.Append(0xa4, 0x35, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3726,8 +3726,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000000) == 0 { // if not empty - // write "4" - err = en.Append(0xa1, 0x34) + // write "4-11" + err = en.Append(0xa4, 0x34, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3745,8 +3745,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000000) == 0 { // if not empty - // write "264200" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x30) + // write "264200-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x30, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3764,8 +3764,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000000) == 0 { // if not empty - // write "70" - err = en.Append(0xa2, 0x37, 0x30) + // write "70-3" + err = en.Append(0xa4, 0x37, 0x30, 0x2d, 0x33) if err != nil { return } @@ -3783,8 +3783,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000000) == 0 { // if not empty - // write "264201" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x31) + // write "264201-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x30, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3802,8 +3802,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000000) == 0 { // if not empty - // write "35" - err = en.Append(0xa2, 0x33, 0x35) + // write "35-2" + err = en.Append(0xa4, 0x33, 0x35, 0x2d, 0x32) if err != nil { return } @@ -3821,8 +3821,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000000000) == 0 { // if not empty - // write "32774" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x34) + // write "32774-3" + err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x37, 0x34, 0x2d, 0x33) if err != nil { return } @@ -3840,8 +3840,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000000000) == 0 { // if not empty - // write "39" - err = en.Append(0xa2, 0x33, 0x39) + // write "39-3" + err = en.Append(0xa4, 0x33, 0x39, 0x2d, 0x33) if err != nil { return } @@ -3859,8 +3859,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000000) == 0 { // if not empty - // write "264328" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x38) + // write "264328-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3878,8 +3878,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000000) == 0 { // if not empty - // write "32779" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x39) + // write "32779-11" + err = en.Append(0xa8, 0x33, 0x32, 0x37, 0x37, 0x39, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3897,8 +3897,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1) == 0 { // if not empty - // write "267368" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x38) + // write "267368-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x33, 0x36, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3916,8 +3916,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2) == 0 { // if not empty - // write "267367" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x37) + // write "267367-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x33, 0x36, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3935,8 +3935,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4) == 0 { // if not empty - // write "267366" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x36) + // write "267366-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x33, 0x36, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3954,8 +3954,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8) == 0 { // if not empty - // write "32773" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x37, 0x33) + // write "32773-3" + err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x37, 0x33, 0x2d, 0x33) if err != nil { return } @@ -3973,8 +3973,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10) == 0 { // if not empty - // write "72" - err = en.Append(0xa2, 0x37, 0x32) + // write "72-31" + err = en.Append(0xa5, 0x37, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3992,8 +3992,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20) == 0 { // if not empty - // write "40" - err = en.Append(0xa2, 0x34, 0x30) + // write "40-2" + err = en.Append(0xa4, 0x34, 0x30, 0x2d, 0x32) if err != nil { return } @@ -4011,8 +4011,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40) == 0 { // if not empty - // write "74" - err = en.Append(0xa2, 0x37, 0x34) + // write "74-64" + err = en.Append(0xa5, 0x37, 0x34, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4030,8 +4030,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80) == 0 { // if not empty - // write "73" - err = en.Append(0xa2, 0x37, 0x33) + // write "73-64" + err = en.Append(0xa5, 0x37, 0x33, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4049,8 +4049,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100) == 0 { // if not empty - // write "264329" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x39) + // write "264329-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4068,8 +4068,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200) == 0 { // if not empty - // write "7" - err = en.Append(0xa1, 0x37) + // write "7-31" + err = en.Append(0xa4, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4087,8 +4087,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400) == 0 { // if not empty - // write "264323" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x33) + // write "264323-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4106,8 +4106,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800) == 0 { // if not empty - // write "42" - err = en.Append(0xa2, 0x34, 0x32) + // write "42-64" + err = en.Append(0xa5, 0x34, 0x32, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4125,8 +4125,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000) == 0 { // if not empty - // write "264270" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x37, 0x30) + // write "264270-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x37, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4144,8 +4144,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000) == 0 { // if not empty - // write "32781" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x38, 0x31) + // write "32781-3" + err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x38, 0x31, 0x2d, 0x33) if err != nil { return } @@ -4163,8 +4163,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000) == 0 { // if not empty - // write "264290" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x30) + // write "264290-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4182,8 +4182,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000) == 0 { // if not empty - // write "264289" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x38, 0x39) + // write "264289-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x38, 0x39, 0x2d, 0x33) if err != nil { return } @@ -4201,8 +4201,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000) == 0 { // if not empty - // write "264259" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x35, 0x39) + // write "264259-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x35, 0x39, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4220,8 +4220,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000) == 0 { // if not empty - // write "267265" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x35) + // write "267265-3" + err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x32, 0x36, 0x35, 0x2d, 0x33) if err != nil { return } @@ -4239,8 +4239,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000) == 0 { // if not empty - // write "267311" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x31, 0x31) + // write "267311-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x33, 0x31, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4258,8 +4258,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000) == 0 { // if not empty - // write "267308" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x38) + // write "267308-11" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x33, 0x30, 0x38, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4277,8 +4277,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000) == 0 { // if not empty - // write "267310" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x31, 0x30) + // write "267310-11" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x33, 0x31, 0x30, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4296,8 +4296,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000) == 0 { // if not empty - // write "267267" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x37) + // write "267267-11" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x32, 0x36, 0x37, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4315,8 +4315,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000) == 0 { // if not empty - // write "267456" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x34, 0x35, 0x36) + // write "267456-64" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x34, 0x35, 0x36, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4334,8 +4334,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000) == 0 { // if not empty - // write "267266" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x36) + // write "267266-64" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x32, 0x36, 0x36, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4353,8 +4353,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000) == 0 { // if not empty - // write "267269" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x39) + // write "267269-64" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x32, 0x36, 0x39, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4372,8 +4372,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000) == 0 { // if not empty - // write "267268" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x38) + // write "267268-64" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x32, 0x36, 0x38, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4391,8 +4391,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000) == 0 { // if not empty - // write "267309" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x39) + // write "267309-3" + err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x30, 0x39, 0x2d, 0x33) if err != nil { return } @@ -4410,8 +4410,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000) == 0 { // if not empty - // write "6" - err = en.Append(0xa1, 0x36) + // write "6-31" + err = en.Append(0xa4, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4429,8 +4429,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000) == 0 { // if not empty - // write "8" - err = en.Append(0xa1, 0x38) + // write "8-31" + err = en.Append(0xa4, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4448,8 +4448,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000) == 0 { // if not empty - // write "264232" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x33, 0x32) + // write "264232-3" + err = en.Append(0xa8, 0x32, 0x36, 0x34, 0x32, 0x33, 0x32, 0x2d, 0x33) if err != nil { return } @@ -4467,8 +4467,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000) == 0 { // if not empty - // write "267660" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x36, 0x30) + // write "267660-11" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x36, 0x36, 0x30, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4486,8 +4486,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000) == 0 { // if not empty - // write "267661" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x36, 0x31) + // write "267661-3" + err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x36, 0x36, 0x31, 0x2d, 0x33) if err != nil { return } @@ -4505,8 +4505,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000) == 0 { // if not empty - // write "264427" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x34, 0x32, 0x37) + // write "264427-11" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x34, 0x32, 0x37, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4524,8 +4524,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000000) == 0 { // if not empty - // write "13" - err = en.Append(0xa2, 0x31, 0x33) + // write "13-3" + err = en.Append(0xa4, 0x31, 0x33, 0x2d, 0x33) if err != nil { return } @@ -4543,8 +4543,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000000) == 0 { // if not empty - // write "14" - err = en.Append(0xa2, 0x31, 0x34) + // write "14-3" + err = en.Append(0xa4, 0x31, 0x34, 0x2d, 0x33) if err != nil { return } @@ -4562,8 +4562,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000000) == 0 { // if not empty - // write "12" - err = en.Append(0xa2, 0x31, 0x32) + // write "12-3" + err = en.Append(0xa4, 0x31, 0x32, 0x2d, 0x33) if err != nil { return } @@ -4581,8 +4581,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000000) == 0 { // if not empty - // write "264292" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x32) + // write "264292-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4600,8 +4600,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000000) == 0 { // if not empty - // write "264299" - err = en.Append(0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x39) + // write "264299-31" + err = en.Append(0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4619,8 +4619,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000000) == 0 { // if not empty - // write "34" - err = en.Append(0xa2, 0x33, 0x34) + // write "34-2" + err = en.Append(0xa4, 0x33, 0x34, 0x2d, 0x32) if err != nil { return } @@ -4638,8 +4638,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000000) == 0 { // if not empty - // write "2" - err = en.Append(0xa1, 0x32) + // write "2-31" + err = en.Append(0xa4, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4657,8 +4657,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000000) == 0 { // if not empty - // write "36" - err = en.Append(0xa2, 0x33, 0x36) + // write "36-2" + err = en.Append(0xa4, 0x33, 0x36, 0x2d, 0x32) if err != nil { return } @@ -4710,8 +4710,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000000) == 0 { // if not empty - // write "26696" - err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x39, 0x36) + // write "26696-3" + err = en.Append(0xa7, 0x32, 0x36, 0x36, 0x39, 0x36, 0x2d, 0x33) if err != nil { return } @@ -4729,8 +4729,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000000) == 0 { // if not empty - // write "26695" - err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x39, 0x35) + // write "26695-3" + err = en.Append(0xa7, 0x32, 0x36, 0x36, 0x39, 0x35, 0x2d, 0x33) if err != nil { return } @@ -4748,8 +4748,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000000000) == 0 { // if not empty - // write "26728" - err = en.Append(0xa5, 0x32, 0x36, 0x37, 0x32, 0x38) + // write "26728-64" + err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x32, 0x38, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4767,8 +4767,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000000000) == 0 { // if not empty - // write "4292" - err = en.Append(0xa4, 0x34, 0x32, 0x39, 0x32) + // write "4292-64" + err = en.Append(0xa7, 0x34, 0x32, 0x39, 0x32, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4786,8 +4786,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000000000) == 0 { // if not empty - // write "4298" - err = en.Append(0xa4, 0x34, 0x32, 0x39, 0x38) + // write "4298-64" + err = en.Append(0xa7, 0x34, 0x32, 0x39, 0x38, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4805,8 +4805,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000000000) == 0 { // if not empty - // write "32001" - err = en.Append(0xa5, 0x33, 0x32, 0x30, 0x30, 0x31) + // write "32001-11" + err = en.Append(0xa8, 0x33, 0x32, 0x30, 0x30, 0x31, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4824,8 +4824,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000000000) == 0 { // if not empty - // write "26733" - err = en.Append(0xa5, 0x32, 0x36, 0x37, 0x33, 0x33) + // write "26733-11" + err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x33, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4843,8 +4843,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000000000) == 0 { // if not empty - // write "26690" - err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x39, 0x30) + // write "26690-11" + err = en.Append(0xa8, 0x32, 0x36, 0x36, 0x39, 0x30, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4862,8 +4862,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000000000) == 0 { // if not empty - // write "26699" - err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x39, 0x39) + // write "26699-11" + err = en.Append(0xa8, 0x32, 0x36, 0x36, 0x39, 0x39, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4881,8 +4881,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000000000) == 0 { // if not empty - // write "26735" - err = en.Append(0xa5, 0x32, 0x36, 0x37, 0x33, 0x35) + // write "26735-11" + err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x35, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4900,8 +4900,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000000000) == 0 { // if not empty - // write "26734" - err = en.Append(0xa5, 0x32, 0x36, 0x37, 0x33, 0x34) + // write "26734-11" + err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x34, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4919,8 +4919,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000000000) == 0 { // if not empty - // write "26691" - err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x39, 0x31) + // write "26691-11" + err = en.Append(0xa8, 0x32, 0x36, 0x36, 0x39, 0x31, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4938,8 +4938,8 @@ func (z *Appointment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000000000) == 0 { // if not empty - // write "26689" - err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x38, 0x39) + // write "26689-3" + err = en.Append(0xa7, 0x32, 0x36, 0x36, 0x38, 0x39, 0x2d, 0x33) if err != nil { return } @@ -5443,8 +5443,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // string "264296" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x36) + // string "264296-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x36, 0x2d, 0x33, 0x31) if z.AllAttendeesString == nil { o = msgp.AppendNil(o) } else { @@ -5452,8 +5452,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // string "264326" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x36) + // string "264326-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x36, 0x2d, 0x31, 0x31) if z.AllowExternalCheck == nil { o = msgp.AppendNil(o) } else { @@ -5461,8 +5461,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // string "264199" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x39) + // string "264199-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x39, 0x2d, 0x33) if z.AppointmentAuxiliaryFlags == nil { o = msgp.AppendNil(o) } else { @@ -5470,8 +5470,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // string "264228" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x38) + // string "264228-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x32, 0x38, 0x2d, 0x33) if z.AppointmentColor == nil { o = msgp.AppendNil(o) } else { @@ -5479,8 +5479,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // string "264359" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x39) + // string "264359-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x33, 0x35, 0x39, 0x2d, 0x31, 0x31) if z.AppointmentCounterProposal == nil { o = msgp.AppendNil(o) } else { @@ -5488,8 +5488,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // string "264227" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x37) + // string "264227-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x32, 0x37, 0x2d, 0x33) if z.AppointmentDuration == nil { o = msgp.AppendNil(o) } else { @@ -5497,8 +5497,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // string "264225" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x35) + // string "264225-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x32, 0x35, 0x2d, 0x36, 0x34) if z.AppointmentEndDate == nil { o = msgp.AppendNil(o) } else { @@ -5506,8 +5506,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // string "264224" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x34) + // string "264224-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x32, 0x34, 0x2d, 0x36, 0x34) if z.AppointmentEndTime == nil { o = msgp.AppendNil(o) } else { @@ -5515,8 +5515,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // string "264206" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x36) + // string "264206-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x30, 0x36, 0x2d, 0x36, 0x34) if z.AppointmentEndWhole == nil { o = msgp.AppendNil(o) } else { @@ -5524,8 +5524,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // string "264195" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x35) + // string "264195-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x35, 0x2d, 0x33) if z.AppointmentLastSequence == nil { o = msgp.AppendNil(o) } else { @@ -5533,8 +5533,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // string "68" - o = append(o, 0xa2, 0x36, 0x38) + // string "68-31" + o = append(o, 0xa5, 0x36, 0x38, 0x2d, 0x33, 0x31) if z.AppointmentMessageClass == nil { o = msgp.AppendNil(o) } else { @@ -5542,8 +5542,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // string "264362" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x36, 0x32) + // string "264362-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x33, 0x36, 0x32, 0x2d, 0x31, 0x31) if z.AppointmentNotAllowPropose == nil { o = msgp.AppendNil(o) } else { @@ -5551,8 +5551,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // string "264361" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x36, 0x31) + // string "264361-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x36, 0x31, 0x2d, 0x33) if z.AppointmentProposalNumber == nil { o = msgp.AppendNil(o) } else { @@ -5560,8 +5560,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // string "264358" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x38) + // string "264358-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x35, 0x38, 0x2d, 0x33) if z.AppointmentProposedDuration == nil { o = msgp.AppendNil(o) } else { @@ -5569,8 +5569,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // string "264353" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x33) + // string "264353-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x33, 0x35, 0x33, 0x2d, 0x36, 0x34) if z.AppointmentProposedEndWhole == nil { o = msgp.AppendNil(o) } else { @@ -5578,8 +5578,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000) == 0 { // if not empty - // string "264352" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x35, 0x32) + // string "264352-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x33, 0x35, 0x32, 0x2d, 0x36, 0x34) if z.AppointmentProposedStartWhole == nil { o = msgp.AppendNil(o) } else { @@ -5587,8 +5587,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000) == 0 { // if not empty - // string "264288" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x38, 0x38) + // string "264288-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x38, 0x38, 0x2d, 0x33, 0x31) if z.AppointmentReplyName == nil { o = msgp.AppendNil(o) } else { @@ -5596,8 +5596,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000) == 0 { // if not empty - // string "264256" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x35, 0x36) + // string "264256-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x35, 0x36, 0x2d, 0x36, 0x34) if z.AppointmentReplyTime == nil { o = msgp.AppendNil(o) } else { @@ -5605,8 +5605,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000) == 0 { // if not empty - // string "264193" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x33) + // string "264193-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x33, 0x2d, 0x33) if z.AppointmentSequence == nil { o = msgp.AppendNil(o) } else { @@ -5614,8 +5614,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000) == 0 { // if not empty - // string "264194" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x34) + // string "264194-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x31, 0x39, 0x34, 0x2d, 0x36, 0x34) if z.AppointmentSequenceTime == nil { o = msgp.AppendNil(o) } else { @@ -5623,8 +5623,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000) == 0 { // if not empty - // string "264226" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x36) + // string "264226-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x32, 0x36, 0x2d, 0x36, 0x34) if z.AppointmentStartDate == nil { o = msgp.AppendNil(o) } else { @@ -5632,8 +5632,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000) == 0 { // if not empty - // string "264207" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x37) + // string "264207-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x30, 0x37, 0x2d, 0x36, 0x34) if z.AppointmentStartTime == nil { o = msgp.AppendNil(o) } else { @@ -5641,8 +5641,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000) == 0 { // if not empty - // string "264205" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x35) + // string "264205-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x30, 0x35, 0x2d, 0x36, 0x34) if z.AppointmentStartWhole == nil { o = msgp.AppendNil(o) } else { @@ -5650,8 +5650,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000) == 0 { // if not empty - // string "264231" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x33, 0x31) + // string "264231-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x33, 0x31, 0x2d, 0x33) if z.AppointmentStateFlags == nil { o = msgp.AppendNil(o) } else { @@ -5659,8 +5659,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000) == 0 { // if not empty - // string "264229" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x32, 0x39) + // string "264229-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x32, 0x39, 0x2d, 0x31, 0x31) if z.AppointmentSubType == nil { o = msgp.AppendNil(o) } else { @@ -5668,8 +5668,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // string "264262" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x32) + // string "264262-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x36, 0x32, 0x2d, 0x36, 0x34) if z.AppointmentUpdateTime == nil { o = msgp.AppendNil(o) } else { @@ -5677,8 +5677,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // string "1" - o = append(o, 0xa1, 0x31) + // string "1-64" + o = append(o, 0xa4, 0x31, 0x2d, 0x36, 0x34) if z.AttendeeCriticalChange == nil { o = msgp.AppendNil(o) } else { @@ -5686,8 +5686,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // string "264298" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x38) + // string "264298-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x38, 0x2d, 0x31, 0x31) if z.AutoFillLocation == nil { o = msgp.AppendNil(o) } else { @@ -5695,8 +5695,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // string "264324" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x34) + // string "264324-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x34, 0x2d, 0x31, 0x31) if z.AutoStartCheck == nil { o = msgp.AppendNil(o) } else { @@ -5704,8 +5704,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // string "264197" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x37) + // string "264197-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x37, 0x2d, 0x33) if z.BusyStatus == nil { o = msgp.AppendNil(o) } else { @@ -5713,8 +5713,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // string "44" - o = append(o, 0xa2, 0x34, 0x34) + // string "44-3" + o = append(o, 0xa4, 0x34, 0x34, 0x2d, 0x33) if z.CalendarType == nil { o = msgp.AppendNil(o) } else { @@ -5722,8 +5722,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // string "264300" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x30, 0x30) + // string "264300-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x33, 0x30, 0x30, 0x2d, 0x33, 0x31) if z.CcAttendeesString == nil { o = msgp.AppendNil(o) } else { @@ -5731,8 +5731,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // string "264196" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x36) + // string "264196-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x31, 0x39, 0x36, 0x2d, 0x33) if z.ChangeHighlight == nil { o = msgp.AppendNil(o) } else { @@ -5740,8 +5740,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // string "37" - o = append(o, 0xa2, 0x33, 0x37) + // string "37-3" + o = append(o, 0xa4, 0x33, 0x37, 0x2d, 0x33) if z.ClientIntent == nil { o = msgp.AppendNil(o) } else { @@ -5749,8 +5749,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // string "264294" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x34) + // string "264294-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x34, 0x2d, 0x36, 0x34) if z.ClipEnd == nil { o = msgp.AppendNil(o) } else { @@ -5758,8 +5758,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // string "264293" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x33) + // string "264293-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x33, 0x2d, 0x36, 0x34) if z.ClipStart == nil { o = msgp.AppendNil(o) } else { @@ -5767,8 +5767,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // string "264327" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x37) + // string "264327-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x37, 0x2d, 0x33, 0x31) if z.CollaborateDoc == nil { o = msgp.AppendNil(o) } else { @@ -5776,8 +5776,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // string "264320" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x30) + // string "264320-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x30, 0x2d, 0x31, 0x31) if z.ConferencingCheck == nil { o = msgp.AppendNil(o) } else { @@ -5785,8 +5785,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // string "264321" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x31) + // string "264321-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x33, 0x32, 0x31, 0x2d, 0x33) if z.ConferencingType == nil { o = msgp.AppendNil(o) } else { @@ -5794,8 +5794,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // string "33" - o = append(o, 0xa2, 0x33, 0x33) + // string "33-2" + o = append(o, 0xa4, 0x33, 0x33, 0x2d, 0x32) if z.DayInterval == nil { o = msgp.AppendNil(o) } else { @@ -5803,8 +5803,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // string "32768" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x36, 0x38) + // string "32768-3" + o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x36, 0x38, 0x2d, 0x33) if z.DayOfMonth == nil { o = msgp.AppendNil(o) } else { @@ -5812,8 +5812,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // string "9" - o = append(o, 0xa1, 0x39) + // string "9-11" + o = append(o, 0xa4, 0x39, 0x2d, 0x31, 0x31) if z.DelegateMail == nil { o = msgp.AppendNil(o) } else { @@ -5821,8 +5821,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // string "264322" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x32) + // string "264322-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x32, 0x2d, 0x33, 0x31) if z.Directory == nil { o = msgp.AppendNil(o) } else { @@ -5830,8 +5830,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // string "15" - o = append(o, 0xa2, 0x31, 0x35) + // string "15-3" + o = append(o, 0xa4, 0x31, 0x35, 0x2d, 0x33) if z.EndRecurrenceDate == nil { o = msgp.AppendNil(o) } else { @@ -5839,8 +5839,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // string "32" - o = append(o, 0xa2, 0x33, 0x32) + // string "32-3" + o = append(o, 0xa4, 0x33, 0x32, 0x2d, 0x33) if z.EndRecurrenceTime == nil { o = msgp.AppendNil(o) } else { @@ -5848,8 +5848,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // string "264264" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x34) + // string "264264-64" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x36, 0x34, 0x2d, 0x36, 0x34) if z.ExceptionReplaceTime == nil { o = msgp.AppendNil(o) } else { @@ -5857,8 +5857,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // string "264267" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x37) + // string "264267-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x36, 0x37, 0x2d, 0x31, 0x31) if z.FExceptionalAttendees == nil { o = msgp.AppendNil(o) } else { @@ -5866,8 +5866,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // string "264198" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x31, 0x39, 0x38) + // string "264198-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x31, 0x39, 0x38, 0x2d, 0x31, 0x31) if z.FExceptionalBody == nil { o = msgp.AppendNil(o) } else { @@ -5875,8 +5875,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // string "264265" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x35) + // string "264265-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x36, 0x35, 0x2d, 0x31, 0x31) if z.FInvited == nil { o = msgp.AppendNil(o) } else { @@ -5884,8 +5884,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // string "264202" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x32) + // string "264202-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x30, 0x32, 0x2d, 0x31, 0x31) if z.ForwardInstance == nil { o = msgp.AppendNil(o) } else { @@ -5893,8 +5893,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // string "264271" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x37, 0x31) + // string "264271-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x37, 0x31, 0x2d, 0x31, 0x31) if z.FOthersAppointment == nil { o = msgp.AppendNil(o) } else { @@ -5902,8 +5902,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // string "32769" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x36, 0x39) + // string "32769-3" + o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x36, 0x39, 0x2d, 0x33) if z.ICalendarDayOfWeekMask == nil { o = msgp.AppendNil(o) } else { @@ -5911,8 +5911,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // string "264260" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x36, 0x30) + // string "264260-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x36, 0x30, 0x2d, 0x33) if z.IntendedBusyStatus == nil { o = msgp.AppendNil(o) } else { @@ -5920,8 +5920,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // string "10" - o = append(o, 0xa2, 0x31, 0x30) + // string "10-11" + o = append(o, 0xa5, 0x31, 0x30, 0x2d, 0x31, 0x31) if z.IsException == nil { o = msgp.AppendNil(o) } else { @@ -5929,8 +5929,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // string "5" - o = append(o, 0xa1, 0x35) + // string "5-11" + o = append(o, 0xa4, 0x35, 0x2d, 0x31, 0x31) if z.IsRecurring == nil { o = msgp.AppendNil(o) } else { @@ -5938,8 +5938,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000000) == 0 { // if not empty - // string "4" - o = append(o, 0xa1, 0x34) + // string "4-11" + o = append(o, 0xa4, 0x34, 0x2d, 0x31, 0x31) if z.IsSilent == nil { o = msgp.AppendNil(o) } else { @@ -5947,8 +5947,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000000) == 0 { // if not empty - // string "264200" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x30) + // string "264200-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x30, 0x30, 0x2d, 0x33, 0x31) if z.Location == nil { o = msgp.AppendNil(o) } else { @@ -5956,8 +5956,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000000) == 0 { // if not empty - // string "70" - o = append(o, 0xa2, 0x37, 0x30) + // string "70-3" + o = append(o, 0xa4, 0x37, 0x30, 0x2d, 0x33) if z.MeetingType == nil { o = msgp.AppendNil(o) } else { @@ -5965,8 +5965,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000000) == 0 { // if not empty - // string "264201" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x30, 0x31) + // string "264201-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x30, 0x31, 0x2d, 0x33, 0x31) if z.MeetingWorkspaceUrl == nil { o = msgp.AppendNil(o) } else { @@ -5974,8 +5974,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000000) == 0 { // if not empty - // string "35" - o = append(o, 0xa2, 0x33, 0x35) + // string "35-2" + o = append(o, 0xa4, 0x33, 0x35, 0x2d, 0x32) if z.MonthInterval == nil { o = msgp.AppendNil(o) } else { @@ -5983,8 +5983,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000000000) == 0 { // if not empty - // string "32774" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x34) + // string "32774-3" + o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x37, 0x34, 0x2d, 0x33) if z.MonthOfYear == nil { o = msgp.AppendNil(o) } else { @@ -5992,8 +5992,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000000000) == 0 { // if not empty - // string "39" - o = append(o, 0xa2, 0x33, 0x39) + // string "39-3" + o = append(o, 0xa4, 0x33, 0x39, 0x2d, 0x33) if z.MonthOfYearMask == nil { o = msgp.AppendNil(o) } else { @@ -6001,8 +6001,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000000000) == 0 { // if not empty - // string "264328" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x38) + // string "264328-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x38, 0x2d, 0x33, 0x31) if z.NetShowUrl == nil { o = msgp.AppendNil(o) } else { @@ -6010,8 +6010,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000000) == 0 { // if not empty - // string "32779" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x39) + // string "32779-11" + o = append(o, 0xa8, 0x33, 0x32, 0x37, 0x37, 0x39, 0x2d, 0x31, 0x31) if z.NoEndDateFlag == nil { o = msgp.AppendNil(o) } else { @@ -6019,8 +6019,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1) == 0 { // if not empty - // string "267368" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x38) + // string "267368-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x33, 0x36, 0x38, 0x2d, 0x33, 0x31) if z.NonSendableBcc == nil { o = msgp.AppendNil(o) } else { @@ -6028,8 +6028,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2) == 0 { // if not empty - // string "267367" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x37) + // string "267367-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x33, 0x36, 0x37, 0x2d, 0x33, 0x31) if z.NonSendableCc == nil { o = msgp.AppendNil(o) } else { @@ -6037,8 +6037,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4) == 0 { // if not empty - // string "267366" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x36) + // string "267366-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x33, 0x36, 0x36, 0x2d, 0x33, 0x31) if z.NonSendableTo == nil { o = msgp.AppendNil(o) } else { @@ -6046,8 +6046,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8) == 0 { // if not empty - // string "32773" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x37, 0x33) + // string "32773-3" + o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x37, 0x33, 0x2d, 0x33) if z.Occurrences == nil { o = msgp.AppendNil(o) } else { @@ -6055,8 +6055,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10) == 0 { // if not empty - // string "72" - o = append(o, 0xa2, 0x37, 0x32) + // string "72-31" + o = append(o, 0xa5, 0x37, 0x32, 0x2d, 0x33, 0x31) if z.OldLocation == nil { o = msgp.AppendNil(o) } else { @@ -6064,8 +6064,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20) == 0 { // if not empty - // string "40" - o = append(o, 0xa2, 0x34, 0x30) + // string "40-2" + o = append(o, 0xa4, 0x34, 0x30, 0x2d, 0x32) if z.OldRecurrenceType == nil { o = msgp.AppendNil(o) } else { @@ -6073,8 +6073,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40) == 0 { // if not empty - // string "74" - o = append(o, 0xa2, 0x37, 0x34) + // string "74-64" + o = append(o, 0xa5, 0x37, 0x34, 0x2d, 0x36, 0x34) if z.OldWhenEndWhole == nil { o = msgp.AppendNil(o) } else { @@ -6082,8 +6082,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80) == 0 { // if not empty - // string "73" - o = append(o, 0xa2, 0x37, 0x33) + // string "73-64" + o = append(o, 0xa5, 0x37, 0x33, 0x2d, 0x36, 0x34) if z.OldWhenStartWhole == nil { o = msgp.AppendNil(o) } else { @@ -6091,8 +6091,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100) == 0 { // if not empty - // string "264329" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x39) + // string "264329-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x39, 0x2d, 0x33, 0x31) if z.OnlinePassword == nil { o = msgp.AppendNil(o) } else { @@ -6100,8 +6100,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200) == 0 { // if not empty - // string "7" - o = append(o, 0xa1, 0x37) + // string "7-31" + o = append(o, 0xa4, 0x37, 0x2d, 0x33, 0x31) if z.OptionalAttendees == nil { o = msgp.AppendNil(o) } else { @@ -6109,8 +6109,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400) == 0 { // if not empty - // string "264323" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x33, 0x32, 0x33) + // string "264323-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x33, 0x32, 0x33, 0x2d, 0x33, 0x31) if z.OrganizerAlias == nil { o = msgp.AppendNil(o) } else { @@ -6118,8 +6118,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800) == 0 { // if not empty - // string "42" - o = append(o, 0xa2, 0x34, 0x32) + // string "42-64" + o = append(o, 0xa5, 0x34, 0x32, 0x2d, 0x36, 0x34) if z.OwnerCriticalChange == nil { o = msgp.AppendNil(o) } else { @@ -6127,8 +6127,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000) == 0 { // if not empty - // string "264270" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x37, 0x30) + // string "264270-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x37, 0x30, 0x2d, 0x33, 0x31) if z.OwnerName == nil { o = msgp.AppendNil(o) } else { @@ -6136,8 +6136,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000) == 0 { // if not empty - // string "32781" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x38, 0x31) + // string "32781-3" + o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x38, 0x31, 0x2d, 0x33) if z.RecurrenceDuration == nil { o = msgp.AppendNil(o) } else { @@ -6145,8 +6145,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000) == 0 { // if not empty - // string "264290" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x30) + // string "264290-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x30, 0x2d, 0x33, 0x31) if z.RecurrencePattern == nil { o = msgp.AppendNil(o) } else { @@ -6154,8 +6154,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000) == 0 { // if not empty - // string "264289" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x38, 0x39) + // string "264289-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x38, 0x39, 0x2d, 0x33) if z.RecurrenceType == nil { o = msgp.AppendNil(o) } else { @@ -6163,8 +6163,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000) == 0 { // if not empty - // string "264259" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x35, 0x39) + // string "264259-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x35, 0x39, 0x2d, 0x31, 0x31) if z.Recurring == nil { o = msgp.AppendNil(o) } else { @@ -6172,8 +6172,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000) == 0 { // if not empty - // string "267265" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x35) + // string "267265-3" + o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x32, 0x36, 0x35, 0x2d, 0x33) if z.ReminderDelta == nil { o = msgp.AppendNil(o) } else { @@ -6181,8 +6181,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000) == 0 { // if not empty - // string "267311" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x31, 0x31) + // string "267311-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x33, 0x31, 0x31, 0x2d, 0x33, 0x31) if z.ReminderFileParameter == nil { o = msgp.AppendNil(o) } else { @@ -6190,8 +6190,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000) == 0 { // if not empty - // string "267308" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x38) + // string "267308-11" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x33, 0x30, 0x38, 0x2d, 0x31, 0x31) if z.ReminderOverride == nil { o = msgp.AppendNil(o) } else { @@ -6199,8 +6199,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000) == 0 { // if not empty - // string "267310" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x31, 0x30) + // string "267310-11" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x33, 0x31, 0x30, 0x2d, 0x31, 0x31) if z.ReminderPlaySound == nil { o = msgp.AppendNil(o) } else { @@ -6208,8 +6208,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000) == 0 { // if not empty - // string "267267" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x37) + // string "267267-11" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x32, 0x36, 0x37, 0x2d, 0x31, 0x31) if z.ReminderSet == nil { o = msgp.AppendNil(o) } else { @@ -6217,8 +6217,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000) == 0 { // if not empty - // string "267456" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x34, 0x35, 0x36) + // string "267456-64" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x34, 0x35, 0x36, 0x2d, 0x36, 0x34) if z.ReminderSignalTime == nil { o = msgp.AppendNil(o) } else { @@ -6226,8 +6226,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000) == 0 { // if not empty - // string "267266" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x36) + // string "267266-64" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x32, 0x36, 0x36, 0x2d, 0x36, 0x34) if z.ReminderTime == nil { o = msgp.AppendNil(o) } else { @@ -6235,8 +6235,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000) == 0 { // if not empty - // string "267269" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x39) + // string "267269-64" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x32, 0x36, 0x39, 0x2d, 0x36, 0x34) if z.ReminderTimeDate == nil { o = msgp.AppendNil(o) } else { @@ -6244,8 +6244,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000) == 0 { // if not empty - // string "267268" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x32, 0x36, 0x38) + // string "267268-64" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x32, 0x36, 0x38, 0x2d, 0x36, 0x34) if z.ReminderTimeTime == nil { o = msgp.AppendNil(o) } else { @@ -6253,8 +6253,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000) == 0 { // if not empty - // string "267309" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x39) + // string "267309-3" + o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x30, 0x39, 0x2d, 0x33) if z.ReminderType == nil { o = msgp.AppendNil(o) } else { @@ -6262,8 +6262,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000) == 0 { // if not empty - // string "6" - o = append(o, 0xa1, 0x36) + // string "6-31" + o = append(o, 0xa4, 0x36, 0x2d, 0x33, 0x31) if z.RequiredAttendees == nil { o = msgp.AppendNil(o) } else { @@ -6271,8 +6271,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000) == 0 { // if not empty - // string "8" - o = append(o, 0xa1, 0x38) + // string "8-31" + o = append(o, 0xa4, 0x38, 0x2d, 0x33, 0x31) if z.ResourceAttendees == nil { o = msgp.AppendNil(o) } else { @@ -6280,8 +6280,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000) == 0 { // if not empty - // string "264232" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x33, 0x32) + // string "264232-3" + o = append(o, 0xa8, 0x32, 0x36, 0x34, 0x32, 0x33, 0x32, 0x2d, 0x33) if z.ResponseStatus == nil { o = msgp.AppendNil(o) } else { @@ -6289,8 +6289,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000) == 0 { // if not empty - // string "267660" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x36, 0x30) + // string "267660-11" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x36, 0x36, 0x30, 0x2d, 0x31, 0x31) if z.ServerProcessed == nil { o = msgp.AppendNil(o) } else { @@ -6298,8 +6298,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000) == 0 { // if not empty - // string "267661" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x36, 0x31) + // string "267661-3" + o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x36, 0x36, 0x31, 0x2d, 0x33) if z.ServerProcessingActions == nil { o = msgp.AppendNil(o) } else { @@ -6307,8 +6307,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000) == 0 { // if not empty - // string "264427" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x34, 0x32, 0x37) + // string "264427-11" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x34, 0x32, 0x37, 0x2d, 0x31, 0x31) if z.SingleBodyiCal == nil { o = msgp.AppendNil(o) } else { @@ -6316,8 +6316,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000000) == 0 { // if not empty - // string "13" - o = append(o, 0xa2, 0x31, 0x33) + // string "13-3" + o = append(o, 0xa4, 0x31, 0x33, 0x2d, 0x33) if z.StartRecurrenceDate == nil { o = msgp.AppendNil(o) } else { @@ -6325,8 +6325,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000000) == 0 { // if not empty - // string "14" - o = append(o, 0xa2, 0x31, 0x34) + // string "14-3" + o = append(o, 0xa4, 0x31, 0x34, 0x2d, 0x33) if z.StartRecurrenceTime == nil { o = msgp.AppendNil(o) } else { @@ -6334,8 +6334,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000000) == 0 { // if not empty - // string "12" - o = append(o, 0xa2, 0x31, 0x32) + // string "12-3" + o = append(o, 0xa4, 0x31, 0x32, 0x2d, 0x33) if z.TimeZone == nil { o = msgp.AppendNil(o) } else { @@ -6343,8 +6343,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000000) == 0 { // if not empty - // string "264292" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x32) + // string "264292-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x32, 0x2d, 0x33, 0x31) if z.TimeZoneDescription == nil { o = msgp.AppendNil(o) } else { @@ -6352,8 +6352,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000000) == 0 { // if not empty - // string "264299" - o = append(o, 0xa6, 0x32, 0x36, 0x34, 0x32, 0x39, 0x39) + // string "264299-31" + o = append(o, 0xa9, 0x32, 0x36, 0x34, 0x32, 0x39, 0x39, 0x2d, 0x33, 0x31) if z.ToAttendeesString == nil { o = msgp.AppendNil(o) } else { @@ -6361,8 +6361,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000000) == 0 { // if not empty - // string "34" - o = append(o, 0xa2, 0x33, 0x34) + // string "34-2" + o = append(o, 0xa4, 0x33, 0x34, 0x2d, 0x32) if z.WeekInterval == nil { o = msgp.AppendNil(o) } else { @@ -6370,8 +6370,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000000) == 0 { // if not empty - // string "2" - o = append(o, 0xa1, 0x32) + // string "2-31" + o = append(o, 0xa4, 0x32, 0x2d, 0x33, 0x31) if z.Where == nil { o = msgp.AppendNil(o) } else { @@ -6379,8 +6379,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000000) == 0 { // if not empty - // string "36" - o = append(o, 0xa2, 0x33, 0x36) + // string "36-2" + o = append(o, 0xa4, 0x33, 0x36, 0x2d, 0x32) if z.YearInterval == nil { o = msgp.AppendNil(o) } else { @@ -6402,8 +6402,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.AppendBool(o, *z.MeetingDoNotForward) } if (zb0001Mask[1] & 0x80000000000) == 0 { // if not empty - // string "26696" - o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x39, 0x36) + // string "26696-3" + o = append(o, 0xa7, 0x32, 0x36, 0x36, 0x39, 0x36, 0x2d, 0x33) if z.FreeBusyPublishEnd == nil { o = msgp.AppendNil(o) } else { @@ -6411,8 +6411,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000000) == 0 { // if not empty - // string "26695" - o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x39, 0x35) + // string "26695-3" + o = append(o, 0xa7, 0x32, 0x36, 0x36, 0x39, 0x35, 0x2d, 0x33) if z.FreeBusyPublishStart == nil { o = msgp.AppendNil(o) } else { @@ -6420,8 +6420,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000000000) == 0 { // if not empty - // string "26728" - o = append(o, 0xa5, 0x32, 0x36, 0x37, 0x32, 0x38) + // string "26728-64" + o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x32, 0x38, 0x2d, 0x36, 0x34) if z.FreeBusyRangeTimestamp == nil { o = msgp.AppendNil(o) } else { @@ -6429,8 +6429,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000000000) == 0 { // if not empty - // string "4292" - o = append(o, 0xa4, 0x34, 0x32, 0x39, 0x32) + // string "4292-64" + o = append(o, 0xa7, 0x34, 0x32, 0x39, 0x32, 0x2d, 0x36, 0x34) if z.ICalendarEndTime == nil { o = msgp.AppendNil(o) } else { @@ -6438,8 +6438,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000000000) == 0 { // if not empty - // string "4298" - o = append(o, 0xa4, 0x34, 0x32, 0x39, 0x38) + // string "4298-64" + o = append(o, 0xa7, 0x34, 0x32, 0x39, 0x38, 0x2d, 0x36, 0x34) if z.ICalendarReminderNextTime == nil { o = msgp.AppendNil(o) } else { @@ -6447,8 +6447,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000000000) == 0 { // if not empty - // string "32001" - o = append(o, 0xa5, 0x33, 0x32, 0x30, 0x30, 0x31) + // string "32001-11" + o = append(o, 0xa8, 0x33, 0x32, 0x30, 0x30, 0x31, 0x2d, 0x31, 0x31) if z.Processed == nil { o = msgp.AppendNil(o) } else { @@ -6456,8 +6456,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000000000) == 0 { // if not empty - // string "26733" - o = append(o, 0xa5, 0x32, 0x36, 0x37, 0x33, 0x33) + // string "26733-11" + o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x33, 0x2d, 0x31, 0x31) if z.ScheduleInfoAutoAcceptAppointments == nil { o = msgp.AppendNil(o) } else { @@ -6465,8 +6465,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000000000) == 0 { // if not empty - // string "26690" - o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x39, 0x30) + // string "26690-11" + o = append(o, 0xa8, 0x32, 0x36, 0x36, 0x39, 0x30, 0x2d, 0x31, 0x31) if z.ScheduleInfoDelegatorWantsCopy == nil { o = msgp.AppendNil(o) } else { @@ -6474,8 +6474,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000000000) == 0 { // if not empty - // string "26699" - o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x39, 0x39) + // string "26699-11" + o = append(o, 0xa8, 0x32, 0x36, 0x36, 0x39, 0x39, 0x2d, 0x31, 0x31) if z.ScheduleInfoDelegatorWantsInfo == nil { o = msgp.AppendNil(o) } else { @@ -6483,8 +6483,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000000000) == 0 { // if not empty - // string "26735" - o = append(o, 0xa5, 0x32, 0x36, 0x37, 0x33, 0x35) + // string "26735-11" + o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x35, 0x2d, 0x31, 0x31) if z.ScheduleInfoDisallowOverlappingAppts == nil { o = msgp.AppendNil(o) } else { @@ -6492,8 +6492,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000000000) == 0 { // if not empty - // string "26734" - o = append(o, 0xa5, 0x32, 0x36, 0x37, 0x33, 0x34) + // string "26734-11" + o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x34, 0x2d, 0x31, 0x31) if z.ScheduleInfoDisallowRecurringAppts == nil { o = msgp.AppendNil(o) } else { @@ -6501,8 +6501,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000000000) == 0 { // if not empty - // string "26691" - o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x39, 0x31) + // string "26691-11" + o = append(o, 0xa8, 0x32, 0x36, 0x36, 0x39, 0x31, 0x2d, 0x31, 0x31) if z.ScheduleInfoDontMailDelegates == nil { o = msgp.AppendNil(o) } else { @@ -6510,8 +6510,8 @@ func (z *Appointment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000000000) == 0 { // if not empty - // string "26689" - o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x38, 0x39) + // string "26689-3" + o = append(o, 0xa7, 0x32, 0x36, 0x36, 0x38, 0x39, 0x2d, 0x33) if z.ScheduleInfoResourceType == nil { o = msgp.AppendNil(o) } else { @@ -6539,7 +6539,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "264296": + case "264296-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6556,7 +6556,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264326": + case "264326-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6573,7 +6573,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264199": + case "264199-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6590,7 +6590,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264228": + case "264228-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6607,7 +6607,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264359": + case "264359-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6624,7 +6624,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264227": + case "264227-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6641,7 +6641,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264225": + case "264225-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6658,7 +6658,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264224": + case "264224-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6675,7 +6675,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264206": + case "264206-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6692,7 +6692,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264195": + case "264195-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6709,7 +6709,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "68": + case "68-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6726,7 +6726,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264362": + case "264362-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6743,7 +6743,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264361": + case "264361-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6760,7 +6760,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264358": + case "264358-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6777,7 +6777,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264353": + case "264353-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6794,7 +6794,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264352": + case "264352-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6811,7 +6811,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264288": + case "264288-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6828,7 +6828,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264256": + case "264256-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6845,7 +6845,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264193": + case "264193-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6862,7 +6862,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264194": + case "264194-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6879,7 +6879,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264226": + case "264226-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6896,7 +6896,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264207": + case "264207-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6913,7 +6913,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264205": + case "264205-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6930,7 +6930,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264231": + case "264231-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6947,7 +6947,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264229": + case "264229-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6964,7 +6964,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264262": + case "264262-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6981,7 +6981,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "1": + case "1-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6998,7 +6998,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264298": + case "264298-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7015,7 +7015,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264324": + case "264324-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7032,7 +7032,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264197": + case "264197-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7049,7 +7049,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "44": + case "44-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7066,7 +7066,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264300": + case "264300-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7083,7 +7083,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264196": + case "264196-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7100,7 +7100,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "37": + case "37-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7117,7 +7117,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264294": + case "264294-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7134,7 +7134,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264293": + case "264293-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7151,7 +7151,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264327": + case "264327-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7168,7 +7168,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264320": + case "264320-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7185,7 +7185,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264321": + case "264321-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7202,7 +7202,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "33": + case "33-2": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7219,7 +7219,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32768": + case "32768-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7236,7 +7236,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "9": + case "9-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7253,7 +7253,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264322": + case "264322-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7270,7 +7270,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "15": + case "15-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7287,7 +7287,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32": + case "32-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7304,7 +7304,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264264": + case "264264-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7321,7 +7321,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264267": + case "264267-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7338,7 +7338,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264198": + case "264198-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7355,7 +7355,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264265": + case "264265-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7372,7 +7372,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264202": + case "264202-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7389,7 +7389,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264271": + case "264271-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7406,7 +7406,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32769": + case "32769-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7423,7 +7423,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264260": + case "264260-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7440,7 +7440,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "10": + case "10-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7457,7 +7457,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "5": + case "5-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7474,7 +7474,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4": + case "4-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7491,7 +7491,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264200": + case "264200-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7508,7 +7508,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "70": + case "70-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7525,7 +7525,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264201": + case "264201-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7542,7 +7542,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35": + case "35-2": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7559,7 +7559,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32774": + case "32774-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7576,7 +7576,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "39": + case "39-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7593,7 +7593,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264328": + case "264328-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7610,7 +7610,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32779": + case "32779-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7627,7 +7627,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267368": + case "267368-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7644,7 +7644,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267367": + case "267367-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7661,7 +7661,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267366": + case "267366-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7678,7 +7678,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32773": + case "32773-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7695,7 +7695,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "72": + case "72-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7712,7 +7712,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "40": + case "40-2": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7729,7 +7729,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "74": + case "74-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7746,7 +7746,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "73": + case "73-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7763,7 +7763,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264329": + case "264329-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7780,7 +7780,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "7": + case "7-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7797,7 +7797,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264323": + case "264323-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7814,7 +7814,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "42": + case "42-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7831,7 +7831,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264270": + case "264270-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7848,7 +7848,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32781": + case "32781-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7865,7 +7865,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264290": + case "264290-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7882,7 +7882,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264289": + case "264289-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7899,7 +7899,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264259": + case "264259-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7916,7 +7916,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267265": + case "267265-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7933,7 +7933,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267311": + case "267311-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7950,7 +7950,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267308": + case "267308-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7967,7 +7967,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267310": + case "267310-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7984,7 +7984,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267267": + case "267267-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8001,7 +8001,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267456": + case "267456-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8018,7 +8018,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267266": + case "267266-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8035,7 +8035,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267269": + case "267269-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8052,7 +8052,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267268": + case "267268-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8069,7 +8069,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267309": + case "267309-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8086,7 +8086,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "6": + case "6-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8103,7 +8103,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "8": + case "8-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8120,7 +8120,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264232": + case "264232-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8137,7 +8137,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267660": + case "267660-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8154,7 +8154,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267661": + case "267661-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8171,7 +8171,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264427": + case "264427-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8188,7 +8188,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "13": + case "13-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8205,7 +8205,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14": + case "14-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8222,7 +8222,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "12": + case "12-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8239,7 +8239,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264292": + case "264292-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8256,7 +8256,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "264299": + case "264299-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8273,7 +8273,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "34": + case "34-2": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8290,7 +8290,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2": + case "2-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8307,7 +8307,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "36": + case "36-2": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8358,7 +8358,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26696": + case "26696-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8375,7 +8375,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26695": + case "26695-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8392,7 +8392,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26728": + case "26728-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8409,7 +8409,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4292": + case "4292-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8426,7 +8426,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4298": + case "4298-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8443,7 +8443,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32001": + case "32001-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8460,7 +8460,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26733": + case "26733-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8477,7 +8477,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26690": + case "26690-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8494,7 +8494,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26699": + case "26699-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8511,7 +8511,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26735": + case "26735-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8528,7 +8528,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26734": + case "26734-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8545,7 +8545,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26691": + case "26691-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8562,7 +8562,7 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26689": + case "26689-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8593,631 +8593,631 @@ func (z *Appointment) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Appointment) Msgsize() (s int) { - s = 3 + 7 + s = 3 + 10 if z.AllAttendeesString == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AllAttendeesString) } - s += 7 + s += 10 if z.AllowExternalCheck == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 9 if z.AppointmentAuxiliaryFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.AppointmentColor == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.AppointmentCounterProposal == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 9 if z.AppointmentDuration == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.AppointmentEndDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.AppointmentEndTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.AppointmentEndWhole == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.AppointmentLastSequence == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 6 if z.AppointmentMessageClass == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AppointmentMessageClass) } - s += 7 + s += 10 if z.AppointmentNotAllowPropose == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 9 if z.AppointmentProposalNumber == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.AppointmentProposedDuration == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.AppointmentProposedEndWhole == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.AppointmentProposedStartWhole == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.AppointmentReplyName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AppointmentReplyName) } - s += 7 + s += 10 if z.AppointmentReplyTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.AppointmentSequence == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.AppointmentSequenceTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.AppointmentStartDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.AppointmentStartTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.AppointmentStartWhole == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.AppointmentStateFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.AppointmentSubType == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.AppointmentUpdateTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 2 + s += 5 if z.AttendeeCriticalChange == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.AutoFillLocation == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.AutoStartCheck == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 9 if z.BusyStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 5 if z.CalendarType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.CcAttendeesString == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CcAttendeesString) } - s += 7 + s += 9 if z.ChangeHighlight == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 5 if z.ClientIntent == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.ClipEnd == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.ClipStart == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.CollaborateDoc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CollaborateDoc) } - s += 7 + s += 10 if z.ConferencingCheck == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 9 if z.ConferencingType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 5 if z.DayInterval == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 8 if z.DayOfMonth == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 2 + s += 5 if z.DelegateMail == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.Directory == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Directory) } - s += 3 + s += 5 if z.EndRecurrenceDate == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 5 if z.EndRecurrenceTime == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.ExceptionReplaceTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.FExceptionalAttendees == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.FExceptionalBody == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.FInvited == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.ForwardInstance == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.FOthersAppointment == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 8 if z.ICalendarDayOfWeekMask == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.IntendedBusyStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 6 if z.IsException == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 2 + s += 5 if z.IsRecurring == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 2 + s += 5 if z.IsSilent == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.Location == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Location) } - s += 3 + s += 5 if z.MeetingType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.MeetingWorkspaceUrl == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.MeetingWorkspaceUrl) } - s += 3 + s += 5 if z.MonthInterval == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 8 if z.MonthOfYear == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 5 if z.MonthOfYearMask == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.NetShowUrl == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.NetShowUrl) } - s += 6 + s += 9 if z.NoEndDateFlag == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.NonSendableBcc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.NonSendableBcc) } - s += 7 + s += 10 if z.NonSendableCc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.NonSendableCc) } - s += 7 + s += 10 if z.NonSendableTo == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.NonSendableTo) } - s += 6 + s += 8 if z.Occurrences == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 6 if z.OldLocation == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OldLocation) } - s += 3 + s += 5 if z.OldRecurrenceType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 6 if z.OldWhenEndWhole == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 3 + s += 6 if z.OldWhenStartWhole == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.OnlinePassword == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OnlinePassword) } - s += 2 + s += 5 if z.OptionalAttendees == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OptionalAttendees) } - s += 7 + s += 10 if z.OrganizerAlias == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OrganizerAlias) } - s += 3 + s += 6 if z.OwnerCriticalChange == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.OwnerName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OwnerName) } - s += 6 + s += 8 if z.RecurrenceDuration == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.RecurrencePattern == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.RecurrencePattern) } - s += 7 + s += 9 if z.RecurrenceType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.Recurring == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 9 if z.ReminderDelta == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.ReminderFileParameter == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReminderFileParameter) } - s += 7 + s += 10 if z.ReminderOverride == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.ReminderPlaySound == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.ReminderSet == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.ReminderSignalTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.ReminderTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.ReminderTimeDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.ReminderTimeTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.ReminderType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 2 + s += 5 if z.RequiredAttendees == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.RequiredAttendees) } - s += 2 + s += 5 if z.ResourceAttendees == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ResourceAttendees) } - s += 7 + s += 9 if z.ResponseStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.ServerProcessed == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 9 if z.ServerProcessingActions == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.SingleBodyiCal == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 3 + s += 5 if z.StartRecurrenceDate == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 5 if z.StartRecurrenceTime == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 5 if z.TimeZone == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.TimeZoneDescription == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TimeZoneDescription) } - s += 7 + s += 10 if z.ToAttendeesString == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ToAttendeesString) } - s += 3 + s += 5 if z.WeekInterval == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 2 + s += 5 if z.Where == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Where) } - s += 3 + s += 5 if z.YearInterval == nil { s += msgp.NilSize } else { @@ -9235,79 +9235,79 @@ func (z *Appointment) Msgsize() (s int) { } else { s += msgp.BoolSize } - s += 6 + s += 8 if z.FreeBusyPublishEnd == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 8 if z.FreeBusyPublishStart == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.FreeBusyRangeTimestamp == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 5 + s += 8 if z.ICalendarEndTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 5 + s += 8 if z.ICalendarReminderNextTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 6 + s += 9 if z.Processed == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.ScheduleInfoAutoAcceptAppointments == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.ScheduleInfoDelegatorWantsCopy == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.ScheduleInfoDelegatorWantsInfo == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.ScheduleInfoDisallowOverlappingAppts == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.ScheduleInfoDisallowRecurringAppts == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.ScheduleInfoDontMailDelegates == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 8 if z.ScheduleInfoResourceType == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/attachment.pb.go b/pkg/properties/attachment.pb.go index 50c24a2..ef4bb69 100644 --- a/pkg/properties/attachment.pb.go +++ b/pkg/properties/attachment.pb.go @@ -52,43 +52,43 @@ type Attachment struct { // Contains the provider type data associated with a web reference attachment. AttachmentProviderType *string `protobuf:"bytes,5,opt,name=attachment_provider_type,json=attachmentProviderType,proto3,oneof" json:"attachment_provider_type,omitempty"` // Contains the base of a relative URI. - AttachContentBase *string `protobuf:"bytes,7,opt,name=attach_content_base,json=attachContentBase,proto3,oneof" json:"attach_content_base,omitempty" msg:"14097,omitempty" type:"31,omitempty"` + AttachContentBase *string `protobuf:"bytes,7,opt,name=attach_content_base,json=attachContentBase,proto3,oneof" json:"attach_content_base,omitempty" msg:"14097-31,omitempty"` // Contains a content identifier unique to the Message object that matches a corresponding "cid:" URI schema reference in the HTML body of the Message object. - AttachContentId *string `protobuf:"bytes,8,opt,name=attach_content_id,json=attachContentId,proto3,oneof" json:"attach_content_id,omitempty" msg:"14098,omitempty" type:"31,omitempty"` + AttachContentId *string `protobuf:"bytes,8,opt,name=attach_content_id,json=attachContentId,proto3,oneof" json:"attach_content_id,omitempty" msg:"14098-31,omitempty"` // Contains a relative or full URI that matches a corresponding reference in the HTML body of a Message object. - AttachContentLocation *string `protobuf:"bytes,9,opt,name=attach_content_location,json=attachContentLocation,proto3,oneof" json:"attach_content_location,omitempty" msg:"14099,omitempty" type:"31,omitempty"` + AttachContentLocation *string `protobuf:"bytes,9,opt,name=attach_content_location,json=attachContentLocation,proto3,oneof" json:"attach_content_location,omitempty" msg:"14099-31,omitempty"` // Contains a file name extension that indicates the document type of an attachment. - AttachExtension *string `protobuf:"bytes,13,opt,name=attach_extension,json=attachExtension,proto3,oneof" json:"attach_extension,omitempty" msg:"14083,omitempty" type:"31,omitempty"` + AttachExtension *string `protobuf:"bytes,13,opt,name=attach_extension,json=attachExtension,proto3,oneof" json:"attach_extension,omitempty" msg:"14083-31,omitempty"` // Contains the 8.3 name of the PidTagAttachLongFilename property (section 2.595). - AttachFilename *string `protobuf:"bytes,14,opt,name=attach_filename,json=attachFilename,proto3,oneof" json:"attach_filename,omitempty" msg:"14084,omitempty" type:"31,omitempty"` + AttachFilename *string `protobuf:"bytes,14,opt,name=attach_filename,json=attachFilename,proto3,oneof" json:"attach_filename,omitempty" msg:"14084-31,omitempty"` // Indicates which body formats might reference this attachment when rendering data. - AttachFlags *int32 `protobuf:"varint,15,opt,name=attach_flags,json=attachFlags,proto3,oneof" json:"attach_flags,omitempty" msg:"14100,omitempty" type:"3,omitempty"` + AttachFlags *int32 `protobuf:"varint,15,opt,name=attach_flags,json=attachFlags,proto3,oneof" json:"attach_flags,omitempty" msg:"14100-3,omitempty"` // Contains the full filename and extension of the Attachment object. - AttachLongFilename *string `protobuf:"bytes,16,opt,name=attach_long_filename,json=attachLongFilename,proto3,oneof" json:"attach_long_filename,omitempty" msg:"14087,omitempty" type:"31,omitempty"` + AttachLongFilename *string `protobuf:"bytes,16,opt,name=attach_long_filename,json=attachLongFilename,proto3,oneof" json:"attach_long_filename,omitempty" msg:"14087-31,omitempty"` // Contains the fully-qualified path and file name with extension. - AttachLongPathname *string `protobuf:"bytes,17,opt,name=attach_long_pathname,json=attachLongPathname,proto3,oneof" json:"attach_long_pathname,omitempty" msg:"14093,omitempty" type:"31,omitempty"` + AttachLongPathname *string `protobuf:"bytes,17,opt,name=attach_long_pathname,json=attachLongPathname,proto3,oneof" json:"attach_long_pathname,omitempty" msg:"14093-31,omitempty"` // Indicates that a contact photo attachment is attached to a Contact object. - AttachmentContactPhoto *bool `protobuf:"varint,18,opt,name=attachment_contact_photo,json=attachmentContactPhoto,proto3,oneof" json:"attachment_contact_photo,omitempty" msg:"32767,omitempty" type:"11,omitempty"` + AttachmentContactPhoto *bool `protobuf:"varint,18,opt,name=attachment_contact_photo,json=attachmentContactPhoto,proto3,oneof" json:"attachment_contact_photo,omitempty" msg:"32767-11,omitempty"` // Indicates special handling for an Attachment object. - AttachmentFlags *int32 `protobuf:"varint,19,opt,name=attachment_flags,json=attachmentFlags,proto3,oneof" json:"attachment_flags,omitempty" msg:"32765,omitempty" type:"3,omitempty"` + AttachmentFlags *int32 `protobuf:"varint,19,opt,name=attachment_flags,json=attachmentFlags,proto3,oneof" json:"attachment_flags,omitempty" msg:"32765-3,omitempty"` // Indicates whether an Attachment object is hidden from the end user. - AttachmentHidden *bool `protobuf:"varint,20,opt,name=attachment_hidden,json=attachmentHidden,proto3,oneof" json:"attachment_hidden,omitempty" msg:"32766,omitempty" type:"11,omitempty"` + AttachmentHidden *bool `protobuf:"varint,20,opt,name=attachment_hidden,json=attachmentHidden,proto3,oneof" json:"attachment_hidden,omitempty" msg:"32766-11,omitempty"` // Contains the type of Message object to which an attachment is linked. - AttachmentLinkId *int32 `protobuf:"varint,21,opt,name=attachment_link_id,json=attachmentLinkId,proto3,oneof" json:"attachment_link_id,omitempty" msg:"32762,omitempty" type:"3,omitempty"` + AttachmentLinkId *int32 `protobuf:"varint,21,opt,name=attachment_link_id,json=attachmentLinkId,proto3,oneof" json:"attachment_link_id,omitempty" msg:"32762-3,omitempty"` // Represents the way the contents of an attachment are accessed. - AttachMethod *int32 `protobuf:"varint,22,opt,name=attach_method,json=attachMethod,proto3,oneof" json:"attach_method,omitempty" msg:"14085,omitempty" type:"3,omitempty"` + AttachMethod *int32 `protobuf:"varint,22,opt,name=attach_method,json=attachMethod,proto3,oneof" json:"attach_method,omitempty" msg:"14085-3,omitempty"` // Contains a content-type MIME header. - AttachMimeTag *string `protobuf:"bytes,23,opt,name=attach_mime_tag,json=attachMimeTag,proto3,oneof" json:"attach_mime_tag,omitempty" msg:"14094,omitempty" type:"31,omitempty"` + AttachMimeTag *string `protobuf:"bytes,23,opt,name=attach_mime_tag,json=attachMimeTag,proto3,oneof" json:"attach_mime_tag,omitempty" msg:"14094-31,omitempty"` // Identifies the Attachment object within its Message object. - AttachNumber *int32 `protobuf:"varint,24,opt,name=attach_number,json=attachNumber,proto3,oneof" json:"attach_number,omitempty" msg:"3617,omitempty" type:"3,omitempty"` + AttachNumber *int32 `protobuf:"varint,24,opt,name=attach_number,json=attachNumber,proto3,oneof" json:"attach_number,omitempty" msg:"3617-3,omitempty"` // Contains the 8.3 name of the PidTagAttachLongPathname property (section 2.596). - AttachPathname *string `protobuf:"bytes,25,opt,name=attach_pathname,json=attachPathname,proto3,oneof" json:"attach_pathname,omitempty" msg:"14088,omitempty" type:"31,omitempty"` + AttachPathname *string `protobuf:"bytes,25,opt,name=attach_pathname,json=attachPathname,proto3,oneof" json:"attach_pathname,omitempty" msg:"14088-31,omitempty"` // Contains the size, in bytes, consumed by the Attachment object on the server. - AttachSize *int32 `protobuf:"varint,27,opt,name=attach_size,json=attachSize,proto3,oneof" json:"attach_size,omitempty" msg:"3616,omitempty" type:"3,omitempty"` + AttachSize *int32 `protobuf:"varint,27,opt,name=attach_size,json=attachSize,proto3,oneof" json:"attach_size,omitempty" msg:"3616-3,omitempty"` // Contains the name of an attachment file, modified so that it can be correlated with TNEF messages. - AttachTransportName *string `protobuf:"bytes,29,opt,name=attach_transport_name,json=attachTransportName,proto3,oneof" json:"attach_transport_name,omitempty" msg:"14092,omitempty" type:"31,omitempty"` + AttachTransportName *string `protobuf:"bytes,29,opt,name=attach_transport_name,json=attachTransportName,proto3,oneof" json:"attach_transport_name,omitempty" msg:"14092-31,omitempty"` // Specifies the character set of an attachment received via MIME with the content-type of text. - TextAttachmentCharset *string `protobuf:"bytes,31,opt,name=text_attachment_charset,json=textAttachmentCharset,proto3,oneof" json:"text_attachment_charset,omitempty" msg:"14107,omitempty" type:"31,omitempty"` + TextAttachmentCharset *string `protobuf:"bytes,31,opt,name=text_attachment_charset,json=textAttachmentCharset,proto3,oneof" json:"text_attachment_charset,omitempty" msg:"14107-31,omitempty"` } func (x *Attachment) Reset() { diff --git a/pkg/properties/attachment.pb_gen.go b/pkg/properties/attachment.pb_gen.go index e155139..2a70824 100644 --- a/pkg/properties/attachment.pb_gen.go +++ b/pkg/properties/attachment.pb_gen.go @@ -96,7 +96,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14097": + case "14097-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14098": + case "14098-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14099": + case "14099-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14083": + case "14083-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14084": + case "14084-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14100": + case "14100-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14087": + case "14087-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14093": + case "14093-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32767": + case "32767-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32765": + case "32765-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32766": + case "32766-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -294,7 +294,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "32762": + case "32762-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -312,7 +312,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14085": + case "14085-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -330,7 +330,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14094": + case "14094-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -348,7 +348,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3617": + case "3617-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -366,7 +366,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14088": + case "14088-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -384,7 +384,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3616": + case "3616-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -402,7 +402,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14092": + case "14092-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -420,7 +420,7 @@ func (z *Attachment) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14107": + case "14107-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -607,8 +607,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "14097" - err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x39, 0x37) + // write "14097-31" + err = en.Append(0xa8, 0x31, 0x34, 0x30, 0x39, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -626,8 +626,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // write "14098" - err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x39, 0x38) + // write "14098-31" + err = en.Append(0xa8, 0x31, 0x34, 0x30, 0x39, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -645,8 +645,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // write "14099" - err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x39, 0x39) + // write "14099-31" + err = en.Append(0xa8, 0x31, 0x34, 0x30, 0x39, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -664,8 +664,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // write "14083" - err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x38, 0x33) + // write "14083-31" + err = en.Append(0xa8, 0x31, 0x34, 0x30, 0x38, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -683,8 +683,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // write "14084" - err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x38, 0x34) + // write "14084-31" + err = en.Append(0xa8, 0x31, 0x34, 0x30, 0x38, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -702,8 +702,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // write "14100" - err = en.Append(0xa5, 0x31, 0x34, 0x31, 0x30, 0x30) + // write "14100-3" + err = en.Append(0xa7, 0x31, 0x34, 0x31, 0x30, 0x30, 0x2d, 0x33) if err != nil { return } @@ -721,8 +721,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // write "14087" - err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x38, 0x37) + // write "14087-31" + err = en.Append(0xa8, 0x31, 0x34, 0x30, 0x38, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -740,8 +740,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // write "14093" - err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x39, 0x33) + // write "14093-31" + err = en.Append(0xa8, 0x31, 0x34, 0x30, 0x39, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -759,8 +759,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // write "32767" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x36, 0x37) + // write "32767-11" + err = en.Append(0xa8, 0x33, 0x32, 0x37, 0x36, 0x37, 0x2d, 0x31, 0x31) if err != nil { return } @@ -778,8 +778,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // write "32765" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x36, 0x35) + // write "32765-3" + err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x36, 0x35, 0x2d, 0x33) if err != nil { return } @@ -797,8 +797,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000) == 0 { // if not empty - // write "32766" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x36, 0x36) + // write "32766-11" + err = en.Append(0xa8, 0x33, 0x32, 0x37, 0x36, 0x36, 0x2d, 0x31, 0x31) if err != nil { return } @@ -816,8 +816,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8000) == 0 { // if not empty - // write "32762" - err = en.Append(0xa5, 0x33, 0x32, 0x37, 0x36, 0x32) + // write "32762-3" + err = en.Append(0xa7, 0x33, 0x32, 0x37, 0x36, 0x32, 0x2d, 0x33) if err != nil { return } @@ -835,8 +835,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10000) == 0 { // if not empty - // write "14085" - err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x38, 0x35) + // write "14085-3" + err = en.Append(0xa7, 0x31, 0x34, 0x30, 0x38, 0x35, 0x2d, 0x33) if err != nil { return } @@ -854,8 +854,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20000) == 0 { // if not empty - // write "14094" - err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x39, 0x34) + // write "14094-31" + err = en.Append(0xa8, 0x31, 0x34, 0x30, 0x39, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -873,8 +873,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40000) == 0 { // if not empty - // write "3617" - err = en.Append(0xa4, 0x33, 0x36, 0x31, 0x37) + // write "3617-3" + err = en.Append(0xa6, 0x33, 0x36, 0x31, 0x37, 0x2d, 0x33) if err != nil { return } @@ -892,8 +892,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80000) == 0 { // if not empty - // write "14088" - err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x38, 0x38) + // write "14088-31" + err = en.Append(0xa8, 0x31, 0x34, 0x30, 0x38, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -911,8 +911,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100000) == 0 { // if not empty - // write "3616" - err = en.Append(0xa4, 0x33, 0x36, 0x31, 0x36) + // write "3616-3" + err = en.Append(0xa6, 0x33, 0x36, 0x31, 0x36, 0x2d, 0x33) if err != nil { return } @@ -930,8 +930,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200000) == 0 { // if not empty - // write "14092" - err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x39, 0x32) + // write "14092-31" + err = en.Append(0xa8, 0x31, 0x34, 0x30, 0x39, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -949,8 +949,8 @@ func (z *Attachment) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400000) == 0 { // if not empty - // write "14107" - err = en.Append(0xa5, 0x31, 0x34, 0x31, 0x30, 0x37) + // write "14107-31" + err = en.Append(0xa8, 0x31, 0x34, 0x31, 0x30, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1086,8 +1086,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.AppendString(o, *z.AttachmentProviderType) } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "14097" - o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x39, 0x37) + // string "14097-31" + o = append(o, 0xa8, 0x31, 0x34, 0x30, 0x39, 0x37, 0x2d, 0x33, 0x31) if z.AttachContentBase == nil { o = msgp.AppendNil(o) } else { @@ -1095,8 +1095,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // string "14098" - o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x39, 0x38) + // string "14098-31" + o = append(o, 0xa8, 0x31, 0x34, 0x30, 0x39, 0x38, 0x2d, 0x33, 0x31) if z.AttachContentId == nil { o = msgp.AppendNil(o) } else { @@ -1104,8 +1104,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // string "14099" - o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x39, 0x39) + // string "14099-31" + o = append(o, 0xa8, 0x31, 0x34, 0x30, 0x39, 0x39, 0x2d, 0x33, 0x31) if z.AttachContentLocation == nil { o = msgp.AppendNil(o) } else { @@ -1113,8 +1113,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // string "14083" - o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x38, 0x33) + // string "14083-31" + o = append(o, 0xa8, 0x31, 0x34, 0x30, 0x38, 0x33, 0x2d, 0x33, 0x31) if z.AttachExtension == nil { o = msgp.AppendNil(o) } else { @@ -1122,8 +1122,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // string "14084" - o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x38, 0x34) + // string "14084-31" + o = append(o, 0xa8, 0x31, 0x34, 0x30, 0x38, 0x34, 0x2d, 0x33, 0x31) if z.AttachFilename == nil { o = msgp.AppendNil(o) } else { @@ -1131,8 +1131,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // string "14100" - o = append(o, 0xa5, 0x31, 0x34, 0x31, 0x30, 0x30) + // string "14100-3" + o = append(o, 0xa7, 0x31, 0x34, 0x31, 0x30, 0x30, 0x2d, 0x33) if z.AttachFlags == nil { o = msgp.AppendNil(o) } else { @@ -1140,8 +1140,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // string "14087" - o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x38, 0x37) + // string "14087-31" + o = append(o, 0xa8, 0x31, 0x34, 0x30, 0x38, 0x37, 0x2d, 0x33, 0x31) if z.AttachLongFilename == nil { o = msgp.AppendNil(o) } else { @@ -1149,8 +1149,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // string "14093" - o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x39, 0x33) + // string "14093-31" + o = append(o, 0xa8, 0x31, 0x34, 0x30, 0x39, 0x33, 0x2d, 0x33, 0x31) if z.AttachLongPathname == nil { o = msgp.AppendNil(o) } else { @@ -1158,8 +1158,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // string "32767" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x36, 0x37) + // string "32767-11" + o = append(o, 0xa8, 0x33, 0x32, 0x37, 0x36, 0x37, 0x2d, 0x31, 0x31) if z.AttachmentContactPhoto == nil { o = msgp.AppendNil(o) } else { @@ -1167,8 +1167,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // string "32765" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x36, 0x35) + // string "32765-3" + o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x36, 0x35, 0x2d, 0x33) if z.AttachmentFlags == nil { o = msgp.AppendNil(o) } else { @@ -1176,8 +1176,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000) == 0 { // if not empty - // string "32766" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x36, 0x36) + // string "32766-11" + o = append(o, 0xa8, 0x33, 0x32, 0x37, 0x36, 0x36, 0x2d, 0x31, 0x31) if z.AttachmentHidden == nil { o = msgp.AppendNil(o) } else { @@ -1185,8 +1185,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8000) == 0 { // if not empty - // string "32762" - o = append(o, 0xa5, 0x33, 0x32, 0x37, 0x36, 0x32) + // string "32762-3" + o = append(o, 0xa7, 0x33, 0x32, 0x37, 0x36, 0x32, 0x2d, 0x33) if z.AttachmentLinkId == nil { o = msgp.AppendNil(o) } else { @@ -1194,8 +1194,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10000) == 0 { // if not empty - // string "14085" - o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x38, 0x35) + // string "14085-3" + o = append(o, 0xa7, 0x31, 0x34, 0x30, 0x38, 0x35, 0x2d, 0x33) if z.AttachMethod == nil { o = msgp.AppendNil(o) } else { @@ -1203,8 +1203,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20000) == 0 { // if not empty - // string "14094" - o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x39, 0x34) + // string "14094-31" + o = append(o, 0xa8, 0x31, 0x34, 0x30, 0x39, 0x34, 0x2d, 0x33, 0x31) if z.AttachMimeTag == nil { o = msgp.AppendNil(o) } else { @@ -1212,8 +1212,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40000) == 0 { // if not empty - // string "3617" - o = append(o, 0xa4, 0x33, 0x36, 0x31, 0x37) + // string "3617-3" + o = append(o, 0xa6, 0x33, 0x36, 0x31, 0x37, 0x2d, 0x33) if z.AttachNumber == nil { o = msgp.AppendNil(o) } else { @@ -1221,8 +1221,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80000) == 0 { // if not empty - // string "14088" - o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x38, 0x38) + // string "14088-31" + o = append(o, 0xa8, 0x31, 0x34, 0x30, 0x38, 0x38, 0x2d, 0x33, 0x31) if z.AttachPathname == nil { o = msgp.AppendNil(o) } else { @@ -1230,8 +1230,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100000) == 0 { // if not empty - // string "3616" - o = append(o, 0xa4, 0x33, 0x36, 0x31, 0x36) + // string "3616-3" + o = append(o, 0xa6, 0x33, 0x36, 0x31, 0x36, 0x2d, 0x33) if z.AttachSize == nil { o = msgp.AppendNil(o) } else { @@ -1239,8 +1239,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200000) == 0 { // if not empty - // string "14092" - o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x39, 0x32) + // string "14092-31" + o = append(o, 0xa8, 0x31, 0x34, 0x30, 0x39, 0x32, 0x2d, 0x33, 0x31) if z.AttachTransportName == nil { o = msgp.AppendNil(o) } else { @@ -1248,8 +1248,8 @@ func (z *Attachment) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400000) == 0 { // if not empty - // string "14107" - o = append(o, 0xa5, 0x31, 0x34, 0x31, 0x30, 0x37) + // string "14107-31" + o = append(o, 0xa8, 0x31, 0x34, 0x31, 0x30, 0x37, 0x2d, 0x33, 0x31) if z.TextAttachmentCharset == nil { o = msgp.AppendNil(o) } else { @@ -1345,7 +1345,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14097": + case "14097-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1362,7 +1362,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14098": + case "14098-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1379,7 +1379,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14099": + case "14099-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1396,7 +1396,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14083": + case "14083-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1413,7 +1413,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14084": + case "14084-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1430,7 +1430,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14100": + case "14100-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1447,7 +1447,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14087": + case "14087-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1464,7 +1464,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14093": + case "14093-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1481,7 +1481,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32767": + case "32767-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1498,7 +1498,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32765": + case "32765-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1515,7 +1515,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32766": + case "32766-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1532,7 +1532,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "32762": + case "32762-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1549,7 +1549,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14085": + case "14085-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1566,7 +1566,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14094": + case "14094-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1583,7 +1583,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3617": + case "3617-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1600,7 +1600,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14088": + case "14088-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1617,7 +1617,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3616": + case "3616-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1634,7 +1634,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14092": + case "14092-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1651,7 +1651,7 @@ func (z *Attachment) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14107": + case "14107-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1706,115 +1706,115 @@ func (z *Attachment) Msgsize() (s int) { } else { s += msgp.StringPrefixSize + len(*z.AttachmentProviderType) } - s += 6 + s += 9 if z.AttachContentBase == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachContentBase) } - s += 6 + s += 9 if z.AttachContentId == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachContentId) } - s += 6 + s += 9 if z.AttachContentLocation == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachContentLocation) } - s += 6 + s += 9 if z.AttachExtension == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachExtension) } - s += 6 + s += 9 if z.AttachFilename == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachFilename) } - s += 6 + s += 8 if z.AttachFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.AttachLongFilename == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachLongFilename) } - s += 6 + s += 9 if z.AttachLongPathname == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachLongPathname) } - s += 6 + s += 9 if z.AttachmentContactPhoto == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 8 if z.AttachmentFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.AttachmentHidden == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 8 if z.AttachmentLinkId == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 8 if z.AttachMethod == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.AttachMimeTag == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachMimeTag) } - s += 5 + s += 7 if z.AttachNumber == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.AttachPathname == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachPathname) } - s += 5 + s += 7 if z.AttachSize == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.AttachTransportName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AttachTransportName) } - s += 6 + s += 9 if z.TextAttachmentCharset == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/contact.pb.go b/pkg/properties/contact.pb.go index 9189bcf..cc0d691 100644 --- a/pkg/properties/contact.pb.go +++ b/pkg/properties/contact.pb.go @@ -44,222 +44,222 @@ type Contact struct { unknownFields protoimpl.UnknownFields // Specifies the state of the electronic addresses of the contact and represents a set of bit flags. - AddressBookProviderArrayType *int32 `protobuf:"varint,1,opt,name=address_book_provider_array_type,json=addressBookProviderArrayType,proto3,oneof" json:"address_book_provider_array_type,omitempty" msg:"262217,omitempty" type:"3,omitempty"` + AddressBookProviderArrayType *int32 `protobuf:"varint,1,opt,name=address_book_provider_array_type,json=addressBookProviderArrayType,proto3,oneof" json:"address_book_provider_array_type,omitempty" msg:"262217-3,omitempty"` // Specifies the country code portion of the mailing address of the contact. - AddressCountryCode *string `protobuf:"bytes,3,opt,name=address_country_code,json=addressCountryCode,proto3,oneof" json:"address_country_code,omitempty" msg:"262573,omitempty" type:"31,omitempty"` + AddressCountryCode *string `protobuf:"bytes,3,opt,name=address_country_code,json=addressCountryCode,proto3,oneof" json:"address_country_code,omitempty" msg:"262573-31,omitempty"` // Specifies to the application whether to create a Journal object for each action associated with this Contact object. - AutoLog *bool `protobuf:"varint,5,opt,name=auto_log,json=autoLog,proto3,oneof" json:"auto_log,omitempty" msg:"262213,omitempty" type:"11,omitempty"` + AutoLog *bool `protobuf:"varint,5,opt,name=auto_log,json=autoLog,proto3,oneof" json:"auto_log,omitempty" msg:"262213-11,omitempty"` // Specifies the birthday of a contact. - BirthdayLocal *int64 `protobuf:"varint,7,opt,name=birthday_local,json=birthdayLocal,proto3,oneof" json:"birthday_local,omitempty" msg:"262574,omitempty" type:"64,omitempty"` + BirthdayLocal *int64 `protobuf:"varint,7,opt,name=birthday_local,json=birthdayLocal,proto3,oneof" json:"birthday_local,omitempty" msg:"262574-64,omitempty"` // Specifies the character set used for a Contact object. - ContactCharacterSet *int32 `protobuf:"varint,10,opt,name=contact_character_set,json=contactCharacterSet,proto3,oneof" json:"contact_character_set,omitempty" msg:"262211,omitempty" type:"3,omitempty"` + ContactCharacterSet *int32 `protobuf:"varint,10,opt,name=contact_character_set,json=contactCharacterSet,proto3,oneof" json:"contact_character_set,omitempty" msg:"262211-3,omitempty"` // Specifies the GUID of the GAL contact to which the duplicate contact is linked. - ContactLinkGlobalAddressListLinkId *uint64 `protobuf:"varint,14,opt,name=contact_link_global_address_list_link_id,json=contactLinkGlobalAddressListLinkId,proto3,oneof" json:"contact_link_global_address_list_link_id,omitempty" msg:"262600,omitempty" type:"72,omitempty"` + ContactLinkGlobalAddressListLinkId *uint64 `protobuf:"varint,14,opt,name=contact_link_global_address_list_link_id,json=contactLinkGlobalAddressListLinkId,proto3,oneof" json:"contact_link_global_address_list_link_id,omitempty" msg:"262600-72,omitempty"` // Specifies the state of the linking between the GAL contact and the duplicate contact. - ContactLinkGlobalAddressListLinkState *int32 `protobuf:"varint,15,opt,name=contact_link_global_address_list_link_state,json=contactLinkGlobalAddressListLinkState,proto3,oneof" json:"contact_link_global_address_list_link_state,omitempty" msg:"262598,omitempty" type:"3,omitempty"` - ContactLinkName *string `protobuf:"bytes,17,opt,name=contact_link_name,json=contactLinkName,proto3,oneof" json:"contact_link_name,omitempty" msg:"267526,omitempty" type:"31,omitempty"` + ContactLinkGlobalAddressListLinkState *int32 `protobuf:"varint,15,opt,name=contact_link_global_address_list_link_state,json=contactLinkGlobalAddressListLinkState,proto3,oneof" json:"contact_link_global_address_list_link_state,omitempty" msg:"262598-3,omitempty"` + ContactLinkName *string `protobuf:"bytes,17,opt,name=contact_link_name,json=contactLinkName,proto3,oneof" json:"contact_link_name,omitempty" msg:"267526-31,omitempty"` // Contains text used to add custom text to a business card representation of a Contact object. - ContactUserField1 *string `protobuf:"bytes,20,opt,name=contact_user_field1,json=contactUserField1,proto3,oneof" json:"contact_user_field1,omitempty" msg:"262287,omitempty" type:"31,omitempty"` + ContactUserField1 *string `protobuf:"bytes,20,opt,name=contact_user_field1,json=contactUserField1,proto3,oneof" json:"contact_user_field1,omitempty" msg:"262287-31,omitempty"` // Contains text used to add custom text to a business card representation of a Contact object. - ContactUserField2 *string `protobuf:"bytes,21,opt,name=contact_user_field2,json=contactUserField2,proto3,oneof" json:"contact_user_field2,omitempty" msg:"262304,omitempty" type:"31,omitempty"` + ContactUserField2 *string `protobuf:"bytes,21,opt,name=contact_user_field2,json=contactUserField2,proto3,oneof" json:"contact_user_field2,omitempty" msg:"262304-31,omitempty"` // Contains text used to add custom text to a business card representation of a Contact object. - ContactUserField3 *string `protobuf:"bytes,22,opt,name=contact_user_field3,json=contactUserField3,proto3,oneof" json:"contact_user_field3,omitempty" msg:"262305,omitempty" type:"31,omitempty"` + ContactUserField3 *string `protobuf:"bytes,22,opt,name=contact_user_field3,json=contactUserField3,proto3,oneof" json:"contact_user_field3,omitempty" msg:"262305-31,omitempty"` // Contains text used to add custom text to a business card representation of a Contact object. - ContactUserField4 *string `protobuf:"bytes,23,opt,name=contact_user_field4,json=contactUserField4,proto3,oneof" json:"contact_user_field4,omitempty" msg:"262306,omitempty" type:"31,omitempty"` + ContactUserField4 *string `protobuf:"bytes,23,opt,name=contact_user_field4,json=contactUserField4,proto3,oneof" json:"contact_user_field4,omitempty" msg:"262306-31,omitempty"` // This property is ignored by the server and is set to an empty string by the client. - Department *string `protobuf:"bytes,24,opt,name=department,proto3,oneof" json:"department,omitempty" msg:"262176,omitempty" type:"31,omitempty"` + Department *string `protobuf:"bytes,24,opt,name=department,proto3,oneof" json:"department,omitempty" msg:"262176-31,omitempty"` // Specifies the 32-bit cyclic redundancy check (CRC) polynomial checksum, as specified in [ISO/IEC8802-3], calculated on the value of the PidLidDistributionListMembers property (section 2.96). - DistributionListChecksum *int32 `protobuf:"varint,25,opt,name=distribution_list_checksum,json=distributionListChecksum,proto3,oneof" json:"distribution_list_checksum,omitempty" msg:"262284,omitempty" type:"3,omitempty"` + DistributionListChecksum *int32 `protobuf:"varint,25,opt,name=distribution_list_checksum,json=distributionListChecksum,proto3,oneof" json:"distribution_list_checksum,omitempty" msg:"262284-3,omitempty"` // Specifies the name of the personal distribution list. - DistributionListName *string `protobuf:"bytes,27,opt,name=distribution_list_name,json=distributionListName,proto3,oneof" json:"distribution_list_name,omitempty" msg:"262307,omitempty" type:"31,omitempty"` + DistributionListName *string `protobuf:"bytes,27,opt,name=distribution_list_name,json=distributionListName,proto3,oneof" json:"distribution_list_name,omitempty" msg:"262307-31,omitempty"` // Specifies the address type of an electronic address. - Email1AddressType *string `protobuf:"bytes,30,opt,name=email1_address_type,json=email1AddressType,proto3,oneof" json:"email1_address_type,omitempty" msg:"262402,omitempty" type:"31,omitempty"` + Email1AddressType *string `protobuf:"bytes,30,opt,name=email1_address_type,json=email1AddressType,proto3,oneof" json:"email1_address_type,omitempty" msg:"262402-31,omitempty"` // Specifies the user-readable display name for the email address. - Email1DisplayName *string `protobuf:"bytes,31,opt,name=email1_display_name,json=email1DisplayName,proto3,oneof" json:"email1_display_name,omitempty" msg:"262400,omitempty" type:"31,omitempty"` + Email1DisplayName *string `protobuf:"bytes,31,opt,name=email1_display_name,json=email1DisplayName,proto3,oneof" json:"email1_display_name,omitempty" msg:"262400-31,omitempty"` // Specifies the email address of the contact. - Email1EmailAddress *string `protobuf:"bytes,32,opt,name=email1_email_address,json=email1EmailAddress,proto3,oneof" json:"email1_email_address,omitempty" msg:"262403,omitempty" type:"31,omitempty"` + Email1EmailAddress *string `protobuf:"bytes,32,opt,name=email1_email_address,json=email1EmailAddress,proto3,oneof" json:"email1_email_address,omitempty" msg:"262403-31,omitempty"` // Specifies the SMTP email address that corresponds to the email address for the Contact object. - Email1OriginalDisplayName *string `protobuf:"bytes,33,opt,name=email1_original_display_name,json=email1OriginalDisplayName,proto3,oneof" json:"email1_original_display_name,omitempty" msg:"262404,omitempty" type:"31,omitempty"` + Email1OriginalDisplayName *string `protobuf:"bytes,33,opt,name=email1_original_display_name,json=email1OriginalDisplayName,proto3,oneof" json:"email1_original_display_name,omitempty" msg:"262404-31,omitempty"` // Specifies the address type of the electronic address. - Email2AddressType *string `protobuf:"bytes,35,opt,name=email2_address_type,json=email2AddressType,proto3,oneof" json:"email2_address_type,omitempty" msg:"262434,omitempty" type:"31,omitempty"` + Email2AddressType *string `protobuf:"bytes,35,opt,name=email2_address_type,json=email2AddressType,proto3,oneof" json:"email2_address_type,omitempty" msg:"262434-31,omitempty"` // Specifies the user-readable display name for the email address. - Email2DisplayName *string `protobuf:"bytes,36,opt,name=email2_display_name,json=email2DisplayName,proto3,oneof" json:"email2_display_name,omitempty" msg:"262432,omitempty" type:"31,omitempty"` + Email2DisplayName *string `protobuf:"bytes,36,opt,name=email2_display_name,json=email2DisplayName,proto3,oneof" json:"email2_display_name,omitempty" msg:"262432-31,omitempty"` // Specifies the email address of the contact. - Email2EmailAddress *string `protobuf:"bytes,37,opt,name=email2_email_address,json=email2EmailAddress,proto3,oneof" json:"email2_email_address,omitempty" msg:"262435,omitempty" type:"31,omitempty"` + Email2EmailAddress *string `protobuf:"bytes,37,opt,name=email2_email_address,json=email2EmailAddress,proto3,oneof" json:"email2_email_address,omitempty" msg:"262435-31,omitempty"` // Specifies the SMTP email address that corresponds to the email address for the Contact object. - Email2OriginalDisplayName *string `protobuf:"bytes,38,opt,name=email2_original_display_name,json=email2OriginalDisplayName,proto3,oneof" json:"email2_original_display_name,omitempty" msg:"262436,omitempty" type:"31,omitempty"` + Email2OriginalDisplayName *string `protobuf:"bytes,38,opt,name=email2_original_display_name,json=email2OriginalDisplayName,proto3,oneof" json:"email2_original_display_name,omitempty" msg:"262436-31,omitempty"` // Specifies the address type of the electronic address. - Email3AddressType *string `protobuf:"bytes,40,opt,name=email3_address_type,json=email3AddressType,proto3,oneof" json:"email3_address_type,omitempty" msg:"262466,omitempty" type:"31,omitempty"` + Email3AddressType *string `protobuf:"bytes,40,opt,name=email3_address_type,json=email3AddressType,proto3,oneof" json:"email3_address_type,omitempty" msg:"262466-31,omitempty"` // Specifies the user-readable display name for the email address. - Email3DisplayName *string `protobuf:"bytes,41,opt,name=email3_display_name,json=email3DisplayName,proto3,oneof" json:"email3_display_name,omitempty" msg:"262464,omitempty" type:"31,omitempty"` + Email3DisplayName *string `protobuf:"bytes,41,opt,name=email3_display_name,json=email3DisplayName,proto3,oneof" json:"email3_display_name,omitempty" msg:"262464-31,omitempty"` // Specifies the email address of the contact. - Email3EmailAddress *string `protobuf:"bytes,42,opt,name=email3_email_address,json=email3EmailAddress,proto3,oneof" json:"email3_email_address,omitempty" msg:"262467,omitempty" type:"31,omitempty"` + Email3EmailAddress *string `protobuf:"bytes,42,opt,name=email3_email_address,json=email3EmailAddress,proto3,oneof" json:"email3_email_address,omitempty" msg:"262467-31,omitempty"` // Specifies the SMTP email address that corresponds to the email address for the Contact object. - Email3OriginalDisplayName *string `protobuf:"bytes,43,opt,name=email3_original_display_name,json=email3OriginalDisplayName,proto3,oneof" json:"email3_original_display_name,omitempty" msg:"262468,omitempty" type:"31,omitempty"` + Email3OriginalDisplayName *string `protobuf:"bytes,43,opt,name=email3_original_display_name,json=email3OriginalDisplayName,proto3,oneof" json:"email3_original_display_name,omitempty" msg:"262468-31,omitempty"` // Contains the string value "FAX". - Fax1AddressType *string `protobuf:"bytes,45,opt,name=fax1_address_type,json=fax1AddressType,proto3,oneof" json:"fax1_address_type,omitempty" msg:"262498,omitempty" type:"31,omitempty"` + Fax1AddressType *string `protobuf:"bytes,45,opt,name=fax1_address_type,json=fax1AddressType,proto3,oneof" json:"fax1_address_type,omitempty" msg:"262498-31,omitempty"` // Contains a user-readable display name, followed by the "@" character, followed by a fax number. - Fax1EmailAddress *string `protobuf:"bytes,46,opt,name=fax1_email_address,json=fax1EmailAddress,proto3,oneof" json:"fax1_email_address,omitempty" msg:"262499,omitempty" type:"31,omitempty"` + Fax1EmailAddress *string `protobuf:"bytes,46,opt,name=fax1_email_address,json=fax1EmailAddress,proto3,oneof" json:"fax1_email_address,omitempty" msg:"262499-31,omitempty"` // Contains the same value as the PidTagNormalizedSubject property (section 2.812). - Fax1OriginalDisplayName *string `protobuf:"bytes,47,opt,name=fax1_original_display_name,json=fax1OriginalDisplayName,proto3,oneof" json:"fax1_original_display_name,omitempty" msg:"262500,omitempty" type:"31,omitempty"` + Fax1OriginalDisplayName *string `protobuf:"bytes,47,opt,name=fax1_original_display_name,json=fax1OriginalDisplayName,proto3,oneof" json:"fax1_original_display_name,omitempty" msg:"262500-31,omitempty"` // Contains the string value "FAX". - Fax2AddressType *string `protobuf:"bytes,49,opt,name=fax2_address_type,json=fax2AddressType,proto3,oneof" json:"fax2_address_type,omitempty" msg:"262530,omitempty" type:"31,omitempty"` + Fax2AddressType *string `protobuf:"bytes,49,opt,name=fax2_address_type,json=fax2AddressType,proto3,oneof" json:"fax2_address_type,omitempty" msg:"262530-31,omitempty"` // Contains a user-readable display name, followed by the "@" character, followed by a fax number. - Fax2EmailAddress *string `protobuf:"bytes,50,opt,name=fax2_email_address,json=fax2EmailAddress,proto3,oneof" json:"fax2_email_address,omitempty" msg:"262531,omitempty" type:"31,omitempty"` + Fax2EmailAddress *string `protobuf:"bytes,50,opt,name=fax2_email_address,json=fax2EmailAddress,proto3,oneof" json:"fax2_email_address,omitempty" msg:"262531-31,omitempty"` // Contains the same value as the PidTagNormalizedSubject property (section 2.812). - Fax2OriginalDisplayName *string `protobuf:"bytes,51,opt,name=fax2_original_display_name,json=fax2OriginalDisplayName,proto3,oneof" json:"fax2_original_display_name,omitempty" msg:"262532,omitempty" type:"31,omitempty"` + Fax2OriginalDisplayName *string `protobuf:"bytes,51,opt,name=fax2_original_display_name,json=fax2OriginalDisplayName,proto3,oneof" json:"fax2_original_display_name,omitempty" msg:"262532-31,omitempty"` // Contains the string value "FAX". - Fax3AddressType *string `protobuf:"bytes,53,opt,name=fax3_address_type,json=fax3AddressType,proto3,oneof" json:"fax3_address_type,omitempty" msg:"262562,omitempty" type:"31,omitempty"` + Fax3AddressType *string `protobuf:"bytes,53,opt,name=fax3_address_type,json=fax3AddressType,proto3,oneof" json:"fax3_address_type,omitempty" msg:"262562-31,omitempty"` // Contains a user-readable display name, followed by the "@" character, followed by a fax number. - Fax3EmailAddress *string `protobuf:"bytes,54,opt,name=fax3_email_address,json=fax3EmailAddress,proto3,oneof" json:"fax3_email_address,omitempty" msg:"262563,omitempty" type:"31,omitempty"` + Fax3EmailAddress *string `protobuf:"bytes,54,opt,name=fax3_email_address,json=fax3EmailAddress,proto3,oneof" json:"fax3_email_address,omitempty" msg:"262563-31,omitempty"` // Contains the same value as the PidTagNormalizedSubject property (section 2.812). - Fax3OriginalDisplayName *string `protobuf:"bytes,55,opt,name=fax3_original_display_name,json=fax3OriginalDisplayName,proto3,oneof" json:"fax3_original_display_name,omitempty" msg:"262564,omitempty" type:"31,omitempty"` + Fax3OriginalDisplayName *string `protobuf:"bytes,55,opt,name=fax3_original_display_name,json=fax3OriginalDisplayName,proto3,oneof" json:"fax3_original_display_name,omitempty" msg:"262564-31,omitempty"` // Specifies the name under which to file a contact when displaying a list of contacts. - FileUnder *string `protobuf:"bytes,57,opt,name=file_under,json=fileUnder,proto3,oneof" json:"file_under,omitempty" msg:"262149,omitempty" type:"31,omitempty"` + FileUnder *string `protobuf:"bytes,57,opt,name=file_under,json=fileUnder,proto3,oneof" json:"file_under,omitempty" msg:"262149-31,omitempty"` // Specifies how to generate and recompute the value of the PidLidFileUnder property (section 2.132) when other contact name properties change. - FileUnderId *int32 `protobuf:"varint,58,opt,name=file_under_id,json=fileUnderId,proto3,oneof" json:"file_under_id,omitempty" msg:"262150,omitempty" type:"3,omitempty"` + FileUnderId *int32 `protobuf:"varint,58,opt,name=file_under_id,json=fileUnderId,proto3,oneof" json:"file_under_id,omitempty" msg:"262150-3,omitempty"` // Specifies a URL path from which a client can retrieve free/busy status information for the contact. - FreeBusyLocation *string `protobuf:"bytes,60,opt,name=free_busy_location,json=freeBusyLocation,proto3,oneof" json:"free_busy_location,omitempty" msg:"262568,omitempty" type:"31,omitempty"` + FreeBusyLocation *string `protobuf:"bytes,60,opt,name=free_busy_location,json=freeBusyLocation,proto3,oneof" json:"free_busy_location,omitempty" msg:"262568-31,omitempty"` // Specifies whether the attachment has a picture. - HasPicture *bool `protobuf:"varint,61,opt,name=has_picture,json=hasPicture,proto3,oneof" json:"has_picture,omitempty" msg:"262181,omitempty" type:"11,omitempty"` + HasPicture *bool `protobuf:"varint,61,opt,name=has_picture,json=hasPicture,proto3,oneof" json:"has_picture,omitempty" msg:"262181-11,omitempty"` // Specifies the complete address of the home address of the contact. - HomeAddress *string `protobuf:"bytes,62,opt,name=home_address,json=homeAddress,proto3,oneof" json:"home_address,omitempty" msg:"262186,omitempty" type:"31,omitempty"` + HomeAddress *string `protobuf:"bytes,62,opt,name=home_address,json=homeAddress,proto3,oneof" json:"home_address,omitempty" msg:"262186-31,omitempty"` // Specifies the country code portion of the home address of the contact. - HomeAddressCountryCode *string `protobuf:"bytes,63,opt,name=home_address_country_code,json=homeAddressCountryCode,proto3,oneof" json:"home_address_country_code,omitempty" msg:"262570,omitempty" type:"31,omitempty"` + HomeAddressCountryCode *string `protobuf:"bytes,63,opt,name=home_address_country_code,json=homeAddressCountryCode,proto3,oneof" json:"home_address_country_code,omitempty" msg:"262570-31,omitempty"` // Specifies the business webpage URL of the contact. - Html *string `protobuf:"bytes,64,opt,name=html,proto3,oneof" json:"html,omitempty" msg:"262219,omitempty" type:"31,omitempty"` + Html *string `protobuf:"bytes,64,opt,name=html,proto3,oneof" json:"html,omitempty" msg:"262219-31,omitempty"` // Specifies the instant messaging address of the contact. - InstantMessagingAddress *string `protobuf:"bytes,65,opt,name=instant_messaging_address,json=instantMessagingAddress,proto3,oneof" json:"instant_messaging_address,omitempty" msg:"262338,omitempty" type:"31,omitempty"` + InstantMessagingAddress *string `protobuf:"bytes,65,opt,name=instant_messaging_address,json=instantMessagingAddress,proto3,oneof" json:"instant_messaging_address,omitempty" msg:"262338-31,omitempty"` // Specifies whether the contact is linked to other contacts. - IsContactLinked *bool `protobuf:"varint,66,opt,name=is_contact_linked,json=isContactLinked,proto3,oneof" json:"is_contact_linked,omitempty" msg:"262592,omitempty" type:"11,omitempty"` + IsContactLinked *bool `protobuf:"varint,66,opt,name=is_contact_linked,json=isContactLinked,proto3,oneof" json:"is_contact_linked,omitempty" msg:"262592-11,omitempty"` // Specifies the complete address of the other address of the contact. - OtherAddress *string `protobuf:"bytes,67,opt,name=other_address,json=otherAddress,proto3,oneof" json:"other_address,omitempty" msg:"262188,omitempty" type:"31,omitempty"` + OtherAddress *string `protobuf:"bytes,67,opt,name=other_address,json=otherAddress,proto3,oneof" json:"other_address,omitempty" msg:"262188-31,omitempty"` // Specifies the country code portion of the other address of the contact. - OtherAddressCountryCode *string `protobuf:"bytes,68,opt,name=other_address_country_code,json=otherAddressCountryCode,proto3,oneof" json:"other_address_country_code,omitempty" msg:"262572,omitempty" type:"31,omitempty"` + OtherAddressCountryCode *string `protobuf:"bytes,68,opt,name=other_address_country_code,json=otherAddressCountryCode,proto3,oneof" json:"other_address_country_code,omitempty" msg:"262572-31,omitempty"` // Specifies which physical address is the mailing address for this contact. - PostalAddressId *int32 `protobuf:"varint,69,opt,name=postal_address_id,json=postalAddressId,proto3,oneof" json:"postal_address_id,omitempty" msg:"262210,omitempty" type:"3,omitempty"` + PostalAddressId *int32 `protobuf:"varint,69,opt,name=postal_address_id,json=postalAddressId,proto3,oneof" json:"postal_address_id,omitempty" msg:"262210-3,omitempty"` // Specifies the wedding anniversary of the contact, at midnight in the client's local time zone, and is saved without any time zone conversions. - WeddingAnniversaryLocal *int64 `protobuf:"varint,71,opt,name=wedding_anniversary_local,json=weddingAnniversaryLocal,proto3,oneof" json:"wedding_anniversary_local,omitempty" msg:"262575,omitempty" type:"64,omitempty"` + WeddingAnniversaryLocal *int64 `protobuf:"varint,71,opt,name=wedding_anniversary_local,json=weddingAnniversaryLocal,proto3,oneof" json:"wedding_anniversary_local,omitempty" msg:"262575-64,omitempty"` // Specifies the complete address of the work address of the contact. - WorkAddress *string `protobuf:"bytes,72,opt,name=work_address,json=workAddress,proto3,oneof" json:"work_address,omitempty" msg:"262187,omitempty" type:"31,omitempty"` + WorkAddress *string `protobuf:"bytes,72,opt,name=work_address,json=workAddress,proto3,oneof" json:"work_address,omitempty" msg:"262187-31,omitempty"` // Specifies the city or locality portion of the work address of the contact. - WorkAddressCity *string `protobuf:"bytes,73,opt,name=work_address_city,json=workAddressCity,proto3,oneof" json:"work_address_city,omitempty" msg:"262278,omitempty" type:"31,omitempty"` + WorkAddressCity *string `protobuf:"bytes,73,opt,name=work_address_city,json=workAddressCity,proto3,oneof" json:"work_address_city,omitempty" msg:"262278-31,omitempty"` // Specifies the country or region portion of the work address of the contact. - WorkAddressCountry *string `protobuf:"bytes,74,opt,name=work_address_country,json=workAddressCountry,proto3,oneof" json:"work_address_country,omitempty" msg:"262281,omitempty" type:"31,omitempty"` + WorkAddressCountry *string `protobuf:"bytes,74,opt,name=work_address_country,json=workAddressCountry,proto3,oneof" json:"work_address_country,omitempty" msg:"262281-31,omitempty"` // Specifies the country code portion of the work address of the contact. - WorkAddressCountryCode *string `protobuf:"bytes,75,opt,name=work_address_country_code,json=workAddressCountryCode,proto3,oneof" json:"work_address_country_code,omitempty" msg:"262571,omitempty" type:"31,omitempty"` + WorkAddressCountryCode *string `protobuf:"bytes,75,opt,name=work_address_country_code,json=workAddressCountryCode,proto3,oneof" json:"work_address_country_code,omitempty" msg:"262571-31,omitempty"` // Specifies the postal code (ZIP code) portion of the work address of the contact. - WorkAddressPostalCode *string `protobuf:"bytes,76,opt,name=work_address_postal_code,json=workAddressPostalCode,proto3,oneof" json:"work_address_postal_code,omitempty" msg:"262280,omitempty" type:"31,omitempty"` + WorkAddressPostalCode *string `protobuf:"bytes,76,opt,name=work_address_postal_code,json=workAddressPostalCode,proto3,oneof" json:"work_address_postal_code,omitempty" msg:"262280-31,omitempty"` // Specifies the post office box portion of the work address of the contact. - WorkAddressPostOfficeBox *string `protobuf:"bytes,77,opt,name=work_address_post_office_box,json=workAddressPostOfficeBox,proto3,oneof" json:"work_address_post_office_box,omitempty" msg:"262282,omitempty" type:"31,omitempty"` + WorkAddressPostOfficeBox *string `protobuf:"bytes,77,opt,name=work_address_post_office_box,json=workAddressPostOfficeBox,proto3,oneof" json:"work_address_post_office_box,omitempty" msg:"262282-31,omitempty"` // Specifies the state or province portion of the work address of the contact. - WorkAddressState *string `protobuf:"bytes,78,opt,name=work_address_state,json=workAddressState,proto3,oneof" json:"work_address_state,omitempty" msg:"262279,omitempty" type:"31,omitempty"` + WorkAddressState *string `protobuf:"bytes,78,opt,name=work_address_state,json=workAddressState,proto3,oneof" json:"work_address_state,omitempty" msg:"262279-31,omitempty"` // Specifies the street portion of the work address of the contact. - WorkAddressStreet *string `protobuf:"bytes,79,opt,name=work_address_street,json=workAddressStreet,proto3,oneof" json:"work_address_street,omitempty" msg:"262277,omitempty" type:"31,omitempty"` + WorkAddressStreet *string `protobuf:"bytes,79,opt,name=work_address_street,json=workAddressStreet,proto3,oneof" json:"work_address_street,omitempty" msg:"262277-31,omitempty"` // Specifies the phonetic pronunciation of the company name of the contact. - YomiCompanyName *string `protobuf:"bytes,80,opt,name=yomi_company_name,json=yomiCompanyName,proto3,oneof" json:"yomi_company_name,omitempty" msg:"262222,omitempty" type:"31,omitempty"` + YomiCompanyName *string `protobuf:"bytes,80,opt,name=yomi_company_name,json=yomiCompanyName,proto3,oneof" json:"yomi_company_name,omitempty" msg:"262222-31,omitempty"` // Specifies the phonetic pronunciation of the given name of the contact. - YomiFirstName *string `protobuf:"bytes,81,opt,name=yomi_first_name,json=yomiFirstName,proto3,oneof" json:"yomi_first_name,omitempty" msg:"262220,omitempty" type:"31,omitempty"` + YomiFirstName *string `protobuf:"bytes,81,opt,name=yomi_first_name,json=yomiFirstName,proto3,oneof" json:"yomi_first_name,omitempty" msg:"262220-31,omitempty"` // Specifies the phonetic pronunciation of the surname of the contact. - YomiLastName *string `protobuf:"bytes,82,opt,name=yomi_last_name,json=yomiLastName,proto3,oneof" json:"yomi_last_name,omitempty" msg:"262221,omitempty" type:"31,omitempty"` + YomiLastName *string `protobuf:"bytes,82,opt,name=yomi_last_name,json=yomiLastName,proto3,oneof" json:"yomi_last_name,omitempty" msg:"262221-31,omitempty"` // Indicates the name of the contact associated with the birthday event. BirthdayContactAttributionDisplayName *string `protobuf:"bytes,83,opt,name=birthday_contact_attribution_display_name,json=birthdayContactAttributionDisplayName,proto3,oneof" json:"birthday_contact_attribution_display_name,omitempty"` // Indicates whether the contact associated with the birthday event is writable. IsBirthdayContactWritable *bool `protobuf:"varint,86,opt,name=is_birthday_contact_writable,json=isBirthdayContactWritable,proto3,oneof" json:"is_birthday_contact_writable,omitempty"` // Contains the date of the mail user's birthday at midnight. - Birthday *int64 `protobuf:"varint,87,opt,name=birthday,proto3,oneof" json:"birthday,omitempty" msg:"14914,omitempty" type:"64,omitempty"` + Birthday *int64 `protobuf:"varint,87,opt,name=birthday,proto3,oneof" json:"birthday,omitempty" msg:"14914-64,omitempty"` // Contains a secondary telephone number at the mail user's place of business. - Business2TelephoneNumber *string `protobuf:"bytes,88,opt,name=business2_telephone_number,json=business2TelephoneNumber,proto3,oneof" json:"business2_telephone_number,omitempty" msg:"14875,omitempty" type:"31,omitempty"` + Business2TelephoneNumber *string `protobuf:"bytes,88,opt,name=business2_telephone_number,json=business2TelephoneNumber,proto3,oneof" json:"business2_telephone_number,omitempty" msg:"14875-31,omitempty"` // Contains the telephone number of the mail user's business fax machine. - BusinessFaxNumber *string `protobuf:"bytes,90,opt,name=business_fax_number,json=businessFaxNumber,proto3,oneof" json:"business_fax_number,omitempty" msg:"14884,omitempty" type:"31,omitempty"` + BusinessFaxNumber *string `protobuf:"bytes,90,opt,name=business_fax_number,json=businessFaxNumber,proto3,oneof" json:"business_fax_number,omitempty" msg:"14884-31,omitempty"` // Contains the URL of the mail user's business home page. - BusinessHomePage *string `protobuf:"bytes,91,opt,name=business_home_page,json=businessHomePage,proto3,oneof" json:"business_home_page,omitempty" msg:"14929,omitempty" type:"31,omitempty"` + BusinessHomePage *string `protobuf:"bytes,91,opt,name=business_home_page,json=businessHomePage,proto3,oneof" json:"business_home_page,omitempty" msg:"14929-31,omitempty"` // Contains the primary telephone number of the mail user's place of business. - BusinessTelephoneNumber *string `protobuf:"bytes,92,opt,name=business_telephone_number,json=businessTelephoneNumber,proto3,oneof" json:"business_telephone_number,omitempty" msg:"14856,omitempty" type:"31,omitempty"` + BusinessTelephoneNumber *string `protobuf:"bytes,92,opt,name=business_telephone_number,json=businessTelephoneNumber,proto3,oneof" json:"business_telephone_number,omitempty" msg:"14856-31,omitempty"` // Contains a telephone number to reach the mail user. - CallbackTelephoneNumber *string `protobuf:"bytes,93,opt,name=callback_telephone_number,json=callbackTelephoneNumber,proto3,oneof" json:"callback_telephone_number,omitempty" msg:"14850,omitempty" type:"31,omitempty"` + CallbackTelephoneNumber *string `protobuf:"bytes,93,opt,name=callback_telephone_number,json=callbackTelephoneNumber,proto3,oneof" json:"callback_telephone_number,omitempty" msg:"14850-31,omitempty"` // Contains the mail user's car telephone number. - CarTelephoneNumber *string `protobuf:"bytes,94,opt,name=car_telephone_number,json=carTelephoneNumber,proto3,oneof" json:"car_telephone_number,omitempty" msg:"14878,omitempty" type:"31,omitempty"` + CarTelephoneNumber *string `protobuf:"bytes,94,opt,name=car_telephone_number,json=carTelephoneNumber,proto3,oneof" json:"car_telephone_number,omitempty" msg:"14878-31,omitempty"` // Contains the main telephone number of the mail user's company. - CompanyMainTelephoneNumber *string `protobuf:"bytes,96,opt,name=company_main_telephone_number,json=companyMainTelephoneNumber,proto3,oneof" json:"company_main_telephone_number,omitempty" msg:"14935,omitempty" type:"31,omitempty"` + CompanyMainTelephoneNumber *string `protobuf:"bytes,96,opt,name=company_main_telephone_number,json=companyMainTelephoneNumber,proto3,oneof" json:"company_main_telephone_number,omitempty" msg:"14935-31,omitempty"` // Contains the mail user's company name. - CompanyName *string `protobuf:"bytes,97,opt,name=company_name,json=companyName,proto3,oneof" json:"company_name,omitempty" msg:"14870,omitempty" type:"31,omitempty"` + CompanyName *string `protobuf:"bytes,97,opt,name=company_name,json=companyName,proto3,oneof" json:"company_name,omitempty" msg:"14870-31,omitempty"` // Contains the name of the mail user's computer network. - ComputerNetworkName *string `protobuf:"bytes,98,opt,name=computer_network_name,json=computerNetworkName,proto3,oneof" json:"computer_network_name,omitempty" msg:"14921,omitempty" type:"31,omitempty"` + ComputerNetworkName *string `protobuf:"bytes,98,opt,name=computer_network_name,json=computerNetworkName,proto3,oneof" json:"computer_network_name,omitempty" msg:"14921-31,omitempty"` // Contains the name of the mail user's country/region. - Country *string `protobuf:"bytes,99,opt,name=country,proto3,oneof" json:"country,omitempty" msg:"14886,omitempty" type:"31,omitempty"` + Country *string `protobuf:"bytes,99,opt,name=country,proto3,oneof" json:"country,omitempty" msg:"14886-31,omitempty"` // Contains the mail user's customer identification number. - CustomerId *string `protobuf:"bytes,100,opt,name=customer_id,json=customerId,proto3,oneof" json:"customer_id,omitempty" msg:"14922,omitempty" type:"31,omitempty"` + CustomerId *string `protobuf:"bytes,100,opt,name=customer_id,json=customerId,proto3,oneof" json:"customer_id,omitempty" msg:"14922-31,omitempty"` // Contains a name for the department in which the mail user works. - DepartmentName *string `protobuf:"bytes,101,opt,name=department_name,json=departmentName,proto3,oneof" json:"department_name,omitempty" msg:"14872,omitempty" type:"31,omitempty"` + DepartmentName *string `protobuf:"bytes,101,opt,name=department_name,json=departmentName,proto3,oneof" json:"department_name,omitempty" msg:"14872-31,omitempty"` // Contains the mail user's honorific title. - DisplayNamePrefix *string `protobuf:"bytes,102,opt,name=display_name_prefix,json=displayNamePrefix,proto3,oneof" json:"display_name_prefix,omitempty" msg:"14917,omitempty" type:"31,omitempty"` + DisplayNamePrefix *string `protobuf:"bytes,102,opt,name=display_name_prefix,json=displayNamePrefix,proto3,oneof" json:"display_name_prefix,omitempty" msg:"14917-31,omitempty"` // Contains the File Transfer Protocol (FTP) site address of the mail user. - FtpSite *string `protobuf:"bytes,103,opt,name=ftp_site,json=ftpSite,proto3,oneof" json:"ftp_site,omitempty" msg:"14924,omitempty" type:"31,omitempty"` + FtpSite *string `protobuf:"bytes,103,opt,name=ftp_site,json=ftpSite,proto3,oneof" json:"ftp_site,omitempty" msg:"14924-31,omitempty"` // Contains a value that represents the mail user's gender. - Gender *int32 `protobuf:"varint,104,opt,name=gender,proto3,oneof" json:"gender,omitempty" msg:"14925,omitempty" type:"2,omitempty"` + Gender *int32 `protobuf:"varint,104,opt,name=gender,proto3,oneof" json:"gender,omitempty" msg:"14925-2,omitempty"` // Contains a generational abbreviation that follows the full name of the mail user. - Generation *string `protobuf:"bytes,105,opt,name=generation,proto3,oneof" json:"generation,omitempty" msg:"14853,omitempty" type:"31,omitempty"` + Generation *string `protobuf:"bytes,105,opt,name=generation,proto3,oneof" json:"generation,omitempty" msg:"14853-31,omitempty"` // Contains the mail user's given name. - GivenName *string `protobuf:"bytes,106,opt,name=given_name,json=givenName,proto3,oneof" json:"given_name,omitempty" msg:"14854,omitempty" type:"31,omitempty"` + GivenName *string `protobuf:"bytes,106,opt,name=given_name,json=givenName,proto3,oneof" json:"given_name,omitempty" msg:"14854-31,omitempty"` // Contains a government identifier for the mail user. - GovernmentIdNumber *string `protobuf:"bytes,107,opt,name=government_id_number,json=governmentIdNumber,proto3,oneof" json:"government_id_number,omitempty" msg:"14855,omitempty" type:"31,omitempty"` + GovernmentIdNumber *string `protobuf:"bytes,107,opt,name=government_id_number,json=governmentIdNumber,proto3,oneof" json:"government_id_number,omitempty" msg:"14855-31,omitempty"` // Contains the names of the mail user's hobbies. - Hobbies *string `protobuf:"bytes,108,opt,name=hobbies,proto3,oneof" json:"hobbies,omitempty" msg:"14915,omitempty" type:"31,omitempty"` + Hobbies *string `protobuf:"bytes,108,opt,name=hobbies,proto3,oneof" json:"hobbies,omitempty" msg:"14915-31,omitempty"` // Contains a secondary telephone number at the mail user's home. - Home2TelephoneNumber *string `protobuf:"bytes,109,opt,name=home2_telephone_number,json=home2TelephoneNumber,proto3,oneof" json:"home2_telephone_number,omitempty" msg:"14895,omitempty" type:"31,omitempty"` + Home2TelephoneNumber *string `protobuf:"bytes,109,opt,name=home2_telephone_number,json=home2TelephoneNumber,proto3,oneof" json:"home2_telephone_number,omitempty" msg:"14895-31,omitempty"` // Contains the name of the mail user's home locality, such as the town or city. - HomeAddressCity *string `protobuf:"bytes,111,opt,name=home_address_city,json=homeAddressCity,proto3,oneof" json:"home_address_city,omitempty" msg:"14937,omitempty" type:"31,omitempty"` + HomeAddressCity *string `protobuf:"bytes,111,opt,name=home_address_city,json=homeAddressCity,proto3,oneof" json:"home_address_city,omitempty" msg:"14937-31,omitempty"` // Contains the name of the mail user's home country/region. - HomeAddressCountry *string `protobuf:"bytes,112,opt,name=home_address_country,json=homeAddressCountry,proto3,oneof" json:"home_address_country,omitempty" msg:"14938,omitempty" type:"31,omitempty"` + HomeAddressCountry *string `protobuf:"bytes,112,opt,name=home_address_country,json=homeAddressCountry,proto3,oneof" json:"home_address_country,omitempty" msg:"14938-31,omitempty"` // Contains the postal code for the mail user's home postal address. - HomeAddressPostalCode *string `protobuf:"bytes,113,opt,name=home_address_postal_code,json=homeAddressPostalCode,proto3,oneof" json:"home_address_postal_code,omitempty" msg:"14939,omitempty" type:"31,omitempty"` + HomeAddressPostalCode *string `protobuf:"bytes,113,opt,name=home_address_postal_code,json=homeAddressPostalCode,proto3,oneof" json:"home_address_postal_code,omitempty" msg:"14939-31,omitempty"` // Contains the number or identifier of the mail user's home post office box. - HomeAddressPostOfficeBox *string `protobuf:"bytes,114,opt,name=home_address_post_office_box,json=homeAddressPostOfficeBox,proto3,oneof" json:"home_address_post_office_box,omitempty" msg:"14942,omitempty" type:"31,omitempty"` + HomeAddressPostOfficeBox *string `protobuf:"bytes,114,opt,name=home_address_post_office_box,json=homeAddressPostOfficeBox,proto3,oneof" json:"home_address_post_office_box,omitempty" msg:"14942-31,omitempty"` // Contains the name of the mail user's home state or province. - HomeAddressStateOrProvince *string `protobuf:"bytes,115,opt,name=home_address_state_or_province,json=homeAddressStateOrProvince,proto3,oneof" json:"home_address_state_or_province,omitempty" msg:"14940,omitempty" type:"31,omitempty"` + HomeAddressStateOrProvince *string `protobuf:"bytes,115,opt,name=home_address_state_or_province,json=homeAddressStateOrProvince,proto3,oneof" json:"home_address_state_or_province,omitempty" msg:"14940-31,omitempty"` // Contains the mail user's home street address. - HomeAddressStreet *string `protobuf:"bytes,116,opt,name=home_address_street,json=homeAddressStreet,proto3,oneof" json:"home_address_street,omitempty" msg:"14941,omitempty" type:"31,omitempty"` + HomeAddressStreet *string `protobuf:"bytes,116,opt,name=home_address_street,json=homeAddressStreet,proto3,oneof" json:"home_address_street,omitempty" msg:"14941-31,omitempty"` // Contains the telephone number of the mail user's home fax machine. - HomeFaxNumber *string `protobuf:"bytes,117,opt,name=home_fax_number,json=homeFaxNumber,proto3,oneof" json:"home_fax_number,omitempty" msg:"14885,omitempty" type:"31,omitempty"` + HomeFaxNumber *string `protobuf:"bytes,117,opt,name=home_fax_number,json=homeFaxNumber,proto3,oneof" json:"home_fax_number,omitempty" msg:"14885-31,omitempty"` // Contains the primary telephone number of the mail user's home. - HomeTelephoneNumber *string `protobuf:"bytes,118,opt,name=home_telephone_number,json=homeTelephoneNumber,proto3,oneof" json:"home_telephone_number,omitempty" msg:"14857,omitempty" type:"31,omitempty"` + HomeTelephoneNumber *string `protobuf:"bytes,118,opt,name=home_telephone_number,json=homeTelephoneNumber,proto3,oneof" json:"home_telephone_number,omitempty" msg:"14857-31,omitempty"` // Specifies whether contact synchronization with an external source is handled by the server. - OscSyncEnabled *bool `protobuf:"varint,119,opt,name=osc_sync_enabled,json=oscSyncEnabled,proto3,oneof" json:"osc_sync_enabled,omitempty" msg:"31780,omitempty" type:"11,omitempty"` + OscSyncEnabled *bool `protobuf:"varint,119,opt,name=osc_sync_enabled,json=oscSyncEnabled,proto3,oneof" json:"osc_sync_enabled,omitempty" msg:"31780-11,omitempty"` // Contains the URL of the mail user's personal home page. - PersonalHomePage *string `protobuf:"bytes,120,opt,name=personal_home_page,json=personalHomePage,proto3,oneof" json:"personal_home_page,omitempty" msg:"14928,omitempty" type:"31,omitempty"` + PersonalHomePage *string `protobuf:"bytes,120,opt,name=personal_home_page,json=personalHomePage,proto3,oneof" json:"personal_home_page,omitempty" msg:"14928-31,omitempty"` // Contains the mail user's postal address. - PostalAddress *string `protobuf:"bytes,121,opt,name=postal_address,json=postalAddress,proto3,oneof" json:"postal_address,omitempty" msg:"14869,omitempty" type:"31,omitempty"` + PostalAddress *string `protobuf:"bytes,121,opt,name=postal_address,json=postalAddress,proto3,oneof" json:"postal_address,omitempty" msg:"14869-31,omitempty"` // Contains the postal code for the mail user's postal address. - PostalCode *string `protobuf:"bytes,122,opt,name=postal_code,json=postalCode,proto3,oneof" json:"postal_code,omitempty" msg:"14890,omitempty" type:"31,omitempty"` + PostalCode *string `protobuf:"bytes,122,opt,name=postal_code,json=postalCode,proto3,oneof" json:"postal_code,omitempty" msg:"14890-31,omitempty"` // Contains the number or identifier of the mail user's post office box. - PostOfficeBox *string `protobuf:"bytes,123,opt,name=post_office_box,json=postOfficeBox,proto3,oneof" json:"post_office_box,omitempty" msg:"14891,omitempty" type:"31,omitempty"` + PostOfficeBox *string `protobuf:"bytes,123,opt,name=post_office_box,json=postOfficeBox,proto3,oneof" json:"post_office_box,omitempty" msg:"14891-31,omitempty"` // Contains the telephone number of the mail user's primary fax machine. - PrimaryFaxNumber *string `protobuf:"bytes,124,opt,name=primary_fax_number,json=primaryFaxNumber,proto3,oneof" json:"primary_fax_number,omitempty" msg:"14883,omitempty" type:"31,omitempty"` + PrimaryFaxNumber *string `protobuf:"bytes,124,opt,name=primary_fax_number,json=primaryFaxNumber,proto3,oneof" json:"primary_fax_number,omitempty" msg:"14883-31,omitempty"` // Contains the mail user's primary telephone number. - PrimaryTelephoneNumber *string `protobuf:"bytes,125,opt,name=primary_telephone_number,json=primaryTelephoneNumber,proto3,oneof" json:"primary_telephone_number,omitempty" msg:"14874,omitempty" type:"31,omitempty"` + PrimaryTelephoneNumber *string `protobuf:"bytes,125,opt,name=primary_telephone_number,json=primaryTelephoneNumber,proto3,oneof" json:"primary_telephone_number,omitempty" msg:"14874-31,omitempty"` // Contains the name of the mail user's line of business. - Profession *string `protobuf:"bytes,126,opt,name=profession,proto3,oneof" json:"profession,omitempty" msg:"14918,omitempty" type:"31,omitempty"` + Profession *string `protobuf:"bytes,126,opt,name=profession,proto3,oneof" json:"profession,omitempty" msg:"14918-31,omitempty"` // Contains the mail user's radio telephone number. - RadioTelephoneNumber *string `protobuf:"bytes,127,opt,name=radio_telephone_number,json=radioTelephoneNumber,proto3,oneof" json:"radio_telephone_number,omitempty" msg:"14877,omitempty" type:"31,omitempty"` + RadioTelephoneNumber *string `protobuf:"bytes,127,opt,name=radio_telephone_number,json=radioTelephoneNumber,proto3,oneof" json:"radio_telephone_number,omitempty" msg:"14877-31,omitempty"` // Contains the name of the mail user's referral. - ReferredByName *string `protobuf:"bytes,128,opt,name=referred_by_name,json=referredByName,proto3,oneof" json:"referred_by_name,omitempty" msg:"14919,omitempty" type:"31,omitempty"` + ReferredByName *string `protobuf:"bytes,128,opt,name=referred_by_name,json=referredByName,proto3,oneof" json:"referred_by_name,omitempty" msg:"14919-31,omitempty"` // Contains the name of the mail user's spouse/partner. - SpouseName *string `protobuf:"bytes,129,opt,name=spouse_name,json=spouseName,proto3,oneof" json:"spouse_name,omitempty" msg:"14920,omitempty" type:"31,omitempty"` + SpouseName *string `protobuf:"bytes,129,opt,name=spouse_name,json=spouseName,proto3,oneof" json:"spouse_name,omitempty" msg:"14920-31,omitempty"` // Contains the name of the mail user's state or province. - StateOrProvince *string `protobuf:"bytes,130,opt,name=state_or_province,json=stateOrProvince,proto3,oneof" json:"state_or_province,omitempty" msg:"14888,omitempty" type:"31,omitempty"` + StateOrProvince *string `protobuf:"bytes,130,opt,name=state_or_province,json=stateOrProvince,proto3,oneof" json:"state_or_province,omitempty" msg:"14888-31,omitempty"` // Contains the mail user's street address. - StreetAddress *string `protobuf:"bytes,131,opt,name=street_address,json=streetAddress,proto3,oneof" json:"street_address,omitempty" msg:"14889,omitempty" type:"31,omitempty"` + StreetAddress *string `protobuf:"bytes,131,opt,name=street_address,json=streetAddress,proto3,oneof" json:"street_address,omitempty" msg:"14889-31,omitempty"` // Contains the mail user's family name. - Surname *string `protobuf:"bytes,132,opt,name=surname,proto3,oneof" json:"surname,omitempty" msg:"14865,omitempty" type:"31,omitempty"` + Surname *string `protobuf:"bytes,132,opt,name=surname,proto3,oneof" json:"surname,omitempty" msg:"14865-31,omitempty"` // Contains the mail user's telecommunication device for the deaf (TTY/TDD) telephone number. - TelecommunicationsDeviceForDeafTelephoneNumber *string `protobuf:"bytes,133,opt,name=telecommunications_device_for_deaf_telephone_number,json=telecommunicationsDeviceForDeafTelephoneNumber,proto3,oneof" json:"telecommunications_device_for_deaf_telephone_number,omitempty" msg:"14923,omitempty" type:"31,omitempty"` + TelecommunicationsDeviceForDeafTelephoneNumber *string `protobuf:"bytes,133,opt,name=telecommunications_device_for_deaf_telephone_number,json=telecommunicationsDeviceForDeafTelephoneNumber,proto3,oneof" json:"telecommunications_device_for_deaf_telephone_number,omitempty" msg:"14923-31,omitempty"` // Contains the mail user's telex number. This property is returned from an NSPI server as a PtypMultipleBinary. Otherwise, the data type is PtypString. - TelexNumber *string `protobuf:"bytes,134,opt,name=telex_number,json=telexNumber,proto3,oneof" json:"telex_number,omitempty" msg:"14892,omitempty" type:"31,omitempty"` + TelexNumber *string `protobuf:"bytes,134,opt,name=telex_number,json=telexNumber,proto3,oneof" json:"telex_number,omitempty" msg:"14892-31,omitempty"` // Contains the mail user's job title. - Title *string `protobuf:"bytes,135,opt,name=title,proto3,oneof" json:"title,omitempty" msg:"14871,omitempty" type:"31,omitempty"` + Title *string `protobuf:"bytes,135,opt,name=title,proto3,oneof" json:"title,omitempty" msg:"14871-31,omitempty"` // Contains the date of the mail user's wedding anniversary. - WeddingAnniversary *int64 `protobuf:"varint,138,opt,name=wedding_anniversary,json=weddingAnniversary,proto3,oneof" json:"wedding_anniversary,omitempty" msg:"14913,omitempty" type:"64,omitempty"` + WeddingAnniversary *int64 `protobuf:"varint,138,opt,name=wedding_anniversary,json=weddingAnniversary,proto3,oneof" json:"wedding_anniversary,omitempty" msg:"14913-64,omitempty"` } func (x *Contact) Reset() { diff --git a/pkg/properties/contact.pb_gen.go b/pkg/properties/contact.pb_gen.go index bd790f4..8f25249 100644 --- a/pkg/properties/contact.pb_gen.go +++ b/pkg/properties/contact.pb_gen.go @@ -24,7 +24,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "262217": + case "262217-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262573": + case "262573-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262213": + case "262213-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262574": + case "262574-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262211": + case "262211-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262600": + case "262600-72": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262598": + case "262598-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267526": + case "267526-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262287": + case "262287-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262304": + case "262304-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262305": + case "262305-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262306": + case "262306-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262176": + case "262176-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262284": + case "262284-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262307": + case "262307-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -294,7 +294,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262402": + case "262402-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -312,7 +312,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262400": + case "262400-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -330,7 +330,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262403": + case "262403-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -348,7 +348,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262404": + case "262404-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -366,7 +366,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262434": + case "262434-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -384,7 +384,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262432": + case "262432-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -402,7 +402,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262435": + case "262435-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -420,7 +420,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262436": + case "262436-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -438,7 +438,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262466": + case "262466-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -456,7 +456,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262464": + case "262464-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -474,7 +474,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262467": + case "262467-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -492,7 +492,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262468": + case "262468-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -510,7 +510,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262498": + case "262498-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -528,7 +528,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262499": + case "262499-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -546,7 +546,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262500": + case "262500-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -564,7 +564,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262530": + case "262530-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -582,7 +582,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262531": + case "262531-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -600,7 +600,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262532": + case "262532-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -618,7 +618,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262562": + case "262562-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -636,7 +636,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262563": + case "262563-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -654,7 +654,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262564": + case "262564-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -672,7 +672,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262149": + case "262149-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -690,7 +690,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262150": + case "262150-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -708,7 +708,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262568": + case "262568-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -726,7 +726,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262181": + case "262181-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -744,7 +744,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262186": + case "262186-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -762,7 +762,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262570": + case "262570-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -780,7 +780,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262219": + case "262219-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -798,7 +798,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262338": + case "262338-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -816,7 +816,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262592": + case "262592-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -834,7 +834,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262188": + case "262188-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -852,7 +852,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262572": + case "262572-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -870,7 +870,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262210": + case "262210-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -888,7 +888,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262575": + case "262575-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -906,7 +906,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262187": + case "262187-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -924,7 +924,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262278": + case "262278-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -942,7 +942,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262281": + case "262281-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -960,7 +960,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262571": + case "262571-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -978,7 +978,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262280": + case "262280-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -996,7 +996,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262282": + case "262282-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1014,7 +1014,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262279": + case "262279-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1032,7 +1032,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262277": + case "262277-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1050,7 +1050,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262222": + case "262222-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1068,7 +1068,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262220": + case "262220-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1086,7 +1086,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "262221": + case "262221-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1140,7 +1140,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14914": + case "14914-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1158,7 +1158,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14875": + case "14875-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1176,7 +1176,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14884": + case "14884-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1194,7 +1194,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14929": + case "14929-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1212,7 +1212,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14856": + case "14856-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1230,7 +1230,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14850": + case "14850-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1248,7 +1248,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14878": + case "14878-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1266,7 +1266,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14935": + case "14935-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1284,7 +1284,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14870": + case "14870-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1302,7 +1302,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14921": + case "14921-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1320,7 +1320,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14886": + case "14886-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1338,7 +1338,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14922": + case "14922-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1356,7 +1356,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14872": + case "14872-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1374,7 +1374,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14917": + case "14917-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1392,7 +1392,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14924": + case "14924-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1410,7 +1410,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14925": + case "14925-2": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1428,7 +1428,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14853": + case "14853-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1446,7 +1446,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14854": + case "14854-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1464,7 +1464,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14855": + case "14855-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1482,7 +1482,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14915": + case "14915-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1500,7 +1500,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14895": + case "14895-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1518,7 +1518,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14937": + case "14937-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1536,7 +1536,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14938": + case "14938-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1554,7 +1554,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14939": + case "14939-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1572,7 +1572,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14942": + case "14942-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1590,7 +1590,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14940": + case "14940-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1608,7 +1608,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14941": + case "14941-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1626,7 +1626,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14885": + case "14885-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1644,7 +1644,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14857": + case "14857-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1662,7 +1662,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "31780": + case "31780-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1680,7 +1680,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14928": + case "14928-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1698,7 +1698,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14869": + case "14869-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1716,7 +1716,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14890": + case "14890-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1734,7 +1734,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14891": + case "14891-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1752,7 +1752,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14883": + case "14883-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1770,7 +1770,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14874": + case "14874-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1788,7 +1788,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14918": + case "14918-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1806,7 +1806,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14877": + case "14877-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1824,7 +1824,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14919": + case "14919-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1842,7 +1842,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14920": + case "14920-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1860,7 +1860,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14888": + case "14888-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1878,7 +1878,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14889": + case "14889-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1896,7 +1896,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14865": + case "14865-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1914,7 +1914,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14923": + case "14923-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1932,7 +1932,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14892": + case "14892-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1950,7 +1950,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14871": + case "14871-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1968,7 +1968,7 @@ func (z *Contact) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14913": + case "14913-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2439,8 +2439,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // write "262217" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x37) + // write "262217-3" + err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x31, 0x37, 0x2d, 0x33) if err != nil { return } @@ -2458,8 +2458,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // write "262573" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x33) + // write "262573-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x37, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2477,8 +2477,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // write "262213" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x33) + // write "262213-11" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x32, 0x31, 0x33, 0x2d, 0x31, 0x31) if err != nil { return } @@ -2496,8 +2496,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // write "262574" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x34) + // write "262574-64" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x37, 0x34, 0x2d, 0x36, 0x34) if err != nil { return } @@ -2515,8 +2515,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // write "262211" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x31) + // write "262211-3" + err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x31, 0x31, 0x2d, 0x33) if err != nil { return } @@ -2534,8 +2534,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // write "262600" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x36, 0x30, 0x30) + // write "262600-72" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x36, 0x30, 0x30, 0x2d, 0x37, 0x32) if err != nil { return } @@ -2553,8 +2553,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // write "262598" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x39, 0x38) + // write "262598-3" + err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x35, 0x39, 0x38, 0x2d, 0x33) if err != nil { return } @@ -2572,8 +2572,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // write "267526" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x35, 0x32, 0x36) + // write "267526-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x35, 0x32, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2591,8 +2591,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // write "262287" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x37) + // write "262287-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x32, 0x38, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2610,8 +2610,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // write "262304" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x34) + // write "262304-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x33, 0x30, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2629,8 +2629,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // write "262305" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x35) + // write "262305-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x33, 0x30, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2648,8 +2648,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // write "262306" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x36) + // write "262306-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x33, 0x30, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2667,8 +2667,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // write "262176" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x37, 0x36) + // write "262176-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x31, 0x37, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2686,8 +2686,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // write "262284" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x34) + // write "262284-3" + err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x38, 0x34, 0x2d, 0x33) if err != nil { return } @@ -2705,8 +2705,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // write "262307" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x37) + // write "262307-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x33, 0x30, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2724,8 +2724,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000) == 0 { // if not empty - // write "262402" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x32) + // write "262402-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x30, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2743,8 +2743,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000) == 0 { // if not empty - // write "262400" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x30) + // write "262400-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x30, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2762,8 +2762,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000) == 0 { // if not empty - // write "262403" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x33) + // write "262403-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x30, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2781,8 +2781,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000) == 0 { // if not empty - // write "262404" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x34) + // write "262404-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x30, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2800,8 +2800,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000) == 0 { // if not empty - // write "262434" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x34) + // write "262434-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x33, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2819,8 +2819,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000) == 0 { // if not empty - // write "262432" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x32) + // write "262432-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x33, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2838,8 +2838,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000) == 0 { // if not empty - // write "262435" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x35) + // write "262435-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x33, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2857,8 +2857,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000) == 0 { // if not empty - // write "262436" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x36) + // write "262436-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x33, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2876,8 +2876,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000) == 0 { // if not empty - // write "262466" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x36) + // write "262466-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x36, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2895,8 +2895,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000) == 0 { // if not empty - // write "262464" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x34) + // write "262464-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x36, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2914,8 +2914,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // write "262467" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x37) + // write "262467-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x36, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2933,8 +2933,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // write "262468" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x38) + // write "262468-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x36, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2952,8 +2952,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // write "262498" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x39, 0x38) + // write "262498-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x39, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2971,8 +2971,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // write "262499" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x34, 0x39, 0x39) + // write "262499-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x34, 0x39, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2990,8 +2990,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // write "262500" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x30, 0x30) + // write "262500-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x30, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3009,8 +3009,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // write "262530" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x33, 0x30) + // write "262530-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x33, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3028,8 +3028,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // write "262531" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x33, 0x31) + // write "262531-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x33, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3047,8 +3047,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // write "262532" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x33, 0x32) + // write "262532-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x33, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3066,8 +3066,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // write "262562" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x32) + // write "262562-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x36, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3085,8 +3085,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // write "262563" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x33) + // write "262563-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x36, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3104,8 +3104,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // write "262564" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x34) + // write "262564-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x36, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3123,8 +3123,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // write "262149" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x34, 0x39) + // write "262149-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x31, 0x34, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3142,8 +3142,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // write "262150" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x35, 0x30) + // write "262150-3" + err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x31, 0x35, 0x30, 0x2d, 0x33) if err != nil { return } @@ -3161,8 +3161,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // write "262568" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x38) + // write "262568-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x36, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3180,8 +3180,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // write "262181" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x31) + // write "262181-11" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x31, 0x38, 0x31, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3199,8 +3199,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // write "262186" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x36) + // write "262186-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x31, 0x38, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3218,8 +3218,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // write "262570" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x30) + // write "262570-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x37, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3237,8 +3237,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // write "262219" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x39) + // write "262219-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x32, 0x31, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3256,8 +3256,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // write "262338" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x33, 0x33, 0x38) + // write "262338-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x33, 0x33, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3275,8 +3275,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // write "262592" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x39, 0x32) + // write "262592-11" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x39, 0x32, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3294,8 +3294,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // write "262188" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x38) + // write "262188-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x31, 0x38, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3313,8 +3313,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // write "262572" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x32) + // write "262572-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x37, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3332,8 +3332,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // write "262210" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x30) + // write "262210-3" + err = en.Append(0xa8, 0x32, 0x36, 0x32, 0x32, 0x31, 0x30, 0x2d, 0x33) if err != nil { return } @@ -3351,8 +3351,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // write "262575" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x35) + // write "262575-64" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x37, 0x35, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3370,8 +3370,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // write "262187" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x37) + // write "262187-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x31, 0x38, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3389,8 +3389,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // write "262278" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x37, 0x38) + // write "262278-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x32, 0x37, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3408,8 +3408,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // write "262281" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x31) + // write "262281-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x32, 0x38, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3427,8 +3427,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // write "262571" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x31) + // write "262571-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x35, 0x37, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3446,8 +3446,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // write "262280" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x30) + // write "262280-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x32, 0x38, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3465,8 +3465,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // write "262282" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x32) + // write "262282-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x32, 0x38, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3484,8 +3484,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000000) == 0 { // if not empty - // write "262279" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x37, 0x39) + // write "262279-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x32, 0x37, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3503,8 +3503,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000000) == 0 { // if not empty - // write "262277" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x37, 0x37) + // write "262277-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x32, 0x37, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3522,8 +3522,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000000) == 0 { // if not empty - // write "262222" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x32, 0x32) + // write "262222-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x32, 0x32, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3541,8 +3541,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000000) == 0 { // if not empty - // write "262220" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x32, 0x30) + // write "262220-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x32, 0x32, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3560,8 +3560,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000000) == 0 { // if not empty - // write "262221" - err = en.Append(0xa6, 0x32, 0x36, 0x32, 0x32, 0x32, 0x31) + // write "262221-31" + err = en.Append(0xa9, 0x32, 0x36, 0x32, 0x32, 0x32, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3613,8 +3613,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000000) == 0 { // if not empty - // write "14914" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x34) + // write "14914-64" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x31, 0x34, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3632,8 +3632,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000000) == 0 { // if not empty - // write "14875" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x35) + // write "14875-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x37, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3651,8 +3651,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1) == 0 { // if not empty - // write "14884" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x34) + // write "14884-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x38, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3670,8 +3670,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2) == 0 { // if not empty - // write "14929" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x39) + // write "14929-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x32, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3689,8 +3689,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4) == 0 { // if not empty - // write "14856" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x36) + // write "14856-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x35, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3708,8 +3708,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8) == 0 { // if not empty - // write "14850" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x30) + // write "14850-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x35, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3727,8 +3727,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10) == 0 { // if not empty - // write "14878" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x38) + // write "14878-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x37, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3746,8 +3746,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20) == 0 { // if not empty - // write "14935" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x33, 0x35) + // write "14935-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x33, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3765,8 +3765,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40) == 0 { // if not empty - // write "14870" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x30) + // write "14870-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x37, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3784,8 +3784,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80) == 0 { // if not empty - // write "14921" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x31) + // write "14921-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x32, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3803,8 +3803,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100) == 0 { // if not empty - // write "14886" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x36) + // write "14886-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x38, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3822,8 +3822,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200) == 0 { // if not empty - // write "14922" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x32) + // write "14922-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x32, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3841,8 +3841,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400) == 0 { // if not empty - // write "14872" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x32) + // write "14872-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x37, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3860,8 +3860,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800) == 0 { // if not empty - // write "14917" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x37) + // write "14917-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x31, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3879,8 +3879,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000) == 0 { // if not empty - // write "14924" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x34) + // write "14924-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x32, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3898,8 +3898,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000) == 0 { // if not empty - // write "14925" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x35) + // write "14925-2" + err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x32, 0x35, 0x2d, 0x32) if err != nil { return } @@ -3917,8 +3917,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000) == 0 { // if not empty - // write "14853" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x33) + // write "14853-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x35, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3936,8 +3936,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000) == 0 { // if not empty - // write "14854" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x34) + // write "14854-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x35, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3955,8 +3955,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000) == 0 { // if not empty - // write "14855" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x35) + // write "14855-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x35, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3974,8 +3974,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000) == 0 { // if not empty - // write "14915" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x35) + // write "14915-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x31, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3993,8 +3993,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000) == 0 { // if not empty - // write "14895" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x35) + // write "14895-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x39, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4012,8 +4012,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000) == 0 { // if not empty - // write "14937" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x33, 0x37) + // write "14937-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x33, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4031,8 +4031,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000) == 0 { // if not empty - // write "14938" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x33, 0x38) + // write "14938-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x33, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4050,8 +4050,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000) == 0 { // if not empty - // write "14939" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x33, 0x39) + // write "14939-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x33, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4069,8 +4069,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000) == 0 { // if not empty - // write "14942" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x32) + // write "14942-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x34, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4088,8 +4088,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000) == 0 { // if not empty - // write "14940" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x30) + // write "14940-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x34, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4107,8 +4107,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000) == 0 { // if not empty - // write "14941" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x31) + // write "14941-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x34, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4126,8 +4126,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000) == 0 { // if not empty - // write "14885" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x35) + // write "14885-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x38, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4145,8 +4145,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000) == 0 { // if not empty - // write "14857" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x37) + // write "14857-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x35, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4164,8 +4164,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000) == 0 { // if not empty - // write "31780" - err = en.Append(0xa5, 0x33, 0x31, 0x37, 0x38, 0x30) + // write "31780-11" + err = en.Append(0xa8, 0x33, 0x31, 0x37, 0x38, 0x30, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4183,8 +4183,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000) == 0 { // if not empty - // write "14928" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x38) + // write "14928-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x32, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4202,8 +4202,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000) == 0 { // if not empty - // write "14869" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x36, 0x39) + // write "14869-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x36, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4221,8 +4221,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000) == 0 { // if not empty - // write "14890" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x30) + // write "14890-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x39, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4240,8 +4240,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000) == 0 { // if not empty - // write "14891" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x31) + // write "14891-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x39, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4259,8 +4259,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000) == 0 { // if not empty - // write "14883" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x33) + // write "14883-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x38, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4278,8 +4278,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000000) == 0 { // if not empty - // write "14874" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x34) + // write "14874-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x37, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4297,8 +4297,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000000) == 0 { // if not empty - // write "14918" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x38) + // write "14918-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x31, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4316,8 +4316,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000000) == 0 { // if not empty - // write "14877" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x37) + // write "14877-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x37, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4335,8 +4335,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000000) == 0 { // if not empty - // write "14919" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x39) + // write "14919-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x31, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4354,8 +4354,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000000) == 0 { // if not empty - // write "14920" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x30) + // write "14920-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x32, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4373,8 +4373,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000000) == 0 { // if not empty - // write "14888" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x38) + // write "14888-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x38, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4392,8 +4392,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000000) == 0 { // if not empty - // write "14889" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x39) + // write "14889-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x38, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4411,8 +4411,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000000) == 0 { // if not empty - // write "14865" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x36, 0x35) + // write "14865-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x36, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4430,8 +4430,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000000) == 0 { // if not empty - // write "14923" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x33) + // write "14923-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x32, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4449,8 +4449,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000000) == 0 { // if not empty - // write "14892" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x32) + // write "14892-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x39, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4468,8 +4468,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000000) == 0 { // if not empty - // write "14871" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x31) + // write "14871-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x37, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4487,8 +4487,8 @@ func (z *Contact) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000000) == 0 { // if not empty - // write "14913" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x33) + // write "14913-64" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x31, 0x33, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4948,8 +4948,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // string "262217" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x37) + // string "262217-3" + o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x31, 0x37, 0x2d, 0x33) if z.AddressBookProviderArrayType == nil { o = msgp.AppendNil(o) } else { @@ -4957,8 +4957,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // string "262573" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x33) + // string "262573-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x37, 0x33, 0x2d, 0x33, 0x31) if z.AddressCountryCode == nil { o = msgp.AppendNil(o) } else { @@ -4966,8 +4966,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // string "262213" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x33) + // string "262213-11" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x32, 0x31, 0x33, 0x2d, 0x31, 0x31) if z.AutoLog == nil { o = msgp.AppendNil(o) } else { @@ -4975,8 +4975,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // string "262574" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x34) + // string "262574-64" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x37, 0x34, 0x2d, 0x36, 0x34) if z.BirthdayLocal == nil { o = msgp.AppendNil(o) } else { @@ -4984,8 +4984,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // string "262211" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x31) + // string "262211-3" + o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x31, 0x31, 0x2d, 0x33) if z.ContactCharacterSet == nil { o = msgp.AppendNil(o) } else { @@ -4993,8 +4993,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // string "262600" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x36, 0x30, 0x30) + // string "262600-72" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x36, 0x30, 0x30, 0x2d, 0x37, 0x32) if z.ContactLinkGlobalAddressListLinkId == nil { o = msgp.AppendNil(o) } else { @@ -5002,8 +5002,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // string "262598" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x39, 0x38) + // string "262598-3" + o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x35, 0x39, 0x38, 0x2d, 0x33) if z.ContactLinkGlobalAddressListLinkState == nil { o = msgp.AppendNil(o) } else { @@ -5011,8 +5011,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // string "267526" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x35, 0x32, 0x36) + // string "267526-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x35, 0x32, 0x36, 0x2d, 0x33, 0x31) if z.ContactLinkName == nil { o = msgp.AppendNil(o) } else { @@ -5020,8 +5020,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // string "262287" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x37) + // string "262287-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x32, 0x38, 0x37, 0x2d, 0x33, 0x31) if z.ContactUserField1 == nil { o = msgp.AppendNil(o) } else { @@ -5029,8 +5029,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // string "262304" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x34) + // string "262304-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x33, 0x30, 0x34, 0x2d, 0x33, 0x31) if z.ContactUserField2 == nil { o = msgp.AppendNil(o) } else { @@ -5038,8 +5038,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // string "262305" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x35) + // string "262305-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x33, 0x30, 0x35, 0x2d, 0x33, 0x31) if z.ContactUserField3 == nil { o = msgp.AppendNil(o) } else { @@ -5047,8 +5047,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // string "262306" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x36) + // string "262306-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x33, 0x30, 0x36, 0x2d, 0x33, 0x31) if z.ContactUserField4 == nil { o = msgp.AppendNil(o) } else { @@ -5056,8 +5056,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // string "262176" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x37, 0x36) + // string "262176-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x31, 0x37, 0x36, 0x2d, 0x33, 0x31) if z.Department == nil { o = msgp.AppendNil(o) } else { @@ -5065,8 +5065,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // string "262284" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x34) + // string "262284-3" + o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x38, 0x34, 0x2d, 0x33) if z.DistributionListChecksum == nil { o = msgp.AppendNil(o) } else { @@ -5074,8 +5074,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // string "262307" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x33, 0x30, 0x37) + // string "262307-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x33, 0x30, 0x37, 0x2d, 0x33, 0x31) if z.DistributionListName == nil { o = msgp.AppendNil(o) } else { @@ -5083,8 +5083,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000) == 0 { // if not empty - // string "262402" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x32) + // string "262402-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x30, 0x32, 0x2d, 0x33, 0x31) if z.Email1AddressType == nil { o = msgp.AppendNil(o) } else { @@ -5092,8 +5092,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000) == 0 { // if not empty - // string "262400" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x30) + // string "262400-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x30, 0x30, 0x2d, 0x33, 0x31) if z.Email1DisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5101,8 +5101,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000) == 0 { // if not empty - // string "262403" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x33) + // string "262403-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x30, 0x33, 0x2d, 0x33, 0x31) if z.Email1EmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -5110,8 +5110,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000) == 0 { // if not empty - // string "262404" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x30, 0x34) + // string "262404-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x30, 0x34, 0x2d, 0x33, 0x31) if z.Email1OriginalDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5119,8 +5119,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000) == 0 { // if not empty - // string "262434" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x34) + // string "262434-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x33, 0x34, 0x2d, 0x33, 0x31) if z.Email2AddressType == nil { o = msgp.AppendNil(o) } else { @@ -5128,8 +5128,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000) == 0 { // if not empty - // string "262432" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x32) + // string "262432-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x33, 0x32, 0x2d, 0x33, 0x31) if z.Email2DisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5137,8 +5137,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000) == 0 { // if not empty - // string "262435" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x35) + // string "262435-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x33, 0x35, 0x2d, 0x33, 0x31) if z.Email2EmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -5146,8 +5146,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000) == 0 { // if not empty - // string "262436" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x33, 0x36) + // string "262436-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x33, 0x36, 0x2d, 0x33, 0x31) if z.Email2OriginalDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5155,8 +5155,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000) == 0 { // if not empty - // string "262466" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x36) + // string "262466-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x36, 0x36, 0x2d, 0x33, 0x31) if z.Email3AddressType == nil { o = msgp.AppendNil(o) } else { @@ -5164,8 +5164,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000) == 0 { // if not empty - // string "262464" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x34) + // string "262464-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x36, 0x34, 0x2d, 0x33, 0x31) if z.Email3DisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5173,8 +5173,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // string "262467" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x37) + // string "262467-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x36, 0x37, 0x2d, 0x33, 0x31) if z.Email3EmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -5182,8 +5182,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // string "262468" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x36, 0x38) + // string "262468-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x36, 0x38, 0x2d, 0x33, 0x31) if z.Email3OriginalDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5191,8 +5191,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // string "262498" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x39, 0x38) + // string "262498-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x39, 0x38, 0x2d, 0x33, 0x31) if z.Fax1AddressType == nil { o = msgp.AppendNil(o) } else { @@ -5200,8 +5200,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // string "262499" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x34, 0x39, 0x39) + // string "262499-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x34, 0x39, 0x39, 0x2d, 0x33, 0x31) if z.Fax1EmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -5209,8 +5209,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // string "262500" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x30, 0x30) + // string "262500-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x30, 0x30, 0x2d, 0x33, 0x31) if z.Fax1OriginalDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5218,8 +5218,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // string "262530" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x33, 0x30) + // string "262530-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x33, 0x30, 0x2d, 0x33, 0x31) if z.Fax2AddressType == nil { o = msgp.AppendNil(o) } else { @@ -5227,8 +5227,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // string "262531" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x33, 0x31) + // string "262531-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x33, 0x31, 0x2d, 0x33, 0x31) if z.Fax2EmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -5236,8 +5236,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // string "262532" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x33, 0x32) + // string "262532-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x33, 0x32, 0x2d, 0x33, 0x31) if z.Fax2OriginalDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5245,8 +5245,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // string "262562" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x32) + // string "262562-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x36, 0x32, 0x2d, 0x33, 0x31) if z.Fax3AddressType == nil { o = msgp.AppendNil(o) } else { @@ -5254,8 +5254,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // string "262563" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x33) + // string "262563-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x36, 0x33, 0x2d, 0x33, 0x31) if z.Fax3EmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -5263,8 +5263,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // string "262564" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x34) + // string "262564-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x36, 0x34, 0x2d, 0x33, 0x31) if z.Fax3OriginalDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -5272,8 +5272,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // string "262149" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x34, 0x39) + // string "262149-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x31, 0x34, 0x39, 0x2d, 0x33, 0x31) if z.FileUnder == nil { o = msgp.AppendNil(o) } else { @@ -5281,8 +5281,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // string "262150" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x35, 0x30) + // string "262150-3" + o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x31, 0x35, 0x30, 0x2d, 0x33) if z.FileUnderId == nil { o = msgp.AppendNil(o) } else { @@ -5290,8 +5290,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // string "262568" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x36, 0x38) + // string "262568-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x36, 0x38, 0x2d, 0x33, 0x31) if z.FreeBusyLocation == nil { o = msgp.AppendNil(o) } else { @@ -5299,8 +5299,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // string "262181" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x31) + // string "262181-11" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x31, 0x38, 0x31, 0x2d, 0x31, 0x31) if z.HasPicture == nil { o = msgp.AppendNil(o) } else { @@ -5308,8 +5308,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // string "262186" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x36) + // string "262186-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x31, 0x38, 0x36, 0x2d, 0x33, 0x31) if z.HomeAddress == nil { o = msgp.AppendNil(o) } else { @@ -5317,8 +5317,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // string "262570" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x30) + // string "262570-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x37, 0x30, 0x2d, 0x33, 0x31) if z.HomeAddressCountryCode == nil { o = msgp.AppendNil(o) } else { @@ -5326,8 +5326,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // string "262219" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x39) + // string "262219-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x32, 0x31, 0x39, 0x2d, 0x33, 0x31) if z.Html == nil { o = msgp.AppendNil(o) } else { @@ -5335,8 +5335,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // string "262338" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x33, 0x33, 0x38) + // string "262338-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x33, 0x33, 0x38, 0x2d, 0x33, 0x31) if z.InstantMessagingAddress == nil { o = msgp.AppendNil(o) } else { @@ -5344,8 +5344,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // string "262592" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x39, 0x32) + // string "262592-11" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x39, 0x32, 0x2d, 0x31, 0x31) if z.IsContactLinked == nil { o = msgp.AppendNil(o) } else { @@ -5353,8 +5353,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // string "262188" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x38) + // string "262188-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x31, 0x38, 0x38, 0x2d, 0x33, 0x31) if z.OtherAddress == nil { o = msgp.AppendNil(o) } else { @@ -5362,8 +5362,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // string "262572" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x32) + // string "262572-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x37, 0x32, 0x2d, 0x33, 0x31) if z.OtherAddressCountryCode == nil { o = msgp.AppendNil(o) } else { @@ -5371,8 +5371,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // string "262210" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x31, 0x30) + // string "262210-3" + o = append(o, 0xa8, 0x32, 0x36, 0x32, 0x32, 0x31, 0x30, 0x2d, 0x33) if z.PostalAddressId == nil { o = msgp.AppendNil(o) } else { @@ -5380,8 +5380,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // string "262575" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x35) + // string "262575-64" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x37, 0x35, 0x2d, 0x36, 0x34) if z.WeddingAnniversaryLocal == nil { o = msgp.AppendNil(o) } else { @@ -5389,8 +5389,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // string "262187" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x31, 0x38, 0x37) + // string "262187-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x31, 0x38, 0x37, 0x2d, 0x33, 0x31) if z.WorkAddress == nil { o = msgp.AppendNil(o) } else { @@ -5398,8 +5398,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // string "262278" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x37, 0x38) + // string "262278-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x32, 0x37, 0x38, 0x2d, 0x33, 0x31) if z.WorkAddressCity == nil { o = msgp.AppendNil(o) } else { @@ -5407,8 +5407,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // string "262281" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x31) + // string "262281-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x32, 0x38, 0x31, 0x2d, 0x33, 0x31) if z.WorkAddressCountry == nil { o = msgp.AppendNil(o) } else { @@ -5416,8 +5416,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // string "262571" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x35, 0x37, 0x31) + // string "262571-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x35, 0x37, 0x31, 0x2d, 0x33, 0x31) if z.WorkAddressCountryCode == nil { o = msgp.AppendNil(o) } else { @@ -5425,8 +5425,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // string "262280" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x30) + // string "262280-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x32, 0x38, 0x30, 0x2d, 0x33, 0x31) if z.WorkAddressPostalCode == nil { o = msgp.AppendNil(o) } else { @@ -5434,8 +5434,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // string "262282" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x38, 0x32) + // string "262282-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x32, 0x38, 0x32, 0x2d, 0x33, 0x31) if z.WorkAddressPostOfficeBox == nil { o = msgp.AppendNil(o) } else { @@ -5443,8 +5443,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000000) == 0 { // if not empty - // string "262279" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x37, 0x39) + // string "262279-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x32, 0x37, 0x39, 0x2d, 0x33, 0x31) if z.WorkAddressState == nil { o = msgp.AppendNil(o) } else { @@ -5452,8 +5452,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000000) == 0 { // if not empty - // string "262277" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x37, 0x37) + // string "262277-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x32, 0x37, 0x37, 0x2d, 0x33, 0x31) if z.WorkAddressStreet == nil { o = msgp.AppendNil(o) } else { @@ -5461,8 +5461,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000000) == 0 { // if not empty - // string "262222" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x32, 0x32) + // string "262222-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x32, 0x32, 0x32, 0x2d, 0x33, 0x31) if z.YomiCompanyName == nil { o = msgp.AppendNil(o) } else { @@ -5470,8 +5470,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000000) == 0 { // if not empty - // string "262220" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x32, 0x30) + // string "262220-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x32, 0x32, 0x30, 0x2d, 0x33, 0x31) if z.YomiFirstName == nil { o = msgp.AppendNil(o) } else { @@ -5479,8 +5479,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000000) == 0 { // if not empty - // string "262221" - o = append(o, 0xa6, 0x32, 0x36, 0x32, 0x32, 0x32, 0x31) + // string "262221-31" + o = append(o, 0xa9, 0x32, 0x36, 0x32, 0x32, 0x32, 0x31, 0x2d, 0x33, 0x31) if z.YomiLastName == nil { o = msgp.AppendNil(o) } else { @@ -5502,8 +5502,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.AppendBool(o, *z.IsBirthdayContactWritable) } if (zb0001Mask[0] & 0x4000000000000000) == 0 { // if not empty - // string "14914" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x34) + // string "14914-64" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x31, 0x34, 0x2d, 0x36, 0x34) if z.Birthday == nil { o = msgp.AppendNil(o) } else { @@ -5511,8 +5511,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000000) == 0 { // if not empty - // string "14875" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x35) + // string "14875-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x37, 0x35, 0x2d, 0x33, 0x31) if z.Business2TelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5520,8 +5520,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1) == 0 { // if not empty - // string "14884" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x34) + // string "14884-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x38, 0x34, 0x2d, 0x33, 0x31) if z.BusinessFaxNumber == nil { o = msgp.AppendNil(o) } else { @@ -5529,8 +5529,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2) == 0 { // if not empty - // string "14929" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x39) + // string "14929-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x32, 0x39, 0x2d, 0x33, 0x31) if z.BusinessHomePage == nil { o = msgp.AppendNil(o) } else { @@ -5538,8 +5538,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4) == 0 { // if not empty - // string "14856" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x36) + // string "14856-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x35, 0x36, 0x2d, 0x33, 0x31) if z.BusinessTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5547,8 +5547,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8) == 0 { // if not empty - // string "14850" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x30) + // string "14850-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x35, 0x30, 0x2d, 0x33, 0x31) if z.CallbackTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5556,8 +5556,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10) == 0 { // if not empty - // string "14878" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x38) + // string "14878-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x37, 0x38, 0x2d, 0x33, 0x31) if z.CarTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5565,8 +5565,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20) == 0 { // if not empty - // string "14935" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x33, 0x35) + // string "14935-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x33, 0x35, 0x2d, 0x33, 0x31) if z.CompanyMainTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5574,8 +5574,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40) == 0 { // if not empty - // string "14870" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x30) + // string "14870-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x37, 0x30, 0x2d, 0x33, 0x31) if z.CompanyName == nil { o = msgp.AppendNil(o) } else { @@ -5583,8 +5583,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80) == 0 { // if not empty - // string "14921" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x31) + // string "14921-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x32, 0x31, 0x2d, 0x33, 0x31) if z.ComputerNetworkName == nil { o = msgp.AppendNil(o) } else { @@ -5592,8 +5592,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100) == 0 { // if not empty - // string "14886" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x36) + // string "14886-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x38, 0x36, 0x2d, 0x33, 0x31) if z.Country == nil { o = msgp.AppendNil(o) } else { @@ -5601,8 +5601,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200) == 0 { // if not empty - // string "14922" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x32) + // string "14922-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x32, 0x32, 0x2d, 0x33, 0x31) if z.CustomerId == nil { o = msgp.AppendNil(o) } else { @@ -5610,8 +5610,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400) == 0 { // if not empty - // string "14872" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x32) + // string "14872-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x37, 0x32, 0x2d, 0x33, 0x31) if z.DepartmentName == nil { o = msgp.AppendNil(o) } else { @@ -5619,8 +5619,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800) == 0 { // if not empty - // string "14917" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x37) + // string "14917-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x31, 0x37, 0x2d, 0x33, 0x31) if z.DisplayNamePrefix == nil { o = msgp.AppendNil(o) } else { @@ -5628,8 +5628,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000) == 0 { // if not empty - // string "14924" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x34) + // string "14924-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x32, 0x34, 0x2d, 0x33, 0x31) if z.FtpSite == nil { o = msgp.AppendNil(o) } else { @@ -5637,8 +5637,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000) == 0 { // if not empty - // string "14925" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x35) + // string "14925-2" + o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x32, 0x35, 0x2d, 0x32) if z.Gender == nil { o = msgp.AppendNil(o) } else { @@ -5646,8 +5646,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000) == 0 { // if not empty - // string "14853" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x33) + // string "14853-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x35, 0x33, 0x2d, 0x33, 0x31) if z.Generation == nil { o = msgp.AppendNil(o) } else { @@ -5655,8 +5655,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000) == 0 { // if not empty - // string "14854" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x34) + // string "14854-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x35, 0x34, 0x2d, 0x33, 0x31) if z.GivenName == nil { o = msgp.AppendNil(o) } else { @@ -5664,8 +5664,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000) == 0 { // if not empty - // string "14855" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x35) + // string "14855-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x35, 0x35, 0x2d, 0x33, 0x31) if z.GovernmentIdNumber == nil { o = msgp.AppendNil(o) } else { @@ -5673,8 +5673,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000) == 0 { // if not empty - // string "14915" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x35) + // string "14915-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x31, 0x35, 0x2d, 0x33, 0x31) if z.Hobbies == nil { o = msgp.AppendNil(o) } else { @@ -5682,8 +5682,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000) == 0 { // if not empty - // string "14895" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x35) + // string "14895-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x39, 0x35, 0x2d, 0x33, 0x31) if z.Home2TelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5691,8 +5691,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000) == 0 { // if not empty - // string "14937" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x33, 0x37) + // string "14937-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x33, 0x37, 0x2d, 0x33, 0x31) if z.HomeAddressCity == nil { o = msgp.AppendNil(o) } else { @@ -5700,8 +5700,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000) == 0 { // if not empty - // string "14938" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x33, 0x38) + // string "14938-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x33, 0x38, 0x2d, 0x33, 0x31) if z.HomeAddressCountry == nil { o = msgp.AppendNil(o) } else { @@ -5709,8 +5709,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000) == 0 { // if not empty - // string "14939" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x33, 0x39) + // string "14939-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x33, 0x39, 0x2d, 0x33, 0x31) if z.HomeAddressPostalCode == nil { o = msgp.AppendNil(o) } else { @@ -5718,8 +5718,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000) == 0 { // if not empty - // string "14942" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x32) + // string "14942-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x34, 0x32, 0x2d, 0x33, 0x31) if z.HomeAddressPostOfficeBox == nil { o = msgp.AppendNil(o) } else { @@ -5727,8 +5727,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000) == 0 { // if not empty - // string "14940" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x30) + // string "14940-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x34, 0x30, 0x2d, 0x33, 0x31) if z.HomeAddressStateOrProvince == nil { o = msgp.AppendNil(o) } else { @@ -5736,8 +5736,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000) == 0 { // if not empty - // string "14941" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x31) + // string "14941-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x34, 0x31, 0x2d, 0x33, 0x31) if z.HomeAddressStreet == nil { o = msgp.AppendNil(o) } else { @@ -5745,8 +5745,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000) == 0 { // if not empty - // string "14885" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x35) + // string "14885-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x38, 0x35, 0x2d, 0x33, 0x31) if z.HomeFaxNumber == nil { o = msgp.AppendNil(o) } else { @@ -5754,8 +5754,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000) == 0 { // if not empty - // string "14857" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x37) + // string "14857-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x35, 0x37, 0x2d, 0x33, 0x31) if z.HomeTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5763,8 +5763,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000) == 0 { // if not empty - // string "31780" - o = append(o, 0xa5, 0x33, 0x31, 0x37, 0x38, 0x30) + // string "31780-11" + o = append(o, 0xa8, 0x33, 0x31, 0x37, 0x38, 0x30, 0x2d, 0x31, 0x31) if z.OscSyncEnabled == nil { o = msgp.AppendNil(o) } else { @@ -5772,8 +5772,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000) == 0 { // if not empty - // string "14928" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x38) + // string "14928-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x32, 0x38, 0x2d, 0x33, 0x31) if z.PersonalHomePage == nil { o = msgp.AppendNil(o) } else { @@ -5781,8 +5781,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000) == 0 { // if not empty - // string "14869" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x36, 0x39) + // string "14869-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x36, 0x39, 0x2d, 0x33, 0x31) if z.PostalAddress == nil { o = msgp.AppendNil(o) } else { @@ -5790,8 +5790,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000) == 0 { // if not empty - // string "14890" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x30) + // string "14890-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x39, 0x30, 0x2d, 0x33, 0x31) if z.PostalCode == nil { o = msgp.AppendNil(o) } else { @@ -5799,8 +5799,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000) == 0 { // if not empty - // string "14891" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x31) + // string "14891-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x39, 0x31, 0x2d, 0x33, 0x31) if z.PostOfficeBox == nil { o = msgp.AppendNil(o) } else { @@ -5808,8 +5808,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000) == 0 { // if not empty - // string "14883" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x33) + // string "14883-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x38, 0x33, 0x2d, 0x33, 0x31) if z.PrimaryFaxNumber == nil { o = msgp.AppendNil(o) } else { @@ -5817,8 +5817,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000000) == 0 { // if not empty - // string "14874" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x34) + // string "14874-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x37, 0x34, 0x2d, 0x33, 0x31) if z.PrimaryTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5826,8 +5826,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000000) == 0 { // if not empty - // string "14918" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x38) + // string "14918-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x31, 0x38, 0x2d, 0x33, 0x31) if z.Profession == nil { o = msgp.AppendNil(o) } else { @@ -5835,8 +5835,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000000) == 0 { // if not empty - // string "14877" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x37) + // string "14877-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x37, 0x37, 0x2d, 0x33, 0x31) if z.RadioTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5844,8 +5844,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000000) == 0 { // if not empty - // string "14919" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x39) + // string "14919-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x31, 0x39, 0x2d, 0x33, 0x31) if z.ReferredByName == nil { o = msgp.AppendNil(o) } else { @@ -5853,8 +5853,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000000) == 0 { // if not empty - // string "14920" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x30) + // string "14920-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x32, 0x30, 0x2d, 0x33, 0x31) if z.SpouseName == nil { o = msgp.AppendNil(o) } else { @@ -5862,8 +5862,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000000) == 0 { // if not empty - // string "14888" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x38) + // string "14888-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x38, 0x38, 0x2d, 0x33, 0x31) if z.StateOrProvince == nil { o = msgp.AppendNil(o) } else { @@ -5871,8 +5871,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000000) == 0 { // if not empty - // string "14889" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x39) + // string "14889-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x38, 0x39, 0x2d, 0x33, 0x31) if z.StreetAddress == nil { o = msgp.AppendNil(o) } else { @@ -5880,8 +5880,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000000) == 0 { // if not empty - // string "14865" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x36, 0x35) + // string "14865-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x36, 0x35, 0x2d, 0x33, 0x31) if z.Surname == nil { o = msgp.AppendNil(o) } else { @@ -5889,8 +5889,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000000) == 0 { // if not empty - // string "14923" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x33) + // string "14923-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x32, 0x33, 0x2d, 0x33, 0x31) if z.TelecommunicationsDeviceForDeafTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -5898,8 +5898,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000000) == 0 { // if not empty - // string "14892" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x32) + // string "14892-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x39, 0x32, 0x2d, 0x33, 0x31) if z.TelexNumber == nil { o = msgp.AppendNil(o) } else { @@ -5907,8 +5907,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000000) == 0 { // if not empty - // string "14871" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x31) + // string "14871-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x37, 0x31, 0x2d, 0x33, 0x31) if z.Title == nil { o = msgp.AppendNil(o) } else { @@ -5916,8 +5916,8 @@ func (z *Contact) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000000) == 0 { // if not empty - // string "14913" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x33) + // string "14913-64" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x31, 0x33, 0x2d, 0x36, 0x34) if z.WeddingAnniversary == nil { o = msgp.AppendNil(o) } else { @@ -5945,7 +5945,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "262217": + case "262217-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -5962,7 +5962,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262573": + case "262573-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -5979,7 +5979,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262213": + case "262213-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -5996,7 +5996,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262574": + case "262574-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6013,7 +6013,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262211": + case "262211-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6030,7 +6030,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262600": + case "262600-72": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6047,7 +6047,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262598": + case "262598-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6064,7 +6064,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267526": + case "267526-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6081,7 +6081,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262287": + case "262287-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6098,7 +6098,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262304": + case "262304-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6115,7 +6115,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262305": + case "262305-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6132,7 +6132,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262306": + case "262306-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6149,7 +6149,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262176": + case "262176-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6166,7 +6166,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262284": + case "262284-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6183,7 +6183,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262307": + case "262307-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6200,7 +6200,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262402": + case "262402-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6217,7 +6217,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262400": + case "262400-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6234,7 +6234,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262403": + case "262403-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6251,7 +6251,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262404": + case "262404-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6268,7 +6268,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262434": + case "262434-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6285,7 +6285,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262432": + case "262432-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6302,7 +6302,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262435": + case "262435-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6319,7 +6319,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262436": + case "262436-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6336,7 +6336,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262466": + case "262466-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6353,7 +6353,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262464": + case "262464-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6370,7 +6370,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262467": + case "262467-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6387,7 +6387,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262468": + case "262468-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6404,7 +6404,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262498": + case "262498-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6421,7 +6421,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262499": + case "262499-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6438,7 +6438,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262500": + case "262500-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6455,7 +6455,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262530": + case "262530-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6472,7 +6472,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262531": + case "262531-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6489,7 +6489,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262532": + case "262532-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6506,7 +6506,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262562": + case "262562-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6523,7 +6523,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262563": + case "262563-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6540,7 +6540,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262564": + case "262564-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6557,7 +6557,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262149": + case "262149-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6574,7 +6574,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262150": + case "262150-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6591,7 +6591,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262568": + case "262568-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6608,7 +6608,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262181": + case "262181-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6625,7 +6625,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262186": + case "262186-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6642,7 +6642,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262570": + case "262570-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6659,7 +6659,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262219": + case "262219-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6676,7 +6676,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262338": + case "262338-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6693,7 +6693,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262592": + case "262592-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6710,7 +6710,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262188": + case "262188-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6727,7 +6727,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262572": + case "262572-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6744,7 +6744,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262210": + case "262210-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6761,7 +6761,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262575": + case "262575-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6778,7 +6778,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262187": + case "262187-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6795,7 +6795,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262278": + case "262278-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6812,7 +6812,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262281": + case "262281-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6829,7 +6829,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262571": + case "262571-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6846,7 +6846,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262280": + case "262280-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6863,7 +6863,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262282": + case "262282-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6880,7 +6880,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262279": + case "262279-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6897,7 +6897,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262277": + case "262277-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6914,7 +6914,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262222": + case "262222-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6931,7 +6931,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262220": + case "262220-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6948,7 +6948,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "262221": + case "262221-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -6999,7 +6999,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14914": + case "14914-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7016,7 +7016,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14875": + case "14875-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7033,7 +7033,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14884": + case "14884-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7050,7 +7050,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14929": + case "14929-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7067,7 +7067,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14856": + case "14856-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7084,7 +7084,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14850": + case "14850-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7101,7 +7101,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14878": + case "14878-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7118,7 +7118,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14935": + case "14935-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7135,7 +7135,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14870": + case "14870-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7152,7 +7152,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14921": + case "14921-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7169,7 +7169,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14886": + case "14886-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7186,7 +7186,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14922": + case "14922-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7203,7 +7203,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14872": + case "14872-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7220,7 +7220,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14917": + case "14917-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7237,7 +7237,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14924": + case "14924-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7254,7 +7254,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14925": + case "14925-2": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7271,7 +7271,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14853": + case "14853-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7288,7 +7288,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14854": + case "14854-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7305,7 +7305,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14855": + case "14855-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7322,7 +7322,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14915": + case "14915-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7339,7 +7339,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14895": + case "14895-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7356,7 +7356,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14937": + case "14937-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7373,7 +7373,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14938": + case "14938-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7390,7 +7390,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14939": + case "14939-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7407,7 +7407,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14942": + case "14942-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7424,7 +7424,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14940": + case "14940-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7441,7 +7441,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14941": + case "14941-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7458,7 +7458,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14885": + case "14885-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7475,7 +7475,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14857": + case "14857-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7492,7 +7492,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "31780": + case "31780-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7509,7 +7509,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14928": + case "14928-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7526,7 +7526,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14869": + case "14869-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7543,7 +7543,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14890": + case "14890-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7560,7 +7560,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14891": + case "14891-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7577,7 +7577,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14883": + case "14883-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7594,7 +7594,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14874": + case "14874-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7611,7 +7611,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14918": + case "14918-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7628,7 +7628,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14877": + case "14877-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7645,7 +7645,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14919": + case "14919-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7662,7 +7662,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14920": + case "14920-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7679,7 +7679,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14888": + case "14888-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7696,7 +7696,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14889": + case "14889-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7713,7 +7713,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14865": + case "14865-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7730,7 +7730,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14923": + case "14923-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7747,7 +7747,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14892": + case "14892-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7764,7 +7764,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14871": + case "14871-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7781,7 +7781,7 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14913": + case "14913-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7812,361 +7812,361 @@ func (z *Contact) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Contact) Msgsize() (s int) { - s = 3 + 7 + s = 3 + 9 if z.AddressBookProviderArrayType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.AddressCountryCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressCountryCode) } - s += 7 + s += 10 if z.AutoLog == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.BirthdayLocal == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.ContactCharacterSet == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.ContactLinkGlobalAddressListLinkId == nil { s += msgp.NilSize } else { s += msgp.Uint64Size } - s += 7 + s += 9 if z.ContactLinkGlobalAddressListLinkState == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.ContactLinkName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ContactLinkName) } - s += 7 + s += 10 if z.ContactUserField1 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ContactUserField1) } - s += 7 + s += 10 if z.ContactUserField2 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ContactUserField2) } - s += 7 + s += 10 if z.ContactUserField3 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ContactUserField3) } - s += 7 + s += 10 if z.ContactUserField4 == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ContactUserField4) } - s += 7 + s += 10 if z.Department == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Department) } - s += 7 + s += 9 if z.DistributionListChecksum == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.DistributionListName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.DistributionListName) } - s += 7 + s += 10 if z.Email1AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email1AddressType) } - s += 7 + s += 10 if z.Email1DisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email1DisplayName) } - s += 7 + s += 10 if z.Email1EmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email1EmailAddress) } - s += 7 + s += 10 if z.Email1OriginalDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email1OriginalDisplayName) } - s += 7 + s += 10 if z.Email2AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email2AddressType) } - s += 7 + s += 10 if z.Email2DisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email2DisplayName) } - s += 7 + s += 10 if z.Email2EmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email2EmailAddress) } - s += 7 + s += 10 if z.Email2OriginalDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email2OriginalDisplayName) } - s += 7 + s += 10 if z.Email3AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email3AddressType) } - s += 7 + s += 10 if z.Email3DisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email3DisplayName) } - s += 7 + s += 10 if z.Email3EmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email3EmailAddress) } - s += 7 + s += 10 if z.Email3OriginalDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Email3OriginalDisplayName) } - s += 7 + s += 10 if z.Fax1AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax1AddressType) } - s += 7 + s += 10 if z.Fax1EmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax1EmailAddress) } - s += 7 + s += 10 if z.Fax1OriginalDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax1OriginalDisplayName) } - s += 7 + s += 10 if z.Fax2AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax2AddressType) } - s += 7 + s += 10 if z.Fax2EmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax2EmailAddress) } - s += 7 + s += 10 if z.Fax2OriginalDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax2OriginalDisplayName) } - s += 7 + s += 10 if z.Fax3AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax3AddressType) } - s += 7 + s += 10 if z.Fax3EmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax3EmailAddress) } - s += 7 + s += 10 if z.Fax3OriginalDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Fax3OriginalDisplayName) } - s += 7 + s += 10 if z.FileUnder == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.FileUnder) } - s += 7 + s += 9 if z.FileUnderId == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.FreeBusyLocation == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.FreeBusyLocation) } - s += 7 + s += 10 if z.HasPicture == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.HomeAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddress) } - s += 7 + s += 10 if z.HomeAddressCountryCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressCountryCode) } - s += 7 + s += 10 if z.Html == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Html) } - s += 7 + s += 10 if z.InstantMessagingAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.InstantMessagingAddress) } - s += 7 + s += 10 if z.IsContactLinked == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.OtherAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddress) } - s += 7 + s += 10 if z.OtherAddressCountryCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressCountryCode) } - s += 7 + s += 9 if z.PostalAddressId == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.WeddingAnniversaryLocal == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.WorkAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddress) } - s += 7 + s += 10 if z.WorkAddressCity == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressCity) } - s += 7 + s += 10 if z.WorkAddressCountry == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressCountry) } - s += 7 + s += 10 if z.WorkAddressCountryCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressCountryCode) } - s += 7 + s += 10 if z.WorkAddressPostalCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressPostalCode) } - s += 7 + s += 10 if z.WorkAddressPostOfficeBox == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressPostOfficeBox) } - s += 7 + s += 10 if z.WorkAddressState == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressState) } - s += 7 + s += 10 if z.WorkAddressStreet == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.WorkAddressStreet) } - s += 7 + s += 10 if z.YomiCompanyName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.YomiCompanyName) } - s += 7 + s += 10 if z.YomiFirstName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.YomiFirstName) } - s += 7 + s += 10 if z.YomiLastName == nil { s += msgp.NilSize } else { @@ -8184,283 +8184,283 @@ func (z *Contact) Msgsize() (s int) { } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.Birthday == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 6 + s += 9 if z.Business2TelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Business2TelephoneNumber) } - s += 6 + s += 9 if z.BusinessFaxNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.BusinessFaxNumber) } - s += 6 + s += 9 if z.BusinessHomePage == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.BusinessHomePage) } - s += 6 + s += 9 if z.BusinessTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.BusinessTelephoneNumber) } - s += 6 + s += 9 if z.CallbackTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CallbackTelephoneNumber) } - s += 6 + s += 9 if z.CarTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CarTelephoneNumber) } - s += 6 + s += 9 if z.CompanyMainTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CompanyMainTelephoneNumber) } - s += 6 + s += 9 if z.CompanyName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CompanyName) } - s += 6 + s += 9 if z.ComputerNetworkName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ComputerNetworkName) } - s += 6 + s += 9 if z.Country == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Country) } - s += 6 + s += 9 if z.CustomerId == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CustomerId) } - s += 6 + s += 9 if z.DepartmentName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.DepartmentName) } - s += 6 + s += 9 if z.DisplayNamePrefix == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.DisplayNamePrefix) } - s += 6 + s += 9 if z.FtpSite == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.FtpSite) } - s += 6 + s += 8 if z.Gender == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.Generation == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Generation) } - s += 6 + s += 9 if z.GivenName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.GivenName) } - s += 6 + s += 9 if z.GovernmentIdNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.GovernmentIdNumber) } - s += 6 + s += 9 if z.Hobbies == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Hobbies) } - s += 6 + s += 9 if z.Home2TelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Home2TelephoneNumber) } - s += 6 + s += 9 if z.HomeAddressCity == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressCity) } - s += 6 + s += 9 if z.HomeAddressCountry == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressCountry) } - s += 6 + s += 9 if z.HomeAddressPostalCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressPostalCode) } - s += 6 + s += 9 if z.HomeAddressPostOfficeBox == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressPostOfficeBox) } - s += 6 + s += 9 if z.HomeAddressStateOrProvince == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressStateOrProvince) } - s += 6 + s += 9 if z.HomeAddressStreet == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeAddressStreet) } - s += 6 + s += 9 if z.HomeFaxNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeFaxNumber) } - s += 6 + s += 9 if z.HomeTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.HomeTelephoneNumber) } - s += 6 + s += 9 if z.OscSyncEnabled == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.PersonalHomePage == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PersonalHomePage) } - s += 6 + s += 9 if z.PostalAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostalAddress) } - s += 6 + s += 9 if z.PostalCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostalCode) } - s += 6 + s += 9 if z.PostOfficeBox == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostOfficeBox) } - s += 6 + s += 9 if z.PrimaryFaxNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PrimaryFaxNumber) } - s += 6 + s += 9 if z.PrimaryTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PrimaryTelephoneNumber) } - s += 6 + s += 9 if z.Profession == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Profession) } - s += 6 + s += 9 if z.RadioTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.RadioTelephoneNumber) } - s += 6 + s += 9 if z.ReferredByName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReferredByName) } - s += 6 + s += 9 if z.SpouseName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SpouseName) } - s += 6 + s += 9 if z.StateOrProvince == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.StateOrProvince) } - s += 6 + s += 9 if z.StreetAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.StreetAddress) } - s += 6 + s += 9 if z.Surname == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Surname) } - s += 6 + s += 9 if z.TelecommunicationsDeviceForDeafTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TelecommunicationsDeviceForDeafTelephoneNumber) } - s += 6 + s += 9 if z.TelexNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TelexNumber) } - s += 6 + s += 9 if z.Title == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Title) } - s += 6 + s += 9 if z.WeddingAnniversary == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/journal.pb.go b/pkg/properties/journal.pb.go index d49ba10..fc4d7f6 100644 --- a/pkg/properties/journal.pb.go +++ b/pkg/properties/journal.pb.go @@ -44,25 +44,25 @@ type Journal struct { unknownFields protoimpl.UnknownFields // Indicates whether the document was sent by email or posted to a server folder during journaling. - LogDocumentPosted *bool `protobuf:"varint,1,opt,name=log_document_posted,json=logDocumentPosted,proto3,oneof" json:"log_document_posted,omitempty" msg:"269345,omitempty" type:"11,omitempty"` + LogDocumentPosted *bool `protobuf:"varint,1,opt,name=log_document_posted,json=logDocumentPosted,proto3,oneof" json:"log_document_posted,omitempty" msg:"269345-11,omitempty"` // Indicates whether the document was printed during journaling. - LogDocumentPrinted *bool `protobuf:"varint,2,opt,name=log_document_printed,json=logDocumentPrinted,proto3,oneof" json:"log_document_printed,omitempty" msg:"269326,omitempty" type:"11,omitempty"` + LogDocumentPrinted *bool `protobuf:"varint,2,opt,name=log_document_printed,json=logDocumentPrinted,proto3,oneof" json:"log_document_printed,omitempty" msg:"269326-11,omitempty"` // Indicates whether the document was sent to a routing recipient during journaling. - LogDocumentRouted *bool `protobuf:"varint,3,opt,name=log_document_routed,json=logDocumentRouted,proto3,oneof" json:"log_document_routed,omitempty" msg:"269344,omitempty" type:"11,omitempty"` + LogDocumentRouted *bool `protobuf:"varint,3,opt,name=log_document_routed,json=logDocumentRouted,proto3,oneof" json:"log_document_routed,omitempty" msg:"269344-11,omitempty"` // Indicates whether the document was saved during journaling. - LogDocumentSaved *bool `protobuf:"varint,4,opt,name=log_document_saved,json=logDocumentSaved,proto3,oneof" json:"log_document_saved,omitempty" msg:"269327,omitempty" type:"11,omitempty"` + LogDocumentSaved *bool `protobuf:"varint,4,opt,name=log_document_saved,json=logDocumentSaved,proto3,oneof" json:"log_document_saved,omitempty" msg:"269327-11,omitempty"` // Contains the duration, in minutes, of the activity. - LogDuration *int32 `protobuf:"varint,5,opt,name=log_duration,json=logDuration,proto3,oneof" json:"log_duration,omitempty" msg:"269319,omitempty" type:"3,omitempty"` + LogDuration *int32 `protobuf:"varint,5,opt,name=log_duration,json=logDuration,proto3,oneof" json:"log_duration,omitempty" msg:"269319-3,omitempty"` // Contains the time, in UTC, at which the activity ended. - LogEnd *int64 `protobuf:"varint,6,opt,name=log_end,json=logEnd,proto3,oneof" json:"log_end,omitempty" msg:"269320,omitempty" type:"64,omitempty"` + LogEnd *int64 `protobuf:"varint,6,opt,name=log_end,json=logEnd,proto3,oneof" json:"log_end,omitempty" msg:"269320-64,omitempty"` // Contains metadata about the Journal object. - LogFlags *int32 `protobuf:"varint,7,opt,name=log_flags,json=logFlags,proto3,oneof" json:"log_flags,omitempty" msg:"269324,omitempty" type:"3,omitempty"` + LogFlags *int32 `protobuf:"varint,7,opt,name=log_flags,json=logFlags,proto3,oneof" json:"log_flags,omitempty" msg:"269324-3,omitempty"` // Contains the time, in UTC, at which the activity began. - LogStart *int64 `protobuf:"varint,8,opt,name=log_start,json=logStart,proto3,oneof" json:"log_start,omitempty" msg:"269318,omitempty" type:"64,omitempty"` + LogStart *int64 `protobuf:"varint,8,opt,name=log_start,json=logStart,proto3,oneof" json:"log_start,omitempty" msg:"269318-64,omitempty"` // Briefly describes the journal activity that is being recorded. - LogType *string `protobuf:"bytes,9,opt,name=log_type,json=logType,proto3,oneof" json:"log_type,omitempty" msg:"269312,omitempty" type:"31,omitempty"` + LogType *string `protobuf:"bytes,9,opt,name=log_type,json=logType,proto3,oneof" json:"log_type,omitempty" msg:"269312-31,omitempty"` // Contains an expanded description of the journal activity that is being recorded. - LogTypeDesc *string `protobuf:"bytes,10,opt,name=log_type_desc,json=logTypeDesc,proto3,oneof" json:"log_type_desc,omitempty" msg:"269346,omitempty" type:"31,omitempty"` + LogTypeDesc *string `protobuf:"bytes,10,opt,name=log_type_desc,json=logTypeDesc,proto3,oneof" json:"log_type_desc,omitempty" msg:"269346-31,omitempty"` } func (x *Journal) Reset() { diff --git a/pkg/properties/journal.pb_gen.go b/pkg/properties/journal.pb_gen.go index a4d5440..133122a 100644 --- a/pkg/properties/journal.pb_gen.go +++ b/pkg/properties/journal.pb_gen.go @@ -24,7 +24,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "269345": + case "269345-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "269326": + case "269326-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "269344": + case "269344-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "269327": + case "269327-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "269319": + case "269319-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "269320": + case "269320-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "269324": + case "269324-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "269318": + case "269318-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "269312": + case "269312-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Journal) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "269346": + case "269346-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -269,8 +269,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // write "269345" - err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x34, 0x35) + // write "269345-11" + err = en.Append(0xa9, 0x32, 0x36, 0x39, 0x33, 0x34, 0x35, 0x2d, 0x31, 0x31) if err != nil { return } @@ -288,8 +288,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // write "269326" - err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x36) + // write "269326-11" + err = en.Append(0xa9, 0x32, 0x36, 0x39, 0x33, 0x32, 0x36, 0x2d, 0x31, 0x31) if err != nil { return } @@ -307,8 +307,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // write "269344" - err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x34, 0x34) + // write "269344-11" + err = en.Append(0xa9, 0x32, 0x36, 0x39, 0x33, 0x34, 0x34, 0x2d, 0x31, 0x31) if err != nil { return } @@ -326,8 +326,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // write "269327" - err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x37) + // write "269327-11" + err = en.Append(0xa9, 0x32, 0x36, 0x39, 0x33, 0x32, 0x37, 0x2d, 0x31, 0x31) if err != nil { return } @@ -345,8 +345,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "269319" - err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x31, 0x39) + // write "269319-3" + err = en.Append(0xa8, 0x32, 0x36, 0x39, 0x33, 0x31, 0x39, 0x2d, 0x33) if err != nil { return } @@ -364,8 +364,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // write "269320" - err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x30) + // write "269320-64" + err = en.Append(0xa9, 0x32, 0x36, 0x39, 0x33, 0x32, 0x30, 0x2d, 0x36, 0x34) if err != nil { return } @@ -383,8 +383,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // write "269324" - err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x34) + // write "269324-3" + err = en.Append(0xa8, 0x32, 0x36, 0x39, 0x33, 0x32, 0x34, 0x2d, 0x33) if err != nil { return } @@ -402,8 +402,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // write "269318" - err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x31, 0x38) + // write "269318-64" + err = en.Append(0xa9, 0x32, 0x36, 0x39, 0x33, 0x31, 0x38, 0x2d, 0x36, 0x34) if err != nil { return } @@ -421,8 +421,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // write "269312" - err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x31, 0x32) + // write "269312-31" + err = en.Append(0xa9, 0x32, 0x36, 0x39, 0x33, 0x31, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -440,8 +440,8 @@ func (z *Journal) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // write "269346" - err = en.Append(0xa6, 0x32, 0x36, 0x39, 0x33, 0x34, 0x36) + // write "269346-31" + err = en.Append(0xa9, 0x32, 0x36, 0x39, 0x33, 0x34, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -513,8 +513,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // string "269345" - o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x34, 0x35) + // string "269345-11" + o = append(o, 0xa9, 0x32, 0x36, 0x39, 0x33, 0x34, 0x35, 0x2d, 0x31, 0x31) if z.LogDocumentPosted == nil { o = msgp.AppendNil(o) } else { @@ -522,8 +522,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // string "269326" - o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x36) + // string "269326-11" + o = append(o, 0xa9, 0x32, 0x36, 0x39, 0x33, 0x32, 0x36, 0x2d, 0x31, 0x31) if z.LogDocumentPrinted == nil { o = msgp.AppendNil(o) } else { @@ -531,8 +531,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // string "269344" - o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x34, 0x34) + // string "269344-11" + o = append(o, 0xa9, 0x32, 0x36, 0x39, 0x33, 0x34, 0x34, 0x2d, 0x31, 0x31) if z.LogDocumentRouted == nil { o = msgp.AppendNil(o) } else { @@ -540,8 +540,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // string "269327" - o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x37) + // string "269327-11" + o = append(o, 0xa9, 0x32, 0x36, 0x39, 0x33, 0x32, 0x37, 0x2d, 0x31, 0x31) if z.LogDocumentSaved == nil { o = msgp.AppendNil(o) } else { @@ -549,8 +549,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "269319" - o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x31, 0x39) + // string "269319-3" + o = append(o, 0xa8, 0x32, 0x36, 0x39, 0x33, 0x31, 0x39, 0x2d, 0x33) if z.LogDuration == nil { o = msgp.AppendNil(o) } else { @@ -558,8 +558,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // string "269320" - o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x30) + // string "269320-64" + o = append(o, 0xa9, 0x32, 0x36, 0x39, 0x33, 0x32, 0x30, 0x2d, 0x36, 0x34) if z.LogEnd == nil { o = msgp.AppendNil(o) } else { @@ -567,8 +567,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // string "269324" - o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x32, 0x34) + // string "269324-3" + o = append(o, 0xa8, 0x32, 0x36, 0x39, 0x33, 0x32, 0x34, 0x2d, 0x33) if z.LogFlags == nil { o = msgp.AppendNil(o) } else { @@ -576,8 +576,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // string "269318" - o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x31, 0x38) + // string "269318-64" + o = append(o, 0xa9, 0x32, 0x36, 0x39, 0x33, 0x31, 0x38, 0x2d, 0x36, 0x34) if z.LogStart == nil { o = msgp.AppendNil(o) } else { @@ -585,8 +585,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // string "269312" - o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x31, 0x32) + // string "269312-31" + o = append(o, 0xa9, 0x32, 0x36, 0x39, 0x33, 0x31, 0x32, 0x2d, 0x33, 0x31) if z.LogType == nil { o = msgp.AppendNil(o) } else { @@ -594,8 +594,8 @@ func (z *Journal) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // string "269346" - o = append(o, 0xa6, 0x32, 0x36, 0x39, 0x33, 0x34, 0x36) + // string "269346-31" + o = append(o, 0xa9, 0x32, 0x36, 0x39, 0x33, 0x34, 0x36, 0x2d, 0x33, 0x31) if z.LogTypeDesc == nil { o = msgp.AppendNil(o) } else { @@ -623,7 +623,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "269345": + case "269345-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -640,7 +640,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "269326": + case "269326-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -657,7 +657,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "269344": + case "269344-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -674,7 +674,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "269327": + case "269327-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -691,7 +691,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "269319": + case "269319-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -708,7 +708,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "269320": + case "269320-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -725,7 +725,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "269324": + case "269324-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -742,7 +742,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "269318": + case "269318-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -759,7 +759,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "269312": + case "269312-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -776,7 +776,7 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "269346": + case "269346-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -807,61 +807,61 @@ func (z *Journal) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Journal) Msgsize() (s int) { - s = 1 + 7 + s = 1 + 10 if z.LogDocumentPosted == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.LogDocumentPrinted == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.LogDocumentRouted == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.LogDocumentSaved == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 9 if z.LogDuration == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.LogEnd == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.LogFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.LogStart == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.LogType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.LogType) } - s += 7 + s += 10 if z.LogTypeDesc == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/message.pb.go b/pkg/properties/message.pb.go index e147953..5afb6c1 100644 --- a/pkg/properties/message.pb.go +++ b/pkg/properties/message.pb.go @@ -44,35 +44,35 @@ type Message struct { unknownFields protoimpl.UnknownFields // Specifies the options used in the automatic processing of email messages. - AutoProcessState *int32 `protobuf:"varint,1,opt,name=auto_process_state,json=autoProcessState,proto3,oneof" json:"auto_process_state,omitempty" msg:"267306,omitempty" type:"3,omitempty"` + AutoProcessState *int32 `protobuf:"varint,1,opt,name=auto_process_state,json=autoProcessState,proto3,oneof" json:"auto_process_state,omitempty" msg:"267306-3,omitempty"` // Specifies billing information for the contact. - Billing *string `protobuf:"bytes,2,opt,name=billing,proto3,oneof" json:"billing,omitempty" msg:"267365,omitempty" type:"31,omitempty"` + Billing *string `protobuf:"bytes,2,opt,name=billing,proto3,oneof" json:"billing,omitempty" msg:"267365-31,omitempty"` // Contains a list of the classification categories to which the associated Message object has been assigned. - Classification *string `protobuf:"bytes,3,opt,name=classification,proto3,oneof" json:"classification,omitempty" msg:"267622,omitempty" type:"31,omitempty"` + Classification *string `protobuf:"bytes,3,opt,name=classification,proto3,oneof" json:"classification,omitempty" msg:"267622-31,omitempty"` // Contains a human-readable summary of each of the classification categories included in the PidLidClassification property (section 2.53). - ClassificationDescription *string `protobuf:"bytes,4,opt,name=classification_description,json=classificationDescription,proto3,oneof" json:"classification_description,omitempty" msg:"267623,omitempty" type:"31,omitempty"` + ClassificationDescription *string `protobuf:"bytes,4,opt,name=classification_description,json=classificationDescription,proto3,oneof" json:"classification_description,omitempty" msg:"267623-31,omitempty"` // Contains the GUID that identifies the list of email classification categories used by a Message object. - ClassificationGuid *string `protobuf:"bytes,5,opt,name=classification_guid,json=classificationGuid,proto3,oneof" json:"classification_guid,omitempty" msg:"267624,omitempty" type:"31,omitempty"` + ClassificationGuid *string `protobuf:"bytes,5,opt,name=classification_guid,json=classificationGuid,proto3,oneof" json:"classification_guid,omitempty" msg:"267624-31,omitempty"` // Indicates whether the message uses any classification categories. - ClassificationKeep *bool `protobuf:"varint,6,opt,name=classification_keep,json=classificationKeep,proto3,oneof" json:"classification_keep,omitempty" msg:"267626,omitempty" type:"11,omitempty"` + ClassificationKeep *bool `protobuf:"varint,6,opt,name=classification_keep,json=classificationKeep,proto3,oneof" json:"classification_keep,omitempty" msg:"267626-11,omitempty"` // Indicates whether the contents of this message are regarded as classified information. - Classified *bool `protobuf:"varint,7,opt,name=classified,proto3,oneof" json:"classified,omitempty" msg:"267621,omitempty" type:"11,omitempty"` + Classified *bool `protobuf:"varint,7,opt,name=classified,proto3,oneof" json:"classified,omitempty" msg:"267621-11,omitempty"` // Indicates the end time for the Message object. - CommonEnd *int64 `protobuf:"varint,8,opt,name=common_end,json=commonEnd,proto3,oneof" json:"common_end,omitempty" msg:"267303,omitempty" type:"64,omitempty"` + CommonEnd *int64 `protobuf:"varint,8,opt,name=common_end,json=commonEnd,proto3,oneof" json:"common_end,omitempty" msg:"267303-64,omitempty"` // Indicates the start time for the Message object. - CommonStart *int64 `protobuf:"varint,9,opt,name=common_start,json=commonStart,proto3,oneof" json:"common_start,omitempty" msg:"267302,omitempty" type:"64,omitempty"` + CommonStart *int64 `protobuf:"varint,9,opt,name=common_start,json=commonStart,proto3,oneof" json:"common_start,omitempty" msg:"267302-64,omitempty"` // Specifies the build number of the client application that sent the message. - CurrentVersion *int32 `protobuf:"varint,12,opt,name=current_version,json=currentVersion,proto3,oneof" json:"current_version,omitempty" msg:"267426,omitempty" type:"3,omitempty"` + CurrentVersion *int32 `protobuf:"varint,12,opt,name=current_version,json=currentVersion,proto3,oneof" json:"current_version,omitempty" msg:"267426-3,omitempty"` // Specifies the name of the client application that sent the message. - CurrentVersionName *string `protobuf:"bytes,13,opt,name=current_version_name,json=currentVersionName,proto3,oneof" json:"current_version_name,omitempty" msg:"267428,omitempty" type:"31,omitempty"` + CurrentVersionName *string `protobuf:"bytes,13,opt,name=current_version_name,json=currentVersionName,proto3,oneof" json:"current_version_name,omitempty" msg:"267428-31,omitempty"` // Specifies the user-visible email account name through which the email message is sent. - InternetAccountName *string `protobuf:"bytes,14,opt,name=internet_account_name,json=internetAccountName,proto3,oneof" json:"internet_account_name,omitempty" msg:"267520,omitempty" type:"31,omitempty"` + InternetAccountName *string `protobuf:"bytes,14,opt,name=internet_account_name,json=internetAccountName,proto3,oneof" json:"internet_account_name,omitempty" msg:"267520-31,omitempty"` // Specifies the email account ID through which the email message is sent. - InternetAccountStamp *string `protobuf:"bytes,15,opt,name=internet_account_stamp,json=internetAccountStamp,proto3,oneof" json:"internet_account_stamp,omitempty" msg:"267521,omitempty" type:"31,omitempty"` + InternetAccountStamp *string `protobuf:"bytes,15,opt,name=internet_account_stamp,json=internetAccountStamp,proto3,oneof" json:"internet_account_stamp,omitempty" msg:"267521-31,omitempty"` // Indicates whether the end user wishes for this Message object to be hidden from other users who have access to the Message object. - Private *bool `protobuf:"varint,19,opt,name=private,proto3,oneof" json:"private,omitempty" msg:"267270,omitempty" type:"11,omitempty"` + Private *bool `protobuf:"varint,19,opt,name=private,proto3,oneof" json:"private,omitempty" msg:"267270-11,omitempty"` // Specifies the voting option that a respondent has selected. - VerbResponse *string `protobuf:"bytes,20,opt,name=verb_response,json=verbResponse,proto3,oneof" json:"verb_response,omitempty" msg:"267332,omitempty" type:"31,omitempty"` + VerbResponse *string `protobuf:"bytes,20,opt,name=verb_response,json=verbResponse,proto3,oneof" json:"verb_response,omitempty" msg:"267332-31,omitempty"` // Contains the value of the MIME Accept-Language header. AcceptLanguage *string `protobuf:"bytes,21,opt,name=accept_language,json=acceptLanguage,proto3,oneof" json:"accept_language,omitempty"` // Specifies the value of the MIME Content-Base header, which defines the base URI for resolving relative URLs contained within the message body. @@ -94,226 +94,226 @@ type Message struct { // Indicates whether a message is likely to be phishing. PhishingStamp *int32 `protobuf:"varint,31,opt,name=phishing_stamp,json=phishingStamp,proto3,oneof" json:"phishing_stamp,omitempty"` // Contains the email address type of a Message object. - AddressType *string `protobuf:"bytes,33,opt,name=address_type,json=addressType,proto3,oneof" json:"address_type,omitempty" msg:"12290,omitempty" type:"31,omitempty"` + AddressType *string `protobuf:"bytes,33,opt,name=address_type,json=addressType,proto3,oneof" json:"address_type,omitempty" msg:"12290-31,omitempty"` // Specifies whether the sender permits the message to be auto-forwarded. - AlternateRecipientAllowed *bool `protobuf:"varint,34,opt,name=alternate_recipient_allowed,json=alternateRecipientAllowed,proto3,oneof" json:"alternate_recipient_allowed,omitempty" msg:"2,omitempty" type:"11,omitempty"` + AlternateRecipientAllowed *bool `protobuf:"varint,34,opt,name=alternate_recipient_allowed,json=alternateRecipientAllowed,proto3,oneof" json:"alternate_recipient_allowed,omitempty" msg:"2-11,omitempty"` // Specifies the date, in UTC, after which a Message object is archived by the server. - ArchiveDate *int64 `protobuf:"varint,35,opt,name=archive_date,json=archiveDate,proto3,oneof" json:"archive_date,omitempty" msg:"12319,omitempty" type:"64,omitempty"` + ArchiveDate *int64 `protobuf:"varint,35,opt,name=archive_date,json=archiveDate,proto3,oneof" json:"archive_date,omitempty" msg:"12319-64,omitempty"` // Specifies the number of days that a Message object can remain unarchived. - ArchivePeriod *int32 `protobuf:"varint,36,opt,name=archive_period,json=archivePeriod,proto3,oneof" json:"archive_period,omitempty" msg:"12318,omitempty" type:"3,omitempty"` + ArchivePeriod *int32 `protobuf:"varint,36,opt,name=archive_period,json=archivePeriod,proto3,oneof" json:"archive_period,omitempty" msg:"12318-3,omitempty"` // Contains the name of the mail user's administrative assistant. - Assistant *string `protobuf:"bytes,38,opt,name=assistant,proto3,oneof" json:"assistant,omitempty" msg:"14896,omitempty" type:"31,omitempty"` + Assistant *string `protobuf:"bytes,38,opt,name=assistant,proto3,oneof" json:"assistant,omitempty" msg:"14896-31,omitempty"` // Contains the telephone number of the mail user's administrative assistant. - AssistantTelephoneNumber *string `protobuf:"bytes,39,opt,name=assistant_telephone_number,json=assistantTelephoneNumber,proto3,oneof" json:"assistant_telephone_number,omitempty" msg:"14894,omitempty" type:"31,omitempty"` + AssistantTelephoneNumber *string `protobuf:"bytes,39,opt,name=assistant_telephone_number,json=assistantTelephoneNumber,proto3,oneof" json:"assistant_telephone_number,omitempty" msg:"14894-31,omitempty"` // Specifies whether a client or server application will forego sending automated replies in response to this message. - AutoResponseSuppress *int32 `protobuf:"varint,40,opt,name=auto_response_suppress,json=autoResponseSuppress,proto3,oneof" json:"auto_response_suppress,omitempty" msg:"16351,omitempty" type:"3,omitempty"` + AutoResponseSuppress *int32 `protobuf:"varint,40,opt,name=auto_response_suppress,json=autoResponseSuppress,proto3,oneof" json:"auto_response_suppress,omitempty" msg:"16351-3,omitempty"` // Indicates the user's preference for viewing external content (such as links to images on an HTTP server) in the message body. - BlockStatus *int32 `protobuf:"varint,41,opt,name=block_status,json=blockStatus,proto3,oneof" json:"block_status,omitempty" msg:"4246,omitempty" type:"3,omitempty"` + BlockStatus *int32 `protobuf:"varint,41,opt,name=block_status,json=blockStatus,proto3,oneof" json:"block_status,omitempty" msg:"4246-3,omitempty"` // Contains message body text in plain text format. - Body *string `protobuf:"bytes,42,opt,name=body,proto3,oneof" json:"body,omitempty" msg:"4096,omitempty" type:"31,omitempty"` + Body *string `protobuf:"bytes,42,opt,name=body,proto3,oneof" json:"body,omitempty" msg:"4096-31,omitempty"` // Contains a globally unique Uniform Resource Identifier (URI) that serves as a label for the current message body. - BodyContentLocation *string `protobuf:"bytes,43,opt,name=body_content_location,json=bodyContentLocation,proto3,oneof" json:"body_content_location,omitempty" msg:"4116,omitempty" type:"31,omitempty"` + BodyContentLocation *string `protobuf:"bytes,43,opt,name=body_content_location,json=bodyContentLocation,proto3,oneof" json:"body_content_location,omitempty" msg:"4116-31,omitempty"` // Contains the HTML body of the Message object. - BodyHtml *string `protobuf:"bytes,44,opt,name=body_html,json=bodyHtml,proto3,oneof" json:"body_html,omitempty" msg:"4115,omitempty" type:"31,omitempty"` + BodyHtml *string `protobuf:"bytes,44,opt,name=body_html,json=bodyHtml,proto3,oneof" json:"body_html,omitempty" msg:"4115-31,omitempty"` // Contains the current time, in UTC, when the email message is submitted. - ClientSubmitTime *int64 `protobuf:"varint,45,opt,name=client_submit_time,json=clientSubmitTime,proto3,oneof" json:"client_submit_time,omitempty" msg:"57,omitempty" type:"64,omitempty"` + ClientSubmitTime *int64 `protobuf:"varint,45,opt,name=client_submit_time,json=clientSubmitTime,proto3,oneof" json:"client_submit_time,omitempty" msg:"57-64,omitempty"` // Indicates a confidence level that the message is spam. - ContentFilterSpamConfidenceLevel *int32 `protobuf:"varint,46,opt,name=content_filter_spam_confidence_level,json=contentFilterSpamConfidenceLevel,proto3,oneof" json:"content_filter_spam_confidence_level,omitempty" msg:"16502,omitempty" type:"3,omitempty"` + ContentFilterSpamConfidenceLevel *int32 `protobuf:"varint,46,opt,name=content_filter_spam_confidence_level,json=contentFilterSpamConfidenceLevel,proto3,oneof" json:"content_filter_spam_confidence_level,omitempty" msg:"16502-3,omitempty"` // Contains an unchanging copy of the original subject. - ConversationTopic *string `protobuf:"bytes,48,opt,name=conversation_topic,json=conversationTopic,proto3,oneof" json:"conversation_topic,omitempty" msg:"112,omitempty" type:"31,omitempty"` + ConversationTopic *string `protobuf:"bytes,48,opt,name=conversation_topic,json=conversationTopic,proto3,oneof" json:"conversation_topic,omitempty" msg:"112-31,omitempty"` // Contains the time, in UTC, that the object was created. - CreationTime *int64 `protobuf:"varint,49,opt,name=creation_time,json=creationTime,proto3,oneof" json:"creation_time,omitempty" msg:"12295,omitempty" type:"64,omitempty"` + CreationTime *int64 `protobuf:"varint,49,opt,name=creation_time,json=creationTime,proto3,oneof" json:"creation_time,omitempty" msg:"12295-64,omitempty"` // Contains the name of the creator of a Message object. - CreatorName *string `protobuf:"bytes,50,opt,name=creator_name,json=creatorName,proto3,oneof" json:"creator_name,omitempty" msg:"16376,omitempty" type:"31,omitempty"` + CreatorName *string `protobuf:"bytes,50,opt,name=creator_name,json=creatorName,proto3,oneof" json:"creator_name,omitempty" msg:"16376-31,omitempty"` // Contains the delivery time for a delivery status notification, as specified [RFC3464], or a message disposition notification, as specified in [RFC3798]. - DeliverTime *int64 `protobuf:"varint,51,opt,name=deliver_time,json=deliverTime,proto3,oneof" json:"deliver_time,omitempty" msg:"16,omitempty" type:"64,omitempty"` + DeliverTime *int64 `protobuf:"varint,51,opt,name=deliver_time,json=deliverTime,proto3,oneof" json:"deliver_time,omitempty" msg:"16-64,omitempty"` // Contains a list of blind carbon copy (Bcc) recipient display names. - DisplayBcc *string `protobuf:"bytes,52,opt,name=display_bcc,json=displayBcc,proto3,oneof" json:"display_bcc,omitempty" msg:"3586,omitempty" type:"31,omitempty"` + DisplayBcc *string `protobuf:"bytes,52,opt,name=display_bcc,json=displayBcc,proto3,oneof" json:"display_bcc,omitempty" msg:"3586-31,omitempty"` // Contains a list of carbon copy (Cc) recipient display names. - DisplayCc *string `protobuf:"bytes,53,opt,name=display_cc,json=displayCc,proto3,oneof" json:"display_cc,omitempty" msg:"3587,omitempty" type:"31,omitempty"` + DisplayCc *string `protobuf:"bytes,53,opt,name=display_cc,json=displayCc,proto3,oneof" json:"display_cc,omitempty" msg:"3587-31,omitempty"` // Contains a list of the primary recipient display names, separated by semicolons, when an email message has primary recipients . - DisplayTo *string `protobuf:"bytes,54,opt,name=display_to,json=displayTo,proto3,oneof" json:"display_to,omitempty" msg:"3588,omitempty" type:"31,omitempty"` + DisplayTo *string `protobuf:"bytes,54,opt,name=display_to,json=displayTo,proto3,oneof" json:"display_to,omitempty" msg:"3588-31,omitempty"` // Specifies which icon is to be used by a user interface when displaying a group of Message objects. - IconIndex *int32 `protobuf:"varint,56,opt,name=icon_index,json=iconIndex,proto3,oneof" json:"icon_index,omitempty" msg:"4224,omitempty" type:"3,omitempty"` + IconIndex *int32 `protobuf:"varint,56,opt,name=icon_index,json=iconIndex,proto3,oneof" json:"icon_index,omitempty" msg:"4224-3,omitempty"` // Indicates the level of importance assigned by the end user to the Message object. - Importance *int32 `protobuf:"varint,57,opt,name=importance,proto3,oneof" json:"importance,omitempty" msg:"23,omitempty" type:"3,omitempty"` + Importance *int32 `protobuf:"varint,57,opt,name=importance,proto3,oneof" json:"importance,omitempty" msg:"23-3,omitempty"` // Contains the initials for parts of the full name of the mail user. - Initials *string `protobuf:"bytes,58,opt,name=initials,proto3,oneof" json:"initials,omitempty" msg:"14858,omitempty" type:"31,omitempty"` + Initials *string `protobuf:"bytes,58,opt,name=initials,proto3,oneof" json:"initials,omitempty" msg:"14858-31,omitempty"` // Contains the value of the original message's PidTagInternetMessageId property (section 2.748) value. - InReplyToId *string `protobuf:"bytes,59,opt,name=in_reply_to_id,json=inReplyToId,proto3,oneof" json:"in_reply_to_id,omitempty" msg:"4162,omitempty" type:"31,omitempty"` + InReplyToId *string `protobuf:"bytes,59,opt,name=in_reply_to_id,json=inReplyToId,proto3,oneof" json:"in_reply_to_id,omitempty" msg:"4162-31,omitempty"` // Indicates the encoding method and HTML inclusion for attachments. - InternetMailOverrideFormat *int32 `protobuf:"varint,60,opt,name=internet_mail_override_format,json=internetMailOverrideFormat,proto3,oneof" json:"internet_mail_override_format,omitempty" msg:"22786,omitempty" type:"3,omitempty"` + InternetMailOverrideFormat *int32 `protobuf:"varint,60,opt,name=internet_mail_override_format,json=internetMailOverrideFormat,proto3,oneof" json:"internet_mail_override_format,omitempty" msg:"22786-3,omitempty"` // Corresponds to the message-id field. - InternetMessageId *string `protobuf:"bytes,61,opt,name=internet_message_id,json=internetMessageId,proto3,oneof" json:"internet_message_id,omitempty" msg:"4149,omitempty" type:"31,omitempty"` + InternetMessageId *string `protobuf:"bytes,61,opt,name=internet_message_id,json=internetMessageId,proto3,oneof" json:"internet_message_id,omitempty" msg:"4149-31,omitempty"` // Contains a list of message IDs that specify the messages to which this reply is related. - InternetReferences *string `protobuf:"bytes,62,opt,name=internet_references,json=internetReferences,proto3,oneof" json:"internet_references,omitempty" msg:"4153,omitempty" type:"31,omitempty"` + InternetReferences *string `protobuf:"bytes,62,opt,name=internet_references,json=internetReferences,proto3,oneof" json:"internet_references,omitempty" msg:"4153-31,omitempty"` // Contains the Integrated Services Digital Network (ISDN) telephone number of the mail user. - IsdnNumber *string `protobuf:"bytes,63,opt,name=isdn_number,json=isdnNumber,proto3,oneof" json:"isdn_number,omitempty" msg:"14893,omitempty" type:"31,omitempty"` + IsdnNumber *string `protobuf:"bytes,63,opt,name=isdn_number,json=isdnNumber,proto3,oneof" json:"isdn_number,omitempty" msg:"14893-31,omitempty"` // Contains a keyword that identifies the mail user to the mail user's system administrator. - Keyword *string `protobuf:"bytes,64,opt,name=keyword,proto3,oneof" json:"keyword,omitempty" msg:"14859,omitempty" type:"31,omitempty"` + Keyword *string `protobuf:"bytes,64,opt,name=keyword,proto3,oneof" json:"keyword,omitempty" msg:"14859-31,omitempty"` // Contains a value that indicates the language in which the messaging user is writing messages. - Language *string `protobuf:"bytes,65,opt,name=language,proto3,oneof" json:"language,omitempty" msg:"14860,omitempty" type:"31,omitempty"` + Language *string `protobuf:"bytes,65,opt,name=language,proto3,oneof" json:"language,omitempty" msg:"14860-31,omitempty"` // Contains the time, in UTC, of the last modification to the object. - LastModificationTime *int64 `protobuf:"varint,66,opt,name=last_modification_time,json=lastModificationTime,proto3,oneof" json:"last_modification_time,omitempty" msg:"12296,omitempty" type:"64,omitempty"` + LastModificationTime *int64 `protobuf:"varint,66,opt,name=last_modification_time,json=lastModificationTime,proto3,oneof" json:"last_modification_time,omitempty" msg:"12296-64,omitempty"` // Contains the name of the mail user's locality, such as the town or city. - Locality *string `protobuf:"bytes,67,opt,name=locality,proto3,oneof" json:"locality,omitempty" msg:"14887,omitempty" type:"31,omitempty"` + Locality *string `protobuf:"bytes,67,opt,name=locality,proto3,oneof" json:"locality,omitempty" msg:"14887-31,omitempty"` // Contains the location of the mail user. - Location *string `protobuf:"bytes,68,opt,name=location,proto3,oneof" json:"location,omitempty" msg:"14861,omitempty" type:"31,omitempty"` + Location *string `protobuf:"bytes,68,opt,name=location,proto3,oneof" json:"location,omitempty" msg:"14861-31,omitempty"` // Contains the name of the mail user's manager. - ManagerName *string `protobuf:"bytes,69,opt,name=manager_name,json=managerName,proto3,oneof" json:"manager_name,omitempty" msg:"14926,omitempty" type:"31,omitempty"` - MessageCcMe *bool `protobuf:"varint,70,opt,name=message_cc_me,json=messageCcMe,proto3,oneof" json:"message_cc_me,omitempty" msg:"88,omitempty" type:"11,omitempty"` + ManagerName *string `protobuf:"bytes,69,opt,name=manager_name,json=managerName,proto3,oneof" json:"manager_name,omitempty" msg:"14926-31,omitempty"` + MessageCcMe *bool `protobuf:"varint,70,opt,name=message_cc_me,json=messageCcMe,proto3,oneof" json:"message_cc_me,omitempty" msg:"88-11,omitempty"` // Specifies the time (in UTC) when the server received the message. - MessageDeliveryTime *int64 `protobuf:"varint,71,opt,name=message_delivery_time,json=messageDeliveryTime,proto3,oneof" json:"message_delivery_time,omitempty" msg:"3590,omitempty" type:"64,omitempty"` + MessageDeliveryTime *int64 `protobuf:"varint,71,opt,name=message_delivery_time,json=messageDeliveryTime,proto3,oneof" json:"message_delivery_time,omitempty" msg:"3590-64,omitempty"` // Specifies the status of the Message object. - MessageFlags *int32 `protobuf:"varint,72,opt,name=message_flags,json=messageFlags,proto3,oneof" json:"message_flags,omitempty" msg:"3591,omitempty" type:"3,omitempty"` + MessageFlags *int32 `protobuf:"varint,72,opt,name=message_flags,json=messageFlags,proto3,oneof" json:"message_flags,omitempty" msg:"3591-3,omitempty"` // Contains the common name of a messaging user for use in a message header. - MessageHandlingSystemCommonName *string `protobuf:"bytes,73,opt,name=message_handling_system_common_name,json=messageHandlingSystemCommonName,proto3,oneof" json:"message_handling_system_common_name,omitempty" msg:"14863,omitempty" type:"31,omitempty"` + MessageHandlingSystemCommonName *string `protobuf:"bytes,73,opt,name=message_handling_system_common_name,json=messageHandlingSystemCommonName,proto3,oneof" json:"message_handling_system_common_name,omitempty" msg:"14863-31,omitempty"` // Indicates that the receiving mailbox owner is a primary or a carbon copy (Cc) recipient of this email message. - MessageRecipientMe *bool `protobuf:"varint,74,opt,name=message_recipient_me,json=messageRecipientMe,proto3,oneof" json:"message_recipient_me,omitempty" msg:"89,omitempty" type:"11,omitempty"` + MessageRecipientMe *bool `protobuf:"varint,74,opt,name=message_recipient_me,json=messageRecipientMe,proto3,oneof" json:"message_recipient_me,omitempty" msg:"89-11,omitempty"` // Contains the size, in bytes, consumed by the Message object on the server. - MessageSize *int32 `protobuf:"varint,76,opt,name=message_size,json=messageSize,proto3,oneof" json:"message_size,omitempty" msg:"3592,omitempty" type:"3,omitempty"` + MessageSize *int32 `protobuf:"varint,76,opt,name=message_size,json=messageSize,proto3,oneof" json:"message_size,omitempty" msg:"3592-3,omitempty"` // Specifies the 64-bit version of the PidTagMessageSize property (section 2.796). - MessageSizeExtended *float64 `protobuf:"fixed64,77,opt,name=message_size_extended,json=messageSizeExtended,proto3,oneof" json:"message_size_extended,omitempty" msg:"3592,omitempty" type:"20,omitempty"` + MessageSizeExtended *float64 `protobuf:"fixed64,77,opt,name=message_size_extended,json=messageSizeExtended,proto3,oneof" json:"message_size_extended,omitempty" msg:"3592-20,omitempty"` // Specifies the status of a message in a contents table. - MessageStatus *int32 `protobuf:"varint,78,opt,name=message_status,json=messageStatus,proto3,oneof" json:"message_status,omitempty" msg:"3607,omitempty" type:"3,omitempty"` + MessageStatus *int32 `protobuf:"varint,78,opt,name=message_status,json=messageStatus,proto3,oneof" json:"message_status,omitempty" msg:"3607-3,omitempty"` // Indicates that the receiving mailbox owner is one of the primary recipients of this email message. - MessageToMe *bool `protobuf:"varint,80,opt,name=message_to_me,json=messageToMe,proto3,oneof" json:"message_to_me,omitempty" msg:"87,omitempty" type:"11,omitempty"` + MessageToMe *bool `protobuf:"varint,80,opt,name=message_to_me,json=messageToMe,proto3,oneof" json:"message_to_me,omitempty" msg:"87-11,omitempty"` // Specifies the middle name(s) of the contact. - MiddleName *string `protobuf:"bytes,81,opt,name=middle_name,json=middleName,proto3,oneof" json:"middle_name,omitempty" msg:"14916,omitempty" type:"31,omitempty"` + MiddleName *string `protobuf:"bytes,81,opt,name=middle_name,json=middleName,proto3,oneof" json:"middle_name,omitempty" msg:"14916-31,omitempty"` // Contains the mail user's cellular telephone number. - MobileTelephoneNumber *string `protobuf:"bytes,82,opt,name=mobile_telephone_number,json=mobileTelephoneNumber,proto3,oneof" json:"mobile_telephone_number,omitempty" msg:"14876,omitempty" type:"31,omitempty"` + MobileTelephoneNumber *string `protobuf:"bytes,82,opt,name=mobile_telephone_number,json=mobileTelephoneNumber,proto3,oneof" json:"mobile_telephone_number,omitempty" msg:"14876-31,omitempty"` // Contains the mail user's nickname. - Nickname *string `protobuf:"bytes,83,opt,name=nickname,proto3,oneof" json:"nickname,omitempty" msg:"14927,omitempty" type:"31,omitempty"` + Nickname *string `protobuf:"bytes,83,opt,name=nickname,proto3,oneof" json:"nickname,omitempty" msg:"14927-31,omitempty"` // Contains the diagnostic code for a delivery status notification, as specified in [RFC3464]. - NonDeliveryReportDiagCode *int32 `protobuf:"varint,84,opt,name=non_delivery_report_diag_code,json=nonDeliveryReportDiagCode,proto3,oneof" json:"non_delivery_report_diag_code,omitempty" msg:"3077,omitempty" type:"3,omitempty"` + NonDeliveryReportDiagCode *int32 `protobuf:"varint,84,opt,name=non_delivery_report_diag_code,json=nonDeliveryReportDiagCode,proto3,oneof" json:"non_delivery_report_diag_code,omitempty" msg:"3077-3,omitempty"` // Contains an integer value that indicates a reason for delivery failure. - NonDeliveryReportReasonCode *int32 `protobuf:"varint,85,opt,name=non_delivery_report_reason_code,json=nonDeliveryReportReasonCode,proto3,oneof" json:"non_delivery_report_reason_code,omitempty" msg:"3076,omitempty" type:"3,omitempty"` + NonDeliveryReportReasonCode *int32 `protobuf:"varint,85,opt,name=non_delivery_report_reason_code,json=nonDeliveryReportReasonCode,proto3,oneof" json:"non_delivery_report_reason_code,omitempty" msg:"3076-3,omitempty"` // Specifies whether the client sends a non-read receipt. - NonDeliveryReportStatusCode *int32 `protobuf:"varint,86,opt,name=non_delivery_report_status_code,json=nonDeliveryReportStatusCode,proto3,oneof" json:"non_delivery_report_status_code,omitempty" msg:"3078,omitempty" type:"3,omitempty"` + NonDeliveryReportStatusCode *int32 `protobuf:"varint,86,opt,name=non_delivery_report_status_code,json=nonDeliveryReportStatusCode,proto3,oneof" json:"non_delivery_report_status_code,omitempty" msg:"3078-3,omitempty"` // Contains the normalized subject of the message. - NormalizedSubject *string `protobuf:"bytes,87,opt,name=normalized_subject,json=normalizedSubject,proto3,oneof" json:"normalized_subject,omitempty" msg:"3613,omitempty" type:"31,omitempty"` + NormalizedSubject *string `protobuf:"bytes,87,opt,name=normalized_subject,json=normalizedSubject,proto3,oneof" json:"normalized_subject,omitempty" msg:"3613-31,omitempty"` // Contains the mail user's office location. - OfficeLocation *string `protobuf:"bytes,88,opt,name=office_location,json=officeLocation,proto3,oneof" json:"office_location,omitempty" msg:"14873,omitempty" type:"31,omitempty"` + OfficeLocation *string `protobuf:"bytes,88,opt,name=office_location,json=officeLocation,proto3,oneof" json:"office_location,omitempty" msg:"14873-31,omitempty"` // Contains an identifier for the mail user used within the mail user's organization. - OrganizationalIdNumber *string `protobuf:"bytes,89,opt,name=organizational_id_number,json=organizationalIdNumber,proto3,oneof" json:"organizational_id_number,omitempty" msg:"14864,omitempty" type:"31,omitempty"` + OrganizationalIdNumber *string `protobuf:"bytes,89,opt,name=organizational_id_number,json=organizationalIdNumber,proto3,oneof" json:"organizational_id_number,omitempty" msg:"14864-31,omitempty"` // Contains the display name of the sender of the original message referenced by a report message. - OriginalAuthorName *string `protobuf:"bytes,91,opt,name=original_author_name,json=originalAuthorName,proto3,oneof" json:"original_author_name,omitempty" msg:"77,omitempty" type:"31,omitempty"` + OriginalAuthorName *string `protobuf:"bytes,91,opt,name=original_author_name,json=originalAuthorName,proto3,oneof" json:"original_author_name,omitempty" msg:"77-31,omitempty"` // Contains the delivery time, in UTC, from the original message. - OriginalDeliveryTime *int64 `protobuf:"varint,92,opt,name=original_delivery_time,json=originalDeliveryTime,proto3,oneof" json:"original_delivery_time,omitempty" msg:"85,omitempty" type:"64,omitempty"` + OriginalDeliveryTime *int64 `protobuf:"varint,92,opt,name=original_delivery_time,json=originalDeliveryTime,proto3,oneof" json:"original_delivery_time,omitempty" msg:"85-64,omitempty"` // Contains the value of the PidTagDisplayBcc property (section 2.674) from the original message. - OriginalDisplayBcc *string `protobuf:"bytes,93,opt,name=original_display_bcc,json=originalDisplayBcc,proto3,oneof" json:"original_display_bcc,omitempty" msg:"114,omitempty" type:"31,omitempty"` + OriginalDisplayBcc *string `protobuf:"bytes,93,opt,name=original_display_bcc,json=originalDisplayBcc,proto3,oneof" json:"original_display_bcc,omitempty" msg:"114-31,omitempty"` // Contains the value of the PidTagDisplayCc property(section 2.675) from the original message. - OriginalDisplayCc *string `protobuf:"bytes,94,opt,name=original_display_cc,json=originalDisplayCc,proto3,oneof" json:"original_display_cc,omitempty" msg:"115,omitempty" type:"31,omitempty"` + OriginalDisplayCc *string `protobuf:"bytes,94,opt,name=original_display_cc,json=originalDisplayCc,proto3,oneof" json:"original_display_cc,omitempty" msg:"115-31,omitempty"` // Contains the value of the PidTagDisplayTo property (section 2.678) from the original message. - OriginalDisplayTo *string `protobuf:"bytes,95,opt,name=original_display_to,json=originalDisplayTo,proto3,oneof" json:"original_display_to,omitempty" msg:"116,omitempty" type:"31,omitempty"` + OriginalDisplayTo *string `protobuf:"bytes,95,opt,name=original_display_to,json=originalDisplayTo,proto3,oneof" json:"original_display_to,omitempty" msg:"116-31,omitempty"` // Designates the PidTagMessageClass property ([MS-OXCMSG] section 2.2.1.3) from the original message. - OriginalMessageClass *string `protobuf:"bytes,97,opt,name=original_message_class,json=originalMessageClass,proto3,oneof" json:"original_message_class,omitempty" msg:"75,omitempty" type:"31,omitempty"` + OriginalMessageClass *string `protobuf:"bytes,97,opt,name=original_message_class,json=originalMessageClass,proto3,oneof" json:"original_message_class,omitempty" msg:"75-31,omitempty"` // Contains the value of the original message sender's PidTagSenderAddressType property (section 2.1000). - OriginalSenderAddressType *string `protobuf:"bytes,98,opt,name=original_sender_address_type,json=originalSenderAddressType,proto3,oneof" json:"original_sender_address_type,omitempty" msg:"102,omitempty" type:"31,omitempty"` + OriginalSenderAddressType *string `protobuf:"bytes,98,opt,name=original_sender_address_type,json=originalSenderAddressType,proto3,oneof" json:"original_sender_address_type,omitempty" msg:"102-31,omitempty"` // Contains the value of the original message sender's PidTagSenderEmailAddress property (section 2.1001). - OriginalSenderEmailAddress *string `protobuf:"bytes,99,opt,name=original_sender_email_address,json=originalSenderEmailAddress,proto3,oneof" json:"original_sender_email_address,omitempty" msg:"103,omitempty" type:"31,omitempty"` + OriginalSenderEmailAddress *string `protobuf:"bytes,99,opt,name=original_sender_email_address,json=originalSenderEmailAddress,proto3,oneof" json:"original_sender_email_address,omitempty" msg:"103-31,omitempty"` // Contains the value of the original message sender's PidTagSenderName property (section 2.1004), and is set on delivery report messages. - OriginalSenderName *string `protobuf:"bytes,101,opt,name=original_sender_name,json=originalSenderName,proto3,oneof" json:"original_sender_name,omitempty" msg:"90,omitempty" type:"31,omitempty"` + OriginalSenderName *string `protobuf:"bytes,101,opt,name=original_sender_name,json=originalSenderName,proto3,oneof" json:"original_sender_name,omitempty" msg:"90-31,omitempty"` // Contains the sensitivity value of the original email message. - OriginalSensitivity *int32 `protobuf:"varint,103,opt,name=original_sensitivity,json=originalSensitivity,proto3,oneof" json:"original_sensitivity,omitempty" msg:"46,omitempty" type:"3,omitempty"` + OriginalSensitivity *int32 `protobuf:"varint,103,opt,name=original_sensitivity,json=originalSensitivity,proto3,oneof" json:"original_sensitivity,omitempty" msg:"46-3,omitempty"` // Contains the address type of the end user who is represented by the original email message sender. - OriginalSentRepresentingAddressType *string `protobuf:"bytes,104,opt,name=original_sent_representing_address_type,json=originalSentRepresentingAddressType,proto3,oneof" json:"original_sent_representing_address_type,omitempty" msg:"104,omitempty" type:"31,omitempty"` + OriginalSentRepresentingAddressType *string `protobuf:"bytes,104,opt,name=original_sent_representing_address_type,json=originalSentRepresentingAddressType,proto3,oneof" json:"original_sent_representing_address_type,omitempty" msg:"104-31,omitempty"` // Contains the email address of the end user who is represented by the original email message sender. - OriginalSentRepresentingEmailAddress *string `protobuf:"bytes,105,opt,name=original_sent_representing_email_address,json=originalSentRepresentingEmailAddress,proto3,oneof" json:"original_sent_representing_email_address,omitempty" msg:"105,omitempty" type:"31,omitempty"` + OriginalSentRepresentingEmailAddress *string `protobuf:"bytes,105,opt,name=original_sent_representing_email_address,json=originalSentRepresentingEmailAddress,proto3,oneof" json:"original_sent_representing_email_address,omitempty" msg:"105-31,omitempty"` // Contains the display name of the end user who is represented by the original email message sender. - OriginalSentRepresentingName *string `protobuf:"bytes,107,opt,name=original_sent_representing_name,json=originalSentRepresentingName,proto3,oneof" json:"original_sent_representing_name,omitempty" msg:"93,omitempty" type:"31,omitempty"` + OriginalSentRepresentingName *string `protobuf:"bytes,107,opt,name=original_sent_representing_name,json=originalSentRepresentingName,proto3,oneof" json:"original_sent_representing_name,omitempty" msg:"93-31,omitempty"` // Specifies the subject of the original message. - OriginalSubject *string `protobuf:"bytes,109,opt,name=original_subject,json=originalSubject,proto3,oneof" json:"original_subject,omitempty" msg:"73,omitempty" type:"31,omitempty"` + OriginalSubject *string `protobuf:"bytes,109,opt,name=original_subject,json=originalSubject,proto3,oneof" json:"original_subject,omitempty" msg:"73-31,omitempty"` // Specifies the original email message's submission date and time, in UTC. - OriginalSubmitTime *int64 `protobuf:"varint,110,opt,name=original_submit_time,json=originalSubmitTime,proto3,oneof" json:"original_submit_time,omitempty" msg:"78,omitempty" type:"64,omitempty"` + OriginalSubmitTime *int64 `protobuf:"varint,110,opt,name=original_submit_time,json=originalSubmitTime,proto3,oneof" json:"original_submit_time,omitempty" msg:"78-64,omitempty"` // Indicates whether an email sender requests an email delivery receipt from the messaging system. - OriginatorDeliveryReportRequested *bool `protobuf:"varint,111,opt,name=originator_delivery_report_requested,json=originatorDeliveryReportRequested,proto3,oneof" json:"originator_delivery_report_requested,omitempty" msg:"35,omitempty" type:"11,omitempty"` + OriginatorDeliveryReportRequested *bool `protobuf:"varint,111,opt,name=originator_delivery_report_requested,json=originatorDeliveryReportRequested,proto3,oneof" json:"originator_delivery_report_requested,omitempty" msg:"35-11,omitempty"` // Specifies whether an email sender requests suppression of nondelivery receipts. - OriginatorNonDeliveryReportRequested *bool `protobuf:"varint,112,opt,name=originator_non_delivery_report_requested,json=originatorNonDeliveryReportRequested,proto3,oneof" json:"originator_non_delivery_report_requested,omitempty" msg:"3080,omitempty" type:"11,omitempty"` + OriginatorNonDeliveryReportRequested *bool `protobuf:"varint,112,opt,name=originator_non_delivery_report_requested,json=originatorNonDeliveryReportRequested,proto3,oneof" json:"originator_non_delivery_report_requested,omitempty" msg:"3080-11,omitempty"` // Contains the name of the mail user's other locality, such as the town or city. - OtherAddressCity *string `protobuf:"bytes,113,opt,name=other_address_city,json=otherAddressCity,proto3,oneof" json:"other_address_city,omitempty" msg:"14943,omitempty" type:"31,omitempty"` + OtherAddressCity *string `protobuf:"bytes,113,opt,name=other_address_city,json=otherAddressCity,proto3,oneof" json:"other_address_city,omitempty" msg:"14943-31,omitempty"` // Contains the name of the mail user's other country/region. - OtherAddressCountry *string `protobuf:"bytes,114,opt,name=other_address_country,json=otherAddressCountry,proto3,oneof" json:"other_address_country,omitempty" msg:"14944,omitempty" type:"31,omitempty"` + OtherAddressCountry *string `protobuf:"bytes,114,opt,name=other_address_country,json=otherAddressCountry,proto3,oneof" json:"other_address_country,omitempty" msg:"14944-31,omitempty"` // Contains the postal code for the mail user's other postal address. - OtherAddressPostalCode *string `protobuf:"bytes,115,opt,name=other_address_postal_code,json=otherAddressPostalCode,proto3,oneof" json:"other_address_postal_code,omitempty" msg:"14945,omitempty" type:"31,omitempty"` + OtherAddressPostalCode *string `protobuf:"bytes,115,opt,name=other_address_postal_code,json=otherAddressPostalCode,proto3,oneof" json:"other_address_postal_code,omitempty" msg:"14945-31,omitempty"` // Contains the number or identifier of the mail user's other post office box. - OtherAddressPostOfficeBox *string `protobuf:"bytes,116,opt,name=other_address_post_office_box,json=otherAddressPostOfficeBox,proto3,oneof" json:"other_address_post_office_box,omitempty" msg:"14948,omitempty" type:"31,omitempty"` + OtherAddressPostOfficeBox *string `protobuf:"bytes,116,opt,name=other_address_post_office_box,json=otherAddressPostOfficeBox,proto3,oneof" json:"other_address_post_office_box,omitempty" msg:"14948-31,omitempty"` // Contains the name of the mail user's other state or province. - OtherAddressStateOrProvince *string `protobuf:"bytes,117,opt,name=other_address_state_or_province,json=otherAddressStateOrProvince,proto3,oneof" json:"other_address_state_or_province,omitempty" msg:"14946,omitempty" type:"31,omitempty"` + OtherAddressStateOrProvince *string `protobuf:"bytes,117,opt,name=other_address_state_or_province,json=otherAddressStateOrProvince,proto3,oneof" json:"other_address_state_or_province,omitempty" msg:"14946-31,omitempty"` // Contains the mail user's other street address. - OtherAddressStreet *string `protobuf:"bytes,118,opt,name=other_address_street,json=otherAddressStreet,proto3,oneof" json:"other_address_street,omitempty" msg:"14947,omitempty" type:"31,omitempty"` + OtherAddressStreet *string `protobuf:"bytes,118,opt,name=other_address_street,json=otherAddressStreet,proto3,oneof" json:"other_address_street,omitempty" msg:"14947-31,omitempty"` // Contains an alternate telephone number for the mail user. - OtherTelephoneNumber *string `protobuf:"bytes,119,opt,name=other_telephone_number,json=otherTelephoneNumber,proto3,oneof" json:"other_telephone_number,omitempty" msg:"14879,omitempty" type:"31,omitempty"` + OtherTelephoneNumber *string `protobuf:"bytes,119,opt,name=other_telephone_number,json=otherTelephoneNumber,proto3,oneof" json:"other_telephone_number,omitempty" msg:"14879-31,omitempty"` // Contains the mail user's pager telephone number. - PagerTelephoneNumber *string `protobuf:"bytes,120,opt,name=pager_telephone_number,json=pagerTelephoneNumber,proto3,oneof" json:"pager_telephone_number,omitempty" msg:"14881,omitempty" type:"31,omitempty"` + PagerTelephoneNumber *string `protobuf:"bytes,120,opt,name=pager_telephone_number,json=pagerTelephoneNumber,proto3,oneof" json:"pager_telephone_number,omitempty" msg:"14881-31,omitempty"` // Indicates the client's request for the priority with which the message is to be sent by the messaging system. - Priority *int32 `protobuf:"varint,122,opt,name=priority,proto3,oneof" json:"priority,omitempty" msg:"38,omitempty" type:"3,omitempty"` + Priority *int32 `protobuf:"varint,122,opt,name=priority,proto3,oneof" json:"priority,omitempty" msg:"38-3,omitempty"` // Specifies whether the email sender requests a read receipt from all recipients when this email message is read or opened. - ReadReceiptRequested *bool `protobuf:"varint,123,opt,name=read_receipt_requested,json=readReceiptRequested,proto3,oneof" json:"read_receipt_requested,omitempty" msg:"41,omitempty" type:"11,omitempty"` + ReadReceiptRequested *bool `protobuf:"varint,123,opt,name=read_receipt_requested,json=readReceiptRequested,proto3,oneof" json:"read_receipt_requested,omitempty" msg:"41-11,omitempty"` // Contains the sent time for a message disposition notification, as specified in [RFC3798]. - ReceiptTime *int64 `protobuf:"varint,124,opt,name=receipt_time,json=receiptTime,proto3,oneof" json:"receipt_time,omitempty" msg:"42,omitempty" type:"64,omitempty"` + ReceiptTime *int64 `protobuf:"varint,124,opt,name=receipt_time,json=receiptTime,proto3,oneof" json:"receipt_time,omitempty" msg:"42-64,omitempty"` // Contains the email message receiver's email address. - ReceivedByEmailAddress *string `protobuf:"bytes,125,opt,name=received_by_email_address,json=receivedByEmailAddress,proto3,oneof" json:"received_by_email_address,omitempty" msg:"118,omitempty" type:"31,omitempty"` + ReceivedByEmailAddress *string `protobuf:"bytes,125,opt,name=received_by_email_address,json=receivedByEmailAddress,proto3,oneof" json:"received_by_email_address,omitempty" msg:"118-31,omitempty"` // Contains the email message receiver's display name. - ReceivedByName *string `protobuf:"bytes,127,opt,name=received_by_name,json=receivedByName,proto3,oneof" json:"received_by_name,omitempty" msg:"64,omitempty" type:"31,omitempty"` + ReceivedByName *string `protobuf:"bytes,127,opt,name=received_by_name,json=receivedByName,proto3,oneof" json:"received_by_name,omitempty" msg:"64-31,omitempty"` // Contains the email address type for the end user represented by the receiving mailbox owner. - ReceivedRepresentingAddressType *string `protobuf:"bytes,129,opt,name=received_representing_address_type,json=receivedRepresentingAddressType,proto3,oneof" json:"received_representing_address_type,omitempty" msg:"119,omitempty" type:"31,omitempty"` + ReceivedRepresentingAddressType *string `protobuf:"bytes,129,opt,name=received_representing_address_type,json=receivedRepresentingAddressType,proto3,oneof" json:"received_representing_address_type,omitempty" msg:"119-31,omitempty"` // Contains the email address for the end user represented by the receiving mailbox owner. - ReceivedRepresentingEmailAddress *string `protobuf:"bytes,130,opt,name=received_representing_email_address,json=receivedRepresentingEmailAddress,proto3,oneof" json:"received_representing_email_address,omitempty" msg:"120,omitempty" type:"31,omitempty"` + ReceivedRepresentingEmailAddress *string `protobuf:"bytes,130,opt,name=received_representing_email_address,json=receivedRepresentingEmailAddress,proto3,oneof" json:"received_representing_email_address,omitempty" msg:"120-31,omitempty"` // Contains the display name for the end user represented by the receiving mailbox owner. - ReceivedRepresentingName *string `protobuf:"bytes,132,opt,name=received_representing_name,json=receivedRepresentingName,proto3,oneof" json:"received_representing_name,omitempty" msg:"68,omitempty" type:"31,omitempty"` + ReceivedRepresentingName *string `protobuf:"bytes,132,opt,name=received_representing_name,json=receivedRepresentingName,proto3,oneof" json:"received_representing_name,omitempty" msg:"68-31,omitempty"` // Represents the recipient type of a recipient on the message. - RecipientType *int32 `protobuf:"varint,134,opt,name=recipient_type,json=recipientType,proto3,oneof" json:"recipient_type,omitempty" msg:"3093,omitempty" type:"3,omitempty"` + RecipientType *int32 `protobuf:"varint,134,opt,name=recipient_type,json=recipientType,proto3,oneof" json:"recipient_type,omitempty" msg:"3093-3,omitempty"` // Contains the value of the Remote-MTA field for a delivery status notification, as specified in [RFC3464]. - RemoteMessageTransferAgent *string `protobuf:"bytes,135,opt,name=remote_message_transfer_agent,json=remoteMessageTransferAgent,proto3,oneof" json:"remote_message_transfer_agent,omitempty" msg:"3105,omitempty" type:"31,omitempty"` + RemoteMessageTransferAgent *string `protobuf:"bytes,135,opt,name=remote_message_transfer_agent,json=remoteMessageTransferAgent,proto3,oneof" json:"remote_message_transfer_agent,omitempty" msg:"3105-31,omitempty"` // Indicates whether a reply is requested to a Message object. - ReplyRequested *bool `protobuf:"varint,136,opt,name=reply_requested,json=replyRequested,proto3,oneof" json:"reply_requested,omitempty" msg:"3095,omitempty" type:"11,omitempty"` + ReplyRequested *bool `protobuf:"varint,136,opt,name=reply_requested,json=replyRequested,proto3,oneof" json:"reply_requested,omitempty" msg:"3095-11,omitempty"` // Contains a string indicating whether the original message was displayed to the user or deleted (report messages only). - ReportDisposition *string `protobuf:"bytes,137,opt,name=report_disposition,json=reportDisposition,proto3,oneof" json:"report_disposition,omitempty" msg:"128,omitempty" type:"31,omitempty"` + ReportDisposition *string `protobuf:"bytes,137,opt,name=report_disposition,json=reportDisposition,proto3,oneof" json:"report_disposition,omitempty" msg:"128-31,omitempty"` // Contains a description of the action that a client has performed on behalf of a user (report messages only). - ReportDispositionMode *string `protobuf:"bytes,138,opt,name=report_disposition_mode,json=reportDispositionMode,proto3,oneof" json:"report_disposition_mode,omitempty" msg:"129,omitempty" type:"31,omitempty"` + ReportDispositionMode *string `protobuf:"bytes,138,opt,name=report_disposition_mode,json=reportDispositionMode,proto3,oneof" json:"report_disposition_mode,omitempty" msg:"129-31,omitempty"` // Contains the value of the Reporting-MTA field for a delivery status notification, as specified in [RFC3464]. - ReportingMessageTransferAgent *string `protobuf:"bytes,139,opt,name=reporting_message_transfer_agent,json=reportingMessageTransferAgent,proto3,oneof" json:"reporting_message_transfer_agent,omitempty" msg:"26656,omitempty" type:"31,omitempty"` + ReportingMessageTransferAgent *string `protobuf:"bytes,139,opt,name=reporting_message_transfer_agent,json=reportingMessageTransferAgent,proto3,oneof" json:"reporting_message_transfer_agent,omitempty" msg:"26656-31,omitempty"` // Specifies the date, in UTC, after which a Message object is expired by the server. - RetentionDate *int64 `protobuf:"varint,140,opt,name=retention_date,json=retentionDate,proto3,oneof" json:"retention_date,omitempty" msg:"12316,omitempty" type:"64,omitempty"` + RetentionDate *int64 `protobuf:"varint,140,opt,name=retention_date,json=retentionDate,proto3,oneof" json:"retention_date,omitempty" msg:"12316-64,omitempty"` // Contains flags that specify the status or nature of an item's retention tag or archive tag. - RetentionFlags *int32 `protobuf:"varint,141,opt,name=retention_flags,json=retentionFlags,proto3,oneof" json:"retention_flags,omitempty" msg:"12317,omitempty" type:"3,omitempty"` + RetentionFlags *int32 `protobuf:"varint,141,opt,name=retention_flags,json=retentionFlags,proto3,oneof" json:"retention_flags,omitempty" msg:"12317-3,omitempty"` // Specifies the number of days that a Message object can remain unarchived. - RetentionPeriod *int32 `protobuf:"varint,142,opt,name=retention_period,json=retentionPeriod,proto3,oneof" json:"retention_period,omitempty" msg:"12314,omitempty" type:"3,omitempty"` + RetentionPeriod *int32 `protobuf:"varint,142,opt,name=retention_period,json=retentionPeriod,proto3,oneof" json:"retention_period,omitempty" msg:"12314-3,omitempty"` // Indicates whether the PidTagBody property (section 2.618) and the PidTagRtfCompressed property (section 2.941) contain the same text (ignoring formatting). - RtfInSync *bool `protobuf:"varint,144,opt,name=rtf_in_sync,json=rtfInSync,proto3,oneof" json:"rtf_in_sync,omitempty" msg:"3615,omitempty" type:"11,omitempty"` + RtfInSync *bool `protobuf:"varint,144,opt,name=rtf_in_sync,json=rtfInSync,proto3,oneof" json:"rtf_in_sync,omitempty" msg:"3615-11,omitempty"` // Contains the email address type of the sending mailbox owner. - SenderAddressType *string `protobuf:"bytes,145,opt,name=sender_address_type,json=senderAddressType,proto3,oneof" json:"sender_address_type,omitempty" msg:"3102,omitempty" type:"31,omitempty"` + SenderAddressType *string `protobuf:"bytes,145,opt,name=sender_address_type,json=senderAddressType,proto3,oneof" json:"sender_address_type,omitempty" msg:"3102-31,omitempty"` // Contains the email address of the sending mailbox owner. - SenderEmailAddress *string `protobuf:"bytes,146,opt,name=sender_email_address,json=senderEmailAddress,proto3,oneof" json:"sender_email_address,omitempty" msg:"3103,omitempty" type:"31,omitempty"` + SenderEmailAddress *string `protobuf:"bytes,146,opt,name=sender_email_address,json=senderEmailAddress,proto3,oneof" json:"sender_email_address,omitempty" msg:"3103-31,omitempty"` // Reports the results of a Sender-ID check. - SenderIdStatus *int32 `protobuf:"varint,148,opt,name=sender_id_status,json=senderIdStatus,proto3,oneof" json:"sender_id_status,omitempty" msg:"16505,omitempty" type:"3,omitempty"` + SenderIdStatus *int32 `protobuf:"varint,148,opt,name=sender_id_status,json=senderIdStatus,proto3,oneof" json:"sender_id_status,omitempty" msg:"16505-3,omitempty"` // Contains the display name of the sending mailbox owner. - SenderName *string `protobuf:"bytes,149,opt,name=sender_name,json=senderName,proto3,oneof" json:"sender_name,omitempty" msg:"3098,omitempty" type:"31,omitempty"` + SenderName *string `protobuf:"bytes,149,opt,name=sender_name,json=senderName,proto3,oneof" json:"sender_name,omitempty" msg:"3098-31,omitempty"` // Contains a bitmask of message encoding preferences for email sent to an email-enabled entity that is represented by this Address Book object. - SendInternetEncoding *int32 `protobuf:"varint,151,opt,name=send_internet_encoding,json=sendInternetEncoding,proto3,oneof" json:"send_internet_encoding,omitempty" msg:"14961,omitempty" type:"3,omitempty"` + SendInternetEncoding *int32 `protobuf:"varint,151,opt,name=send_internet_encoding,json=sendInternetEncoding,proto3,oneof" json:"send_internet_encoding,omitempty" msg:"14961-3,omitempty"` // Indicates whether the email-enabled entity represented by the Address Book object can receive all message content, including Rich Text Format (RTF) and other embedded objects. - SendRichInfo *bool `protobuf:"varint,152,opt,name=send_rich_info,json=sendRichInfo,proto3,oneof" json:"send_rich_info,omitempty" msg:"14912,omitempty" type:"11,omitempty"` + SendRichInfo *bool `protobuf:"varint,152,opt,name=send_rich_info,json=sendRichInfo,proto3,oneof" json:"send_rich_info,omitempty" msg:"14912-11,omitempty"` // Indicates the sender's assessment of the sensitivity of the Message object. - Sensitivity *int32 `protobuf:"varint,153,opt,name=sensitivity,proto3,oneof" json:"sensitivity,omitempty" msg:"54,omitempty" type:"3,omitempty"` + Sensitivity *int32 `protobuf:"varint,153,opt,name=sensitivity,proto3,oneof" json:"sensitivity,omitempty" msg:"54-3,omitempty"` // Contains an email address type. - SentRepresentingAddressType *string `protobuf:"bytes,154,opt,name=sent_representing_address_type,json=sentRepresentingAddressType,proto3,oneof" json:"sent_representing_address_type,omitempty" msg:"100,omitempty" type:"31,omitempty"` + SentRepresentingAddressType *string `protobuf:"bytes,154,opt,name=sent_representing_address_type,json=sentRepresentingAddressType,proto3,oneof" json:"sent_representing_address_type,omitempty" msg:"100-31,omitempty"` // Contains an email address for the end user who is represented by the sending mailbox owner. - SentRepresentingEmailAddress *string `protobuf:"bytes,155,opt,name=sent_representing_email_address,json=sentRepresentingEmailAddress,proto3,oneof" json:"sent_representing_email_address,omitempty" msg:"101,omitempty" type:"31,omitempty"` + SentRepresentingEmailAddress *string `protobuf:"bytes,155,opt,name=sent_representing_email_address,json=sentRepresentingEmailAddress,proto3,oneof" json:"sent_representing_email_address,omitempty" msg:"101-31,omitempty"` // Contains the display name for the end user who is represented by the sending mailbox owner. - SentRepresentingName *string `protobuf:"bytes,157,opt,name=sent_representing_name,json=sentRepresentingName,proto3,oneof" json:"sent_representing_name,omitempty" msg:"66,omitempty" type:"31,omitempty"` + SentRepresentingName *string `protobuf:"bytes,157,opt,name=sent_representing_name,json=sentRepresentingName,proto3,oneof" json:"sent_representing_name,omitempty" msg:"66-31,omitempty"` // Contains the SMTP address of the Message object. - SmtpAddress *string `protobuf:"bytes,159,opt,name=smtp_address,json=smtpAddress,proto3,oneof" json:"smtp_address,omitempty" msg:"14846,omitempty" type:"31,omitempty"` + SmtpAddress *string `protobuf:"bytes,159,opt,name=smtp_address,json=smtpAddress,proto3,oneof" json:"smtp_address,omitempty" msg:"14846-31,omitempty"` // Contains the subject of the email message. - Subject *string `protobuf:"bytes,161,opt,name=subject,proto3,oneof" json:"subject,omitempty" msg:"55,omitempty" type:"31,omitempty"` + Subject *string `protobuf:"bytes,161,opt,name=subject,proto3,oneof" json:"subject,omitempty" msg:"55-31,omitempty"` // Contains the prefix for the subject of the message. - SubjectPrefix *string `protobuf:"bytes,162,opt,name=subject_prefix,json=subjectPrefix,proto3,oneof" json:"subject_prefix,omitempty" msg:"61,omitempty" type:"31,omitempty"` + SubjectPrefix *string `protobuf:"bytes,162,opt,name=subject_prefix,json=subjectPrefix,proto3,oneof" json:"subject_prefix,omitempty" msg:"61-31,omitempty"` // Contains supplementary information about a delivery status notification, as specified in [RFC3464]. - SupplementaryInfo *string `protobuf:"bytes,163,opt,name=supplementary_info,json=supplementaryInfo,proto3,oneof" json:"supplementary_info,omitempty" msg:"3099,omitempty" type:"31,omitempty"` + SupplementaryInfo *string `protobuf:"bytes,163,opt,name=supplementary_info,json=supplementaryInfo,proto3,oneof" json:"supplementary_info,omitempty" msg:"3099-31,omitempty"` // Contains an Address Book object's display name that is transmitted with the message. - TransmittableDisplayName *string `protobuf:"bytes,164,opt,name=transmittable_display_name,json=transmittableDisplayName,proto3,oneof" json:"transmittable_display_name,omitempty" msg:"14880,omitempty" type:"31,omitempty"` + TransmittableDisplayName *string `protobuf:"bytes,164,opt,name=transmittable_display_name,json=transmittableDisplayName,proto3,oneof" json:"transmittable_display_name,omitempty" msg:"14880-31,omitempty"` // Contains transport-specific message envelope information for email. - TransportMessageHeaders *string `protobuf:"bytes,165,opt,name=transport_message_headers,json=transportMessageHeaders,proto3,oneof" json:"transport_message_headers,omitempty" msg:"125,omitempty" type:"31,omitempty"` + TransportMessageHeaders *string `protobuf:"bytes,165,opt,name=transport_message_headers,json=transportMessageHeaders,proto3,oneof" json:"transport_message_headers,omitempty" msg:"125-31,omitempty"` } func (x *Message) Reset() { diff --git a/pkg/properties/message.pb_gen.go b/pkg/properties/message.pb_gen.go index 784f285..2204fb2 100644 --- a/pkg/properties/message.pb_gen.go +++ b/pkg/properties/message.pb_gen.go @@ -24,7 +24,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "267306": + case "267306-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267365": + case "267365-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267622": + case "267622-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267623": + case "267623-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267624": + case "267624-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267626": + case "267626-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267621": + case "267621-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267303": + case "267303-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267302": + case "267302-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267426": + case "267426-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267428": + case "267428-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267520": + case "267520-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267521": + case "267521-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267270": + case "267270-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267332": + case "267332-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -474,7 +474,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "12290": + case "12290-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -492,7 +492,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "2": + case "2-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -510,7 +510,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "12319": + case "12319-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -528,7 +528,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "12318": + case "12318-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -546,7 +546,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14896": + case "14896-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -564,7 +564,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14894": + case "14894-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -582,7 +582,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "16351": + case "16351-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -600,7 +600,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4246": + case "4246-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -618,7 +618,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4096": + case "4096-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -636,7 +636,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4116": + case "4116-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -654,7 +654,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4115": + case "4115-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -672,7 +672,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "57": + case "57-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -690,7 +690,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "16502": + case "16502-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -708,7 +708,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "112": + case "112-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -726,7 +726,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "12295": + case "12295-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -744,7 +744,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "16376": + case "16376-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -762,7 +762,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "16": + case "16-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -780,7 +780,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3586": + case "3586-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -798,7 +798,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3587": + case "3587-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -816,7 +816,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3588": + case "3588-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -834,7 +834,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4224": + case "4224-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -852,7 +852,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "23": + case "23-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -870,7 +870,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14858": + case "14858-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -888,7 +888,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4162": + case "4162-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -906,7 +906,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "22786": + case "22786-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -924,7 +924,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4149": + case "4149-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -942,7 +942,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "4153": + case "4153-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -960,7 +960,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14893": + case "14893-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -978,7 +978,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14859": + case "14859-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -996,7 +996,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14860": + case "14860-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1014,7 +1014,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "12296": + case "12296-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1032,7 +1032,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14887": + case "14887-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1050,7 +1050,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14861": + case "14861-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1068,7 +1068,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14926": + case "14926-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1086,7 +1086,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "88": + case "88-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1104,7 +1104,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3590": + case "3590-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1122,7 +1122,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3591": + case "3591-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1140,7 +1140,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14863": + case "14863-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1158,7 +1158,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "89": + case "89-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1176,7 +1176,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3592": + case "3592-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1194,7 +1194,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3592": + case "3592-20": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1212,7 +1212,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3607": + case "3607-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1230,7 +1230,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "87": + case "87-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1248,7 +1248,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14916": + case "14916-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1266,7 +1266,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14876": + case "14876-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1284,7 +1284,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14927": + case "14927-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1302,7 +1302,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3077": + case "3077-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1320,7 +1320,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3076": + case "3076-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1338,7 +1338,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3078": + case "3078-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1356,7 +1356,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3613": + case "3613-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1374,7 +1374,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14873": + case "14873-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1392,7 +1392,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14864": + case "14864-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1410,7 +1410,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "77": + case "77-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1428,7 +1428,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "85": + case "85-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1446,7 +1446,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "114": + case "114-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1464,7 +1464,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "115": + case "115-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1482,7 +1482,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "116": + case "116-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1500,7 +1500,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "75": + case "75-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1518,7 +1518,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "102": + case "102-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1536,7 +1536,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "103": + case "103-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1554,7 +1554,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "90": + case "90-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1572,7 +1572,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "46": + case "46-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1590,7 +1590,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "104": + case "104-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1608,7 +1608,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "105": + case "105-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1626,7 +1626,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "93": + case "93-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1644,7 +1644,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "73": + case "73-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1662,7 +1662,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "78": + case "78-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1680,7 +1680,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "35": + case "35-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1698,7 +1698,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3080": + case "3080-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1716,7 +1716,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14943": + case "14943-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1734,7 +1734,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14944": + case "14944-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1752,7 +1752,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14945": + case "14945-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1770,7 +1770,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14948": + case "14948-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1788,7 +1788,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14946": + case "14946-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1806,7 +1806,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14947": + case "14947-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1824,7 +1824,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14879": + case "14879-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1842,7 +1842,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14881": + case "14881-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1860,7 +1860,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "38": + case "38-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1878,7 +1878,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "41": + case "41-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1896,7 +1896,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "42": + case "42-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1914,7 +1914,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "118": + case "118-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1932,7 +1932,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "64": + case "64-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1950,7 +1950,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "119": + case "119-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1968,7 +1968,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "120": + case "120-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1986,7 +1986,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "68": + case "68-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2004,7 +2004,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3093": + case "3093-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2022,7 +2022,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3105": + case "3105-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2040,7 +2040,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3095": + case "3095-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2058,7 +2058,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "128": + case "128-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2076,7 +2076,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "129": + case "129-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2094,7 +2094,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26656": + case "26656-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2112,7 +2112,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "12316": + case "12316-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2130,7 +2130,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "12317": + case "12317-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2148,7 +2148,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "12314": + case "12314-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2166,7 +2166,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3615": + case "3615-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2184,7 +2184,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3102": + case "3102-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2202,7 +2202,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3103": + case "3103-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2220,7 +2220,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "16505": + case "16505-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2238,7 +2238,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3098": + case "3098-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2256,7 +2256,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14961": + case "14961-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2274,7 +2274,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14912": + case "14912-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2292,7 +2292,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "54": + case "54-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2310,7 +2310,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "100": + case "100-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2328,7 +2328,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "101": + case "101-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2346,7 +2346,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "66": + case "66-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2364,7 +2364,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14846": + case "14846-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2382,7 +2382,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "55": + case "55-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2400,7 +2400,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "61": + case "61-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2418,7 +2418,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "3099": + case "3099-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2436,7 +2436,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14880": + case "14880-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -2454,7 +2454,7 @@ func (z *Message) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "125": + case "125-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -3001,8 +3001,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // write "267306" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x36) + // write "267306-3" + err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x30, 0x36, 0x2d, 0x33) if err != nil { return } @@ -3020,8 +3020,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // write "267365" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x35) + // write "267365-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x33, 0x36, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3039,8 +3039,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // write "267622" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x32) + // write "267622-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x36, 0x32, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3058,8 +3058,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // write "267623" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x33) + // write "267623-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x36, 0x32, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3077,8 +3077,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // write "267624" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x34) + // write "267624-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x36, 0x32, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3096,8 +3096,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // write "267626" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x36) + // write "267626-11" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x36, 0x32, 0x36, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3115,8 +3115,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // write "267621" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x31) + // write "267621-11" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x36, 0x32, 0x31, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3134,8 +3134,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // write "267303" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x33) + // write "267303-64" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x33, 0x30, 0x33, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3153,8 +3153,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // write "267302" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x32) + // write "267302-64" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x33, 0x30, 0x32, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3172,8 +3172,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // write "267426" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x34, 0x32, 0x36) + // write "267426-3" + err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x34, 0x32, 0x36, 0x2d, 0x33) if err != nil { return } @@ -3191,8 +3191,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // write "267428" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x34, 0x32, 0x38) + // write "267428-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x34, 0x32, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3210,8 +3210,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // write "267520" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x35, 0x32, 0x30) + // write "267520-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x35, 0x32, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3229,8 +3229,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // write "267521" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x35, 0x32, 0x31) + // write "267521-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x35, 0x32, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3248,8 +3248,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // write "267270" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x32, 0x37, 0x30) + // write "267270-11" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x32, 0x37, 0x30, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3267,8 +3267,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // write "267332" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x33, 0x32) + // write "267332-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x33, 0x33, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3456,8 +3456,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // write "12290" - err = en.Append(0xa5, 0x31, 0x32, 0x32, 0x39, 0x30) + // write "12290-31" + err = en.Append(0xa8, 0x31, 0x32, 0x32, 0x39, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3475,8 +3475,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // write "2" - err = en.Append(0xa1, 0x32) + // write "2-11" + err = en.Append(0xa4, 0x32, 0x2d, 0x31, 0x31) if err != nil { return } @@ -3494,8 +3494,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // write "12319" - err = en.Append(0xa5, 0x31, 0x32, 0x33, 0x31, 0x39) + // write "12319-64" + err = en.Append(0xa8, 0x31, 0x32, 0x33, 0x31, 0x39, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3513,8 +3513,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // write "12318" - err = en.Append(0xa5, 0x31, 0x32, 0x33, 0x31, 0x38) + // write "12318-3" + err = en.Append(0xa7, 0x31, 0x32, 0x33, 0x31, 0x38, 0x2d, 0x33) if err != nil { return } @@ -3532,8 +3532,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // write "14896" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x36) + // write "14896-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x39, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3551,8 +3551,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // write "14894" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x34) + // write "14894-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x39, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3570,8 +3570,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // write "16351" - err = en.Append(0xa5, 0x31, 0x36, 0x33, 0x35, 0x31) + // write "16351-3" + err = en.Append(0xa7, 0x31, 0x36, 0x33, 0x35, 0x31, 0x2d, 0x33) if err != nil { return } @@ -3589,8 +3589,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // write "4246" - err = en.Append(0xa4, 0x34, 0x32, 0x34, 0x36) + // write "4246-3" + err = en.Append(0xa6, 0x34, 0x32, 0x34, 0x36, 0x2d, 0x33) if err != nil { return } @@ -3608,8 +3608,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // write "4096" - err = en.Append(0xa4, 0x34, 0x30, 0x39, 0x36) + // write "4096-31" + err = en.Append(0xa7, 0x34, 0x30, 0x39, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3627,8 +3627,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // write "4116" - err = en.Append(0xa4, 0x34, 0x31, 0x31, 0x36) + // write "4116-31" + err = en.Append(0xa7, 0x34, 0x31, 0x31, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3646,8 +3646,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // write "4115" - err = en.Append(0xa4, 0x34, 0x31, 0x31, 0x35) + // write "4115-31" + err = en.Append(0xa7, 0x34, 0x31, 0x31, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3665,8 +3665,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // write "57" - err = en.Append(0xa2, 0x35, 0x37) + // write "57-64" + err = en.Append(0xa5, 0x35, 0x37, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3684,8 +3684,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // write "16502" - err = en.Append(0xa5, 0x31, 0x36, 0x35, 0x30, 0x32) + // write "16502-3" + err = en.Append(0xa7, 0x31, 0x36, 0x35, 0x30, 0x32, 0x2d, 0x33) if err != nil { return } @@ -3703,8 +3703,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // write "112" - err = en.Append(0xa3, 0x31, 0x31, 0x32) + // write "112-31" + err = en.Append(0xa6, 0x31, 0x31, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3722,8 +3722,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // write "12295" - err = en.Append(0xa5, 0x31, 0x32, 0x32, 0x39, 0x35) + // write "12295-64" + err = en.Append(0xa8, 0x31, 0x32, 0x32, 0x39, 0x35, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3741,8 +3741,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // write "16376" - err = en.Append(0xa5, 0x31, 0x36, 0x33, 0x37, 0x36) + // write "16376-31" + err = en.Append(0xa8, 0x31, 0x36, 0x33, 0x37, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3760,8 +3760,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // write "16" - err = en.Append(0xa2, 0x31, 0x36) + // write "16-64" + err = en.Append(0xa5, 0x31, 0x36, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3779,8 +3779,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // write "3586" - err = en.Append(0xa4, 0x33, 0x35, 0x38, 0x36) + // write "3586-31" + err = en.Append(0xa7, 0x33, 0x35, 0x38, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3798,8 +3798,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // write "3587" - err = en.Append(0xa4, 0x33, 0x35, 0x38, 0x37) + // write "3587-31" + err = en.Append(0xa7, 0x33, 0x35, 0x38, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3817,8 +3817,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // write "3588" - err = en.Append(0xa4, 0x33, 0x35, 0x38, 0x38) + // write "3588-31" + err = en.Append(0xa7, 0x33, 0x35, 0x38, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3836,8 +3836,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // write "4224" - err = en.Append(0xa4, 0x34, 0x32, 0x32, 0x34) + // write "4224-3" + err = en.Append(0xa6, 0x34, 0x32, 0x32, 0x34, 0x2d, 0x33) if err != nil { return } @@ -3855,8 +3855,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // write "23" - err = en.Append(0xa2, 0x32, 0x33) + // write "23-3" + err = en.Append(0xa4, 0x32, 0x33, 0x2d, 0x33) if err != nil { return } @@ -3874,8 +3874,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // write "14858" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x38) + // write "14858-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x35, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3893,8 +3893,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // write "4162" - err = en.Append(0xa4, 0x34, 0x31, 0x36, 0x32) + // write "4162-31" + err = en.Append(0xa7, 0x34, 0x31, 0x36, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3912,8 +3912,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // write "22786" - err = en.Append(0xa5, 0x32, 0x32, 0x37, 0x38, 0x36) + // write "22786-3" + err = en.Append(0xa7, 0x32, 0x32, 0x37, 0x38, 0x36, 0x2d, 0x33) if err != nil { return } @@ -3931,8 +3931,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // write "4149" - err = en.Append(0xa4, 0x34, 0x31, 0x34, 0x39) + // write "4149-31" + err = en.Append(0xa7, 0x34, 0x31, 0x34, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3950,8 +3950,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // write "4153" - err = en.Append(0xa4, 0x34, 0x31, 0x35, 0x33) + // write "4153-31" + err = en.Append(0xa7, 0x34, 0x31, 0x35, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3969,8 +3969,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // write "14893" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x39, 0x33) + // write "14893-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x39, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -3988,8 +3988,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // write "14859" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x35, 0x39) + // write "14859-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x35, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4007,8 +4007,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // write "14860" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x36, 0x30) + // write "14860-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x36, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4026,8 +4026,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000000) == 0 { // if not empty - // write "12296" - err = en.Append(0xa5, 0x31, 0x32, 0x32, 0x39, 0x36) + // write "12296-64" + err = en.Append(0xa8, 0x31, 0x32, 0x32, 0x39, 0x36, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4045,8 +4045,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000000) == 0 { // if not empty - // write "14887" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x37) + // write "14887-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x38, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4064,8 +4064,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000000) == 0 { // if not empty - // write "14861" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x36, 0x31) + // write "14861-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x36, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4083,8 +4083,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000000) == 0 { // if not empty - // write "14926" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x36) + // write "14926-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x32, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4102,8 +4102,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000000) == 0 { // if not empty - // write "88" - err = en.Append(0xa2, 0x38, 0x38) + // write "88-11" + err = en.Append(0xa5, 0x38, 0x38, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4121,8 +4121,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000000000) == 0 { // if not empty - // write "3590" - err = en.Append(0xa4, 0x33, 0x35, 0x39, 0x30) + // write "3590-64" + err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x30, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4140,8 +4140,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000000000) == 0 { // if not empty - // write "3591" - err = en.Append(0xa4, 0x33, 0x35, 0x39, 0x31) + // write "3591-3" + err = en.Append(0xa6, 0x33, 0x35, 0x39, 0x31, 0x2d, 0x33) if err != nil { return } @@ -4159,8 +4159,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000000) == 0 { // if not empty - // write "14863" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x36, 0x33) + // write "14863-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x36, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4178,8 +4178,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000000) == 0 { // if not empty - // write "89" - err = en.Append(0xa2, 0x38, 0x39) + // write "89-11" + err = en.Append(0xa5, 0x38, 0x39, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4197,8 +4197,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1) == 0 { // if not empty - // write "3592" - err = en.Append(0xa4, 0x33, 0x35, 0x39, 0x32) + // write "3592-3" + err = en.Append(0xa6, 0x33, 0x35, 0x39, 0x32, 0x2d, 0x33) if err != nil { return } @@ -4216,8 +4216,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2) == 0 { // if not empty - // write "3592" - err = en.Append(0xa4, 0x33, 0x35, 0x39, 0x32) + // write "3592-20" + err = en.Append(0xa7, 0x33, 0x35, 0x39, 0x32, 0x2d, 0x32, 0x30) if err != nil { return } @@ -4235,8 +4235,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4) == 0 { // if not empty - // write "3607" - err = en.Append(0xa4, 0x33, 0x36, 0x30, 0x37) + // write "3607-3" + err = en.Append(0xa6, 0x33, 0x36, 0x30, 0x37, 0x2d, 0x33) if err != nil { return } @@ -4254,8 +4254,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8) == 0 { // if not empty - // write "87" - err = en.Append(0xa2, 0x38, 0x37) + // write "87-11" + err = en.Append(0xa5, 0x38, 0x37, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4273,8 +4273,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10) == 0 { // if not empty - // write "14916" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x36) + // write "14916-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x31, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4292,8 +4292,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20) == 0 { // if not empty - // write "14876" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x36) + // write "14876-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x37, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4311,8 +4311,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40) == 0 { // if not empty - // write "14927" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x32, 0x37) + // write "14927-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x32, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4330,8 +4330,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80) == 0 { // if not empty - // write "3077" - err = en.Append(0xa4, 0x33, 0x30, 0x37, 0x37) + // write "3077-3" + err = en.Append(0xa6, 0x33, 0x30, 0x37, 0x37, 0x2d, 0x33) if err != nil { return } @@ -4349,8 +4349,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100) == 0 { // if not empty - // write "3076" - err = en.Append(0xa4, 0x33, 0x30, 0x37, 0x36) + // write "3076-3" + err = en.Append(0xa6, 0x33, 0x30, 0x37, 0x36, 0x2d, 0x33) if err != nil { return } @@ -4368,8 +4368,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200) == 0 { // if not empty - // write "3078" - err = en.Append(0xa4, 0x33, 0x30, 0x37, 0x38) + // write "3078-3" + err = en.Append(0xa6, 0x33, 0x30, 0x37, 0x38, 0x2d, 0x33) if err != nil { return } @@ -4387,8 +4387,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400) == 0 { // if not empty - // write "3613" - err = en.Append(0xa4, 0x33, 0x36, 0x31, 0x33) + // write "3613-31" + err = en.Append(0xa7, 0x33, 0x36, 0x31, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4406,8 +4406,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800) == 0 { // if not empty - // write "14873" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x33) + // write "14873-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x37, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4425,8 +4425,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000) == 0 { // if not empty - // write "14864" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x36, 0x34) + // write "14864-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x36, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4444,8 +4444,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000) == 0 { // if not empty - // write "77" - err = en.Append(0xa2, 0x37, 0x37) + // write "77-31" + err = en.Append(0xa5, 0x37, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4463,8 +4463,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000) == 0 { // if not empty - // write "85" - err = en.Append(0xa2, 0x38, 0x35) + // write "85-64" + err = en.Append(0xa5, 0x38, 0x35, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4482,8 +4482,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000) == 0 { // if not empty - // write "114" - err = en.Append(0xa3, 0x31, 0x31, 0x34) + // write "114-31" + err = en.Append(0xa6, 0x31, 0x31, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4501,8 +4501,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000) == 0 { // if not empty - // write "115" - err = en.Append(0xa3, 0x31, 0x31, 0x35) + // write "115-31" + err = en.Append(0xa6, 0x31, 0x31, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4520,8 +4520,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000) == 0 { // if not empty - // write "116" - err = en.Append(0xa3, 0x31, 0x31, 0x36) + // write "116-31" + err = en.Append(0xa6, 0x31, 0x31, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4539,8 +4539,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000) == 0 { // if not empty - // write "75" - err = en.Append(0xa2, 0x37, 0x35) + // write "75-31" + err = en.Append(0xa5, 0x37, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4558,8 +4558,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000) == 0 { // if not empty - // write "102" - err = en.Append(0xa3, 0x31, 0x30, 0x32) + // write "102-31" + err = en.Append(0xa6, 0x31, 0x30, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4577,8 +4577,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000) == 0 { // if not empty - // write "103" - err = en.Append(0xa3, 0x31, 0x30, 0x33) + // write "103-31" + err = en.Append(0xa6, 0x31, 0x30, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4596,8 +4596,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000) == 0 { // if not empty - // write "90" - err = en.Append(0xa2, 0x39, 0x30) + // write "90-31" + err = en.Append(0xa5, 0x39, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4615,8 +4615,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000) == 0 { // if not empty - // write "46" - err = en.Append(0xa2, 0x34, 0x36) + // write "46-3" + err = en.Append(0xa4, 0x34, 0x36, 0x2d, 0x33) if err != nil { return } @@ -4634,8 +4634,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000) == 0 { // if not empty - // write "104" - err = en.Append(0xa3, 0x31, 0x30, 0x34) + // write "104-31" + err = en.Append(0xa6, 0x31, 0x30, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4653,8 +4653,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000) == 0 { // if not empty - // write "105" - err = en.Append(0xa3, 0x31, 0x30, 0x35) + // write "105-31" + err = en.Append(0xa6, 0x31, 0x30, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4672,8 +4672,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000) == 0 { // if not empty - // write "93" - err = en.Append(0xa2, 0x39, 0x33) + // write "93-31" + err = en.Append(0xa5, 0x39, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4691,8 +4691,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000) == 0 { // if not empty - // write "73" - err = en.Append(0xa2, 0x37, 0x33) + // write "73-31" + err = en.Append(0xa5, 0x37, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4710,8 +4710,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000) == 0 { // if not empty - // write "78" - err = en.Append(0xa2, 0x37, 0x38) + // write "78-64" + err = en.Append(0xa5, 0x37, 0x38, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4729,8 +4729,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000) == 0 { // if not empty - // write "35" - err = en.Append(0xa2, 0x33, 0x35) + // write "35-11" + err = en.Append(0xa5, 0x33, 0x35, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4748,8 +4748,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000) == 0 { // if not empty - // write "3080" - err = en.Append(0xa4, 0x33, 0x30, 0x38, 0x30) + // write "3080-11" + err = en.Append(0xa7, 0x33, 0x30, 0x38, 0x30, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4767,8 +4767,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000) == 0 { // if not empty - // write "14943" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x33) + // write "14943-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x34, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4786,8 +4786,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000) == 0 { // if not empty - // write "14944" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x34) + // write "14944-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x34, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4805,8 +4805,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000) == 0 { // if not empty - // write "14945" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x35) + // write "14945-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x34, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4824,8 +4824,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000000) == 0 { // if not empty - // write "14948" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x38) + // write "14948-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x34, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4843,8 +4843,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000000) == 0 { // if not empty - // write "14946" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x36) + // write "14946-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x34, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4862,8 +4862,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000000) == 0 { // if not empty - // write "14947" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x34, 0x37) + // write "14947-31" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x34, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4881,8 +4881,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000000) == 0 { // if not empty - // write "14879" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x37, 0x39) + // write "14879-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x37, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4900,8 +4900,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000000) == 0 { // if not empty - // write "14881" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x31) + // write "14881-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x38, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4919,8 +4919,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000000) == 0 { // if not empty - // write "38" - err = en.Append(0xa2, 0x33, 0x38) + // write "38-3" + err = en.Append(0xa4, 0x33, 0x38, 0x2d, 0x33) if err != nil { return } @@ -4938,8 +4938,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000000) == 0 { // if not empty - // write "41" - err = en.Append(0xa2, 0x34, 0x31) + // write "41-11" + err = en.Append(0xa5, 0x34, 0x31, 0x2d, 0x31, 0x31) if err != nil { return } @@ -4957,8 +4957,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000000) == 0 { // if not empty - // write "42" - err = en.Append(0xa2, 0x34, 0x32) + // write "42-64" + err = en.Append(0xa5, 0x34, 0x32, 0x2d, 0x36, 0x34) if err != nil { return } @@ -4976,8 +4976,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000000) == 0 { // if not empty - // write "118" - err = en.Append(0xa3, 0x31, 0x31, 0x38) + // write "118-31" + err = en.Append(0xa6, 0x31, 0x31, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -4995,8 +4995,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000000) == 0 { // if not empty - // write "64" - err = en.Append(0xa2, 0x36, 0x34) + // write "64-31" + err = en.Append(0xa5, 0x36, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5014,8 +5014,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000000) == 0 { // if not empty - // write "119" - err = en.Append(0xa3, 0x31, 0x31, 0x39) + // write "119-31" + err = en.Append(0xa6, 0x31, 0x31, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5033,8 +5033,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000000) == 0 { // if not empty - // write "120" - err = en.Append(0xa3, 0x31, 0x32, 0x30) + // write "120-31" + err = en.Append(0xa6, 0x31, 0x32, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5052,8 +5052,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000000000) == 0 { // if not empty - // write "68" - err = en.Append(0xa2, 0x36, 0x38) + // write "68-31" + err = en.Append(0xa5, 0x36, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5071,8 +5071,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000000000) == 0 { // if not empty - // write "3093" - err = en.Append(0xa4, 0x33, 0x30, 0x39, 0x33) + // write "3093-3" + err = en.Append(0xa6, 0x33, 0x30, 0x39, 0x33, 0x2d, 0x33) if err != nil { return } @@ -5090,8 +5090,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000000000) == 0 { // if not empty - // write "3105" - err = en.Append(0xa4, 0x33, 0x31, 0x30, 0x35) + // write "3105-31" + err = en.Append(0xa7, 0x33, 0x31, 0x30, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5109,8 +5109,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000000000) == 0 { // if not empty - // write "3095" - err = en.Append(0xa4, 0x33, 0x30, 0x39, 0x35) + // write "3095-11" + err = en.Append(0xa7, 0x33, 0x30, 0x39, 0x35, 0x2d, 0x31, 0x31) if err != nil { return } @@ -5128,8 +5128,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000000000) == 0 { // if not empty - // write "128" - err = en.Append(0xa3, 0x31, 0x32, 0x38) + // write "128-31" + err = en.Append(0xa6, 0x31, 0x32, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5147,8 +5147,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000000000) == 0 { // if not empty - // write "129" - err = en.Append(0xa3, 0x31, 0x32, 0x39) + // write "129-31" + err = en.Append(0xa6, 0x31, 0x32, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5166,8 +5166,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000000000) == 0 { // if not empty - // write "26656" - err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x35, 0x36) + // write "26656-31" + err = en.Append(0xa8, 0x32, 0x36, 0x36, 0x35, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5185,8 +5185,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x10000000000000) == 0 { // if not empty - // write "12316" - err = en.Append(0xa5, 0x31, 0x32, 0x33, 0x31, 0x36) + // write "12316-64" + err = en.Append(0xa8, 0x31, 0x32, 0x33, 0x31, 0x36, 0x2d, 0x36, 0x34) if err != nil { return } @@ -5204,8 +5204,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x20000000000000) == 0 { // if not empty - // write "12317" - err = en.Append(0xa5, 0x31, 0x32, 0x33, 0x31, 0x37) + // write "12317-3" + err = en.Append(0xa7, 0x31, 0x32, 0x33, 0x31, 0x37, 0x2d, 0x33) if err != nil { return } @@ -5223,8 +5223,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x40000000000000) == 0 { // if not empty - // write "12314" - err = en.Append(0xa5, 0x31, 0x32, 0x33, 0x31, 0x34) + // write "12314-3" + err = en.Append(0xa7, 0x31, 0x32, 0x33, 0x31, 0x34, 0x2d, 0x33) if err != nil { return } @@ -5242,8 +5242,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x80000000000000) == 0 { // if not empty - // write "3615" - err = en.Append(0xa4, 0x33, 0x36, 0x31, 0x35) + // write "3615-11" + err = en.Append(0xa7, 0x33, 0x36, 0x31, 0x35, 0x2d, 0x31, 0x31) if err != nil { return } @@ -5261,8 +5261,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x100000000000000) == 0 { // if not empty - // write "3102" - err = en.Append(0xa4, 0x33, 0x31, 0x30, 0x32) + // write "3102-31" + err = en.Append(0xa7, 0x33, 0x31, 0x30, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5280,8 +5280,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x200000000000000) == 0 { // if not empty - // write "3103" - err = en.Append(0xa4, 0x33, 0x31, 0x30, 0x33) + // write "3103-31" + err = en.Append(0xa7, 0x33, 0x31, 0x30, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5299,8 +5299,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x400000000000000) == 0 { // if not empty - // write "16505" - err = en.Append(0xa5, 0x31, 0x36, 0x35, 0x30, 0x35) + // write "16505-3" + err = en.Append(0xa7, 0x31, 0x36, 0x35, 0x30, 0x35, 0x2d, 0x33) if err != nil { return } @@ -5318,8 +5318,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x800000000000000) == 0 { // if not empty - // write "3098" - err = en.Append(0xa4, 0x33, 0x30, 0x39, 0x38) + // write "3098-31" + err = en.Append(0xa7, 0x33, 0x30, 0x39, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5337,8 +5337,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x1000000000000000) == 0 { // if not empty - // write "14961" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x36, 0x31) + // write "14961-3" + err = en.Append(0xa7, 0x31, 0x34, 0x39, 0x36, 0x31, 0x2d, 0x33) if err != nil { return } @@ -5356,8 +5356,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x2000000000000000) == 0 { // if not empty - // write "14912" - err = en.Append(0xa5, 0x31, 0x34, 0x39, 0x31, 0x32) + // write "14912-11" + err = en.Append(0xa8, 0x31, 0x34, 0x39, 0x31, 0x32, 0x2d, 0x31, 0x31) if err != nil { return } @@ -5375,8 +5375,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x4000000000000000) == 0 { // if not empty - // write "54" - err = en.Append(0xa2, 0x35, 0x34) + // write "54-3" + err = en.Append(0xa4, 0x35, 0x34, 0x2d, 0x33) if err != nil { return } @@ -5394,8 +5394,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[1] & 0x8000000000000000) == 0 { // if not empty - // write "100" - err = en.Append(0xa3, 0x31, 0x30, 0x30) + // write "100-31" + err = en.Append(0xa6, 0x31, 0x30, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5413,8 +5413,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x1) == 0 { // if not empty - // write "101" - err = en.Append(0xa3, 0x31, 0x30, 0x31) + // write "101-31" + err = en.Append(0xa6, 0x31, 0x30, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5432,8 +5432,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x2) == 0 { // if not empty - // write "66" - err = en.Append(0xa2, 0x36, 0x36) + // write "66-31" + err = en.Append(0xa5, 0x36, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5451,8 +5451,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x4) == 0 { // if not empty - // write "14846" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x34, 0x36) + // write "14846-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x34, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5470,8 +5470,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x8) == 0 { // if not empty - // write "55" - err = en.Append(0xa2, 0x35, 0x35) + // write "55-31" + err = en.Append(0xa5, 0x35, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5489,8 +5489,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x10) == 0 { // if not empty - // write "61" - err = en.Append(0xa2, 0x36, 0x31) + // write "61-31" + err = en.Append(0xa5, 0x36, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5508,8 +5508,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x20) == 0 { // if not empty - // write "3099" - err = en.Append(0xa4, 0x33, 0x30, 0x39, 0x39) + // write "3099-31" + err = en.Append(0xa7, 0x33, 0x30, 0x39, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5527,8 +5527,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x40) == 0 { // if not empty - // write "14880" - err = en.Append(0xa5, 0x31, 0x34, 0x38, 0x38, 0x30) + // write "14880-31" + err = en.Append(0xa8, 0x31, 0x34, 0x38, 0x38, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -5546,8 +5546,8 @@ func (z *Message) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[2] & 0x80) == 0 { // if not empty - // write "125" - err = en.Append(0xa3, 0x31, 0x32, 0x35) + // write "125-31" + err = en.Append(0xa6, 0x31, 0x32, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -6083,8 +6083,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // string "267306" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x36) + // string "267306-3" + o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x30, 0x36, 0x2d, 0x33) if z.AutoProcessState == nil { o = msgp.AppendNil(o) } else { @@ -6092,8 +6092,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // string "267365" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x36, 0x35) + // string "267365-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x33, 0x36, 0x35, 0x2d, 0x33, 0x31) if z.Billing == nil { o = msgp.AppendNil(o) } else { @@ -6101,8 +6101,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // string "267622" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x32) + // string "267622-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x36, 0x32, 0x32, 0x2d, 0x33, 0x31) if z.Classification == nil { o = msgp.AppendNil(o) } else { @@ -6110,8 +6110,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // string "267623" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x33) + // string "267623-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x36, 0x32, 0x33, 0x2d, 0x33, 0x31) if z.ClassificationDescription == nil { o = msgp.AppendNil(o) } else { @@ -6119,8 +6119,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // string "267624" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x34) + // string "267624-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x36, 0x32, 0x34, 0x2d, 0x33, 0x31) if z.ClassificationGuid == nil { o = msgp.AppendNil(o) } else { @@ -6128,8 +6128,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // string "267626" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x36) + // string "267626-11" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x36, 0x32, 0x36, 0x2d, 0x31, 0x31) if z.ClassificationKeep == nil { o = msgp.AppendNil(o) } else { @@ -6137,8 +6137,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // string "267621" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x32, 0x31) + // string "267621-11" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x36, 0x32, 0x31, 0x2d, 0x31, 0x31) if z.Classified == nil { o = msgp.AppendNil(o) } else { @@ -6146,8 +6146,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // string "267303" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x33) + // string "267303-64" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x33, 0x30, 0x33, 0x2d, 0x36, 0x34) if z.CommonEnd == nil { o = msgp.AppendNil(o) } else { @@ -6155,8 +6155,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // string "267302" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x32) + // string "267302-64" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x33, 0x30, 0x32, 0x2d, 0x36, 0x34) if z.CommonStart == nil { o = msgp.AppendNil(o) } else { @@ -6164,8 +6164,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // string "267426" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x34, 0x32, 0x36) + // string "267426-3" + o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x34, 0x32, 0x36, 0x2d, 0x33) if z.CurrentVersion == nil { o = msgp.AppendNil(o) } else { @@ -6173,8 +6173,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // string "267428" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x34, 0x32, 0x38) + // string "267428-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x34, 0x32, 0x38, 0x2d, 0x33, 0x31) if z.CurrentVersionName == nil { o = msgp.AppendNil(o) } else { @@ -6182,8 +6182,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // string "267520" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x35, 0x32, 0x30) + // string "267520-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x35, 0x32, 0x30, 0x2d, 0x33, 0x31) if z.InternetAccountName == nil { o = msgp.AppendNil(o) } else { @@ -6191,8 +6191,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // string "267521" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x35, 0x32, 0x31) + // string "267521-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x35, 0x32, 0x31, 0x2d, 0x33, 0x31) if z.InternetAccountStamp == nil { o = msgp.AppendNil(o) } else { @@ -6200,8 +6200,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // string "267270" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x32, 0x37, 0x30) + // string "267270-11" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x32, 0x37, 0x30, 0x2d, 0x31, 0x31) if z.Private == nil { o = msgp.AppendNil(o) } else { @@ -6209,8 +6209,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // string "267332" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x33, 0x32) + // string "267332-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x33, 0x33, 0x32, 0x2d, 0x33, 0x31) if z.VerbResponse == nil { o = msgp.AppendNil(o) } else { @@ -6288,8 +6288,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.AppendInt32(o, *z.PhishingStamp) } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // string "12290" - o = append(o, 0xa5, 0x31, 0x32, 0x32, 0x39, 0x30) + // string "12290-31" + o = append(o, 0xa8, 0x31, 0x32, 0x32, 0x39, 0x30, 0x2d, 0x33, 0x31) if z.AddressType == nil { o = msgp.AppendNil(o) } else { @@ -6297,8 +6297,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // string "2" - o = append(o, 0xa1, 0x32) + // string "2-11" + o = append(o, 0xa4, 0x32, 0x2d, 0x31, 0x31) if z.AlternateRecipientAllowed == nil { o = msgp.AppendNil(o) } else { @@ -6306,8 +6306,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // string "12319" - o = append(o, 0xa5, 0x31, 0x32, 0x33, 0x31, 0x39) + // string "12319-64" + o = append(o, 0xa8, 0x31, 0x32, 0x33, 0x31, 0x39, 0x2d, 0x36, 0x34) if z.ArchiveDate == nil { o = msgp.AppendNil(o) } else { @@ -6315,8 +6315,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // string "12318" - o = append(o, 0xa5, 0x31, 0x32, 0x33, 0x31, 0x38) + // string "12318-3" + o = append(o, 0xa7, 0x31, 0x32, 0x33, 0x31, 0x38, 0x2d, 0x33) if z.ArchivePeriod == nil { o = msgp.AppendNil(o) } else { @@ -6324,8 +6324,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // string "14896" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x36) + // string "14896-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x39, 0x36, 0x2d, 0x33, 0x31) if z.Assistant == nil { o = msgp.AppendNil(o) } else { @@ -6333,8 +6333,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // string "14894" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x34) + // string "14894-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x39, 0x34, 0x2d, 0x33, 0x31) if z.AssistantTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -6342,8 +6342,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // string "16351" - o = append(o, 0xa5, 0x31, 0x36, 0x33, 0x35, 0x31) + // string "16351-3" + o = append(o, 0xa7, 0x31, 0x36, 0x33, 0x35, 0x31, 0x2d, 0x33) if z.AutoResponseSuppress == nil { o = msgp.AppendNil(o) } else { @@ -6351,8 +6351,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // string "4246" - o = append(o, 0xa4, 0x34, 0x32, 0x34, 0x36) + // string "4246-3" + o = append(o, 0xa6, 0x34, 0x32, 0x34, 0x36, 0x2d, 0x33) if z.BlockStatus == nil { o = msgp.AppendNil(o) } else { @@ -6360,8 +6360,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // string "4096" - o = append(o, 0xa4, 0x34, 0x30, 0x39, 0x36) + // string "4096-31" + o = append(o, 0xa7, 0x34, 0x30, 0x39, 0x36, 0x2d, 0x33, 0x31) if z.Body == nil { o = msgp.AppendNil(o) } else { @@ -6369,8 +6369,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // string "4116" - o = append(o, 0xa4, 0x34, 0x31, 0x31, 0x36) + // string "4116-31" + o = append(o, 0xa7, 0x34, 0x31, 0x31, 0x36, 0x2d, 0x33, 0x31) if z.BodyContentLocation == nil { o = msgp.AppendNil(o) } else { @@ -6378,8 +6378,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // string "4115" - o = append(o, 0xa4, 0x34, 0x31, 0x31, 0x35) + // string "4115-31" + o = append(o, 0xa7, 0x34, 0x31, 0x31, 0x35, 0x2d, 0x33, 0x31) if z.BodyHtml == nil { o = msgp.AppendNil(o) } else { @@ -6387,8 +6387,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // string "57" - o = append(o, 0xa2, 0x35, 0x37) + // string "57-64" + o = append(o, 0xa5, 0x35, 0x37, 0x2d, 0x36, 0x34) if z.ClientSubmitTime == nil { o = msgp.AppendNil(o) } else { @@ -6396,8 +6396,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // string "16502" - o = append(o, 0xa5, 0x31, 0x36, 0x35, 0x30, 0x32) + // string "16502-3" + o = append(o, 0xa7, 0x31, 0x36, 0x35, 0x30, 0x32, 0x2d, 0x33) if z.ContentFilterSpamConfidenceLevel == nil { o = msgp.AppendNil(o) } else { @@ -6405,8 +6405,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // string "112" - o = append(o, 0xa3, 0x31, 0x31, 0x32) + // string "112-31" + o = append(o, 0xa6, 0x31, 0x31, 0x32, 0x2d, 0x33, 0x31) if z.ConversationTopic == nil { o = msgp.AppendNil(o) } else { @@ -6414,8 +6414,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // string "12295" - o = append(o, 0xa5, 0x31, 0x32, 0x32, 0x39, 0x35) + // string "12295-64" + o = append(o, 0xa8, 0x31, 0x32, 0x32, 0x39, 0x35, 0x2d, 0x36, 0x34) if z.CreationTime == nil { o = msgp.AppendNil(o) } else { @@ -6423,8 +6423,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // string "16376" - o = append(o, 0xa5, 0x31, 0x36, 0x33, 0x37, 0x36) + // string "16376-31" + o = append(o, 0xa8, 0x31, 0x36, 0x33, 0x37, 0x36, 0x2d, 0x33, 0x31) if z.CreatorName == nil { o = msgp.AppendNil(o) } else { @@ -6432,8 +6432,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // string "16" - o = append(o, 0xa2, 0x31, 0x36) + // string "16-64" + o = append(o, 0xa5, 0x31, 0x36, 0x2d, 0x36, 0x34) if z.DeliverTime == nil { o = msgp.AppendNil(o) } else { @@ -6441,8 +6441,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // string "3586" - o = append(o, 0xa4, 0x33, 0x35, 0x38, 0x36) + // string "3586-31" + o = append(o, 0xa7, 0x33, 0x35, 0x38, 0x36, 0x2d, 0x33, 0x31) if z.DisplayBcc == nil { o = msgp.AppendNil(o) } else { @@ -6450,8 +6450,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // string "3587" - o = append(o, 0xa4, 0x33, 0x35, 0x38, 0x37) + // string "3587-31" + o = append(o, 0xa7, 0x33, 0x35, 0x38, 0x37, 0x2d, 0x33, 0x31) if z.DisplayCc == nil { o = msgp.AppendNil(o) } else { @@ -6459,8 +6459,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // string "3588" - o = append(o, 0xa4, 0x33, 0x35, 0x38, 0x38) + // string "3588-31" + o = append(o, 0xa7, 0x33, 0x35, 0x38, 0x38, 0x2d, 0x33, 0x31) if z.DisplayTo == nil { o = msgp.AppendNil(o) } else { @@ -6468,8 +6468,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // string "4224" - o = append(o, 0xa4, 0x34, 0x32, 0x32, 0x34) + // string "4224-3" + o = append(o, 0xa6, 0x34, 0x32, 0x32, 0x34, 0x2d, 0x33) if z.IconIndex == nil { o = msgp.AppendNil(o) } else { @@ -6477,8 +6477,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // string "23" - o = append(o, 0xa2, 0x32, 0x33) + // string "23-3" + o = append(o, 0xa4, 0x32, 0x33, 0x2d, 0x33) if z.Importance == nil { o = msgp.AppendNil(o) } else { @@ -6486,8 +6486,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // string "14858" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x38) + // string "14858-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x35, 0x38, 0x2d, 0x33, 0x31) if z.Initials == nil { o = msgp.AppendNil(o) } else { @@ -6495,8 +6495,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // string "4162" - o = append(o, 0xa4, 0x34, 0x31, 0x36, 0x32) + // string "4162-31" + o = append(o, 0xa7, 0x34, 0x31, 0x36, 0x32, 0x2d, 0x33, 0x31) if z.InReplyToId == nil { o = msgp.AppendNil(o) } else { @@ -6504,8 +6504,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // string "22786" - o = append(o, 0xa5, 0x32, 0x32, 0x37, 0x38, 0x36) + // string "22786-3" + o = append(o, 0xa7, 0x32, 0x32, 0x37, 0x38, 0x36, 0x2d, 0x33) if z.InternetMailOverrideFormat == nil { o = msgp.AppendNil(o) } else { @@ -6513,8 +6513,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // string "4149" - o = append(o, 0xa4, 0x34, 0x31, 0x34, 0x39) + // string "4149-31" + o = append(o, 0xa7, 0x34, 0x31, 0x34, 0x39, 0x2d, 0x33, 0x31) if z.InternetMessageId == nil { o = msgp.AppendNil(o) } else { @@ -6522,8 +6522,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // string "4153" - o = append(o, 0xa4, 0x34, 0x31, 0x35, 0x33) + // string "4153-31" + o = append(o, 0xa7, 0x34, 0x31, 0x35, 0x33, 0x2d, 0x33, 0x31) if z.InternetReferences == nil { o = msgp.AppendNil(o) } else { @@ -6531,8 +6531,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // string "14893" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x39, 0x33) + // string "14893-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x39, 0x33, 0x2d, 0x33, 0x31) if z.IsdnNumber == nil { o = msgp.AppendNil(o) } else { @@ -6540,8 +6540,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // string "14859" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x35, 0x39) + // string "14859-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x35, 0x39, 0x2d, 0x33, 0x31) if z.Keyword == nil { o = msgp.AppendNil(o) } else { @@ -6549,8 +6549,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // string "14860" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x36, 0x30) + // string "14860-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x36, 0x30, 0x2d, 0x33, 0x31) if z.Language == nil { o = msgp.AppendNil(o) } else { @@ -6558,8 +6558,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000000) == 0 { // if not empty - // string "12296" - o = append(o, 0xa5, 0x31, 0x32, 0x32, 0x39, 0x36) + // string "12296-64" + o = append(o, 0xa8, 0x31, 0x32, 0x32, 0x39, 0x36, 0x2d, 0x36, 0x34) if z.LastModificationTime == nil { o = msgp.AppendNil(o) } else { @@ -6567,8 +6567,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000000) == 0 { // if not empty - // string "14887" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x37) + // string "14887-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x38, 0x37, 0x2d, 0x33, 0x31) if z.Locality == nil { o = msgp.AppendNil(o) } else { @@ -6576,8 +6576,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000000) == 0 { // if not empty - // string "14861" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x36, 0x31) + // string "14861-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x36, 0x31, 0x2d, 0x33, 0x31) if z.Location == nil { o = msgp.AppendNil(o) } else { @@ -6585,8 +6585,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000000) == 0 { // if not empty - // string "14926" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x36) + // string "14926-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x32, 0x36, 0x2d, 0x33, 0x31) if z.ManagerName == nil { o = msgp.AppendNil(o) } else { @@ -6594,8 +6594,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000000) == 0 { // if not empty - // string "88" - o = append(o, 0xa2, 0x38, 0x38) + // string "88-11" + o = append(o, 0xa5, 0x38, 0x38, 0x2d, 0x31, 0x31) if z.MessageCcMe == nil { o = msgp.AppendNil(o) } else { @@ -6603,8 +6603,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000000000) == 0 { // if not empty - // string "3590" - o = append(o, 0xa4, 0x33, 0x35, 0x39, 0x30) + // string "3590-64" + o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x30, 0x2d, 0x36, 0x34) if z.MessageDeliveryTime == nil { o = msgp.AppendNil(o) } else { @@ -6612,8 +6612,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000000000) == 0 { // if not empty - // string "3591" - o = append(o, 0xa4, 0x33, 0x35, 0x39, 0x31) + // string "3591-3" + o = append(o, 0xa6, 0x33, 0x35, 0x39, 0x31, 0x2d, 0x33) if z.MessageFlags == nil { o = msgp.AppendNil(o) } else { @@ -6621,8 +6621,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000000000) == 0 { // if not empty - // string "14863" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x36, 0x33) + // string "14863-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x36, 0x33, 0x2d, 0x33, 0x31) if z.MessageHandlingSystemCommonName == nil { o = msgp.AppendNil(o) } else { @@ -6630,8 +6630,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000000) == 0 { // if not empty - // string "89" - o = append(o, 0xa2, 0x38, 0x39) + // string "89-11" + o = append(o, 0xa5, 0x38, 0x39, 0x2d, 0x31, 0x31) if z.MessageRecipientMe == nil { o = msgp.AppendNil(o) } else { @@ -6639,8 +6639,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1) == 0 { // if not empty - // string "3592" - o = append(o, 0xa4, 0x33, 0x35, 0x39, 0x32) + // string "3592-3" + o = append(o, 0xa6, 0x33, 0x35, 0x39, 0x32, 0x2d, 0x33) if z.MessageSize == nil { o = msgp.AppendNil(o) } else { @@ -6648,8 +6648,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2) == 0 { // if not empty - // string "3592" - o = append(o, 0xa4, 0x33, 0x35, 0x39, 0x32) + // string "3592-20" + o = append(o, 0xa7, 0x33, 0x35, 0x39, 0x32, 0x2d, 0x32, 0x30) if z.MessageSizeExtended == nil { o = msgp.AppendNil(o) } else { @@ -6657,8 +6657,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4) == 0 { // if not empty - // string "3607" - o = append(o, 0xa4, 0x33, 0x36, 0x30, 0x37) + // string "3607-3" + o = append(o, 0xa6, 0x33, 0x36, 0x30, 0x37, 0x2d, 0x33) if z.MessageStatus == nil { o = msgp.AppendNil(o) } else { @@ -6666,8 +6666,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8) == 0 { // if not empty - // string "87" - o = append(o, 0xa2, 0x38, 0x37) + // string "87-11" + o = append(o, 0xa5, 0x38, 0x37, 0x2d, 0x31, 0x31) if z.MessageToMe == nil { o = msgp.AppendNil(o) } else { @@ -6675,8 +6675,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10) == 0 { // if not empty - // string "14916" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x36) + // string "14916-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x31, 0x36, 0x2d, 0x33, 0x31) if z.MiddleName == nil { o = msgp.AppendNil(o) } else { @@ -6684,8 +6684,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20) == 0 { // if not empty - // string "14876" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x36) + // string "14876-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x37, 0x36, 0x2d, 0x33, 0x31) if z.MobileTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -6693,8 +6693,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40) == 0 { // if not empty - // string "14927" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x32, 0x37) + // string "14927-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x32, 0x37, 0x2d, 0x33, 0x31) if z.Nickname == nil { o = msgp.AppendNil(o) } else { @@ -6702,8 +6702,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80) == 0 { // if not empty - // string "3077" - o = append(o, 0xa4, 0x33, 0x30, 0x37, 0x37) + // string "3077-3" + o = append(o, 0xa6, 0x33, 0x30, 0x37, 0x37, 0x2d, 0x33) if z.NonDeliveryReportDiagCode == nil { o = msgp.AppendNil(o) } else { @@ -6711,8 +6711,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100) == 0 { // if not empty - // string "3076" - o = append(o, 0xa4, 0x33, 0x30, 0x37, 0x36) + // string "3076-3" + o = append(o, 0xa6, 0x33, 0x30, 0x37, 0x36, 0x2d, 0x33) if z.NonDeliveryReportReasonCode == nil { o = msgp.AppendNil(o) } else { @@ -6720,8 +6720,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200) == 0 { // if not empty - // string "3078" - o = append(o, 0xa4, 0x33, 0x30, 0x37, 0x38) + // string "3078-3" + o = append(o, 0xa6, 0x33, 0x30, 0x37, 0x38, 0x2d, 0x33) if z.NonDeliveryReportStatusCode == nil { o = msgp.AppendNil(o) } else { @@ -6729,8 +6729,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400) == 0 { // if not empty - // string "3613" - o = append(o, 0xa4, 0x33, 0x36, 0x31, 0x33) + // string "3613-31" + o = append(o, 0xa7, 0x33, 0x36, 0x31, 0x33, 0x2d, 0x33, 0x31) if z.NormalizedSubject == nil { o = msgp.AppendNil(o) } else { @@ -6738,8 +6738,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800) == 0 { // if not empty - // string "14873" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x33) + // string "14873-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x37, 0x33, 0x2d, 0x33, 0x31) if z.OfficeLocation == nil { o = msgp.AppendNil(o) } else { @@ -6747,8 +6747,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000) == 0 { // if not empty - // string "14864" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x36, 0x34) + // string "14864-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x36, 0x34, 0x2d, 0x33, 0x31) if z.OrganizationalIdNumber == nil { o = msgp.AppendNil(o) } else { @@ -6756,8 +6756,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000) == 0 { // if not empty - // string "77" - o = append(o, 0xa2, 0x37, 0x37) + // string "77-31" + o = append(o, 0xa5, 0x37, 0x37, 0x2d, 0x33, 0x31) if z.OriginalAuthorName == nil { o = msgp.AppendNil(o) } else { @@ -6765,8 +6765,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000) == 0 { // if not empty - // string "85" - o = append(o, 0xa2, 0x38, 0x35) + // string "85-64" + o = append(o, 0xa5, 0x38, 0x35, 0x2d, 0x36, 0x34) if z.OriginalDeliveryTime == nil { o = msgp.AppendNil(o) } else { @@ -6774,8 +6774,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000) == 0 { // if not empty - // string "114" - o = append(o, 0xa3, 0x31, 0x31, 0x34) + // string "114-31" + o = append(o, 0xa6, 0x31, 0x31, 0x34, 0x2d, 0x33, 0x31) if z.OriginalDisplayBcc == nil { o = msgp.AppendNil(o) } else { @@ -6783,8 +6783,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000) == 0 { // if not empty - // string "115" - o = append(o, 0xa3, 0x31, 0x31, 0x35) + // string "115-31" + o = append(o, 0xa6, 0x31, 0x31, 0x35, 0x2d, 0x33, 0x31) if z.OriginalDisplayCc == nil { o = msgp.AppendNil(o) } else { @@ -6792,8 +6792,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000) == 0 { // if not empty - // string "116" - o = append(o, 0xa3, 0x31, 0x31, 0x36) + // string "116-31" + o = append(o, 0xa6, 0x31, 0x31, 0x36, 0x2d, 0x33, 0x31) if z.OriginalDisplayTo == nil { o = msgp.AppendNil(o) } else { @@ -6801,8 +6801,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000) == 0 { // if not empty - // string "75" - o = append(o, 0xa2, 0x37, 0x35) + // string "75-31" + o = append(o, 0xa5, 0x37, 0x35, 0x2d, 0x33, 0x31) if z.OriginalMessageClass == nil { o = msgp.AppendNil(o) } else { @@ -6810,8 +6810,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000) == 0 { // if not empty - // string "102" - o = append(o, 0xa3, 0x31, 0x30, 0x32) + // string "102-31" + o = append(o, 0xa6, 0x31, 0x30, 0x32, 0x2d, 0x33, 0x31) if z.OriginalSenderAddressType == nil { o = msgp.AppendNil(o) } else { @@ -6819,8 +6819,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000) == 0 { // if not empty - // string "103" - o = append(o, 0xa3, 0x31, 0x30, 0x33) + // string "103-31" + o = append(o, 0xa6, 0x31, 0x30, 0x33, 0x2d, 0x33, 0x31) if z.OriginalSenderEmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -6828,8 +6828,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000) == 0 { // if not empty - // string "90" - o = append(o, 0xa2, 0x39, 0x30) + // string "90-31" + o = append(o, 0xa5, 0x39, 0x30, 0x2d, 0x33, 0x31) if z.OriginalSenderName == nil { o = msgp.AppendNil(o) } else { @@ -6837,8 +6837,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000) == 0 { // if not empty - // string "46" - o = append(o, 0xa2, 0x34, 0x36) + // string "46-3" + o = append(o, 0xa4, 0x34, 0x36, 0x2d, 0x33) if z.OriginalSensitivity == nil { o = msgp.AppendNil(o) } else { @@ -6846,8 +6846,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000) == 0 { // if not empty - // string "104" - o = append(o, 0xa3, 0x31, 0x30, 0x34) + // string "104-31" + o = append(o, 0xa6, 0x31, 0x30, 0x34, 0x2d, 0x33, 0x31) if z.OriginalSentRepresentingAddressType == nil { o = msgp.AppendNil(o) } else { @@ -6855,8 +6855,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000) == 0 { // if not empty - // string "105" - o = append(o, 0xa3, 0x31, 0x30, 0x35) + // string "105-31" + o = append(o, 0xa6, 0x31, 0x30, 0x35, 0x2d, 0x33, 0x31) if z.OriginalSentRepresentingEmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -6864,8 +6864,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000) == 0 { // if not empty - // string "93" - o = append(o, 0xa2, 0x39, 0x33) + // string "93-31" + o = append(o, 0xa5, 0x39, 0x33, 0x2d, 0x33, 0x31) if z.OriginalSentRepresentingName == nil { o = msgp.AppendNil(o) } else { @@ -6873,8 +6873,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000) == 0 { // if not empty - // string "73" - o = append(o, 0xa2, 0x37, 0x33) + // string "73-31" + o = append(o, 0xa5, 0x37, 0x33, 0x2d, 0x33, 0x31) if z.OriginalSubject == nil { o = msgp.AppendNil(o) } else { @@ -6882,8 +6882,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000) == 0 { // if not empty - // string "78" - o = append(o, 0xa2, 0x37, 0x38) + // string "78-64" + o = append(o, 0xa5, 0x37, 0x38, 0x2d, 0x36, 0x34) if z.OriginalSubmitTime == nil { o = msgp.AppendNil(o) } else { @@ -6891,8 +6891,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000) == 0 { // if not empty - // string "35" - o = append(o, 0xa2, 0x33, 0x35) + // string "35-11" + o = append(o, 0xa5, 0x33, 0x35, 0x2d, 0x31, 0x31) if z.OriginatorDeliveryReportRequested == nil { o = msgp.AppendNil(o) } else { @@ -6900,8 +6900,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000) == 0 { // if not empty - // string "3080" - o = append(o, 0xa4, 0x33, 0x30, 0x38, 0x30) + // string "3080-11" + o = append(o, 0xa7, 0x33, 0x30, 0x38, 0x30, 0x2d, 0x31, 0x31) if z.OriginatorNonDeliveryReportRequested == nil { o = msgp.AppendNil(o) } else { @@ -6909,8 +6909,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000) == 0 { // if not empty - // string "14943" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x33) + // string "14943-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x34, 0x33, 0x2d, 0x33, 0x31) if z.OtherAddressCity == nil { o = msgp.AppendNil(o) } else { @@ -6918,8 +6918,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000) == 0 { // if not empty - // string "14944" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x34) + // string "14944-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x34, 0x34, 0x2d, 0x33, 0x31) if z.OtherAddressCountry == nil { o = msgp.AppendNil(o) } else { @@ -6927,8 +6927,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000) == 0 { // if not empty - // string "14945" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x35) + // string "14945-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x34, 0x35, 0x2d, 0x33, 0x31) if z.OtherAddressPostalCode == nil { o = msgp.AppendNil(o) } else { @@ -6936,8 +6936,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000000) == 0 { // if not empty - // string "14948" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x38) + // string "14948-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x34, 0x38, 0x2d, 0x33, 0x31) if z.OtherAddressPostOfficeBox == nil { o = msgp.AppendNil(o) } else { @@ -6945,8 +6945,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000000) == 0 { // if not empty - // string "14946" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x36) + // string "14946-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x34, 0x36, 0x2d, 0x33, 0x31) if z.OtherAddressStateOrProvince == nil { o = msgp.AppendNil(o) } else { @@ -6954,8 +6954,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000000) == 0 { // if not empty - // string "14947" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x34, 0x37) + // string "14947-31" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x34, 0x37, 0x2d, 0x33, 0x31) if z.OtherAddressStreet == nil { o = msgp.AppendNil(o) } else { @@ -6963,8 +6963,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000000) == 0 { // if not empty - // string "14879" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x37, 0x39) + // string "14879-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x37, 0x39, 0x2d, 0x33, 0x31) if z.OtherTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -6972,8 +6972,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000000) == 0 { // if not empty - // string "14881" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x31) + // string "14881-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x38, 0x31, 0x2d, 0x33, 0x31) if z.PagerTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -6981,8 +6981,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000000) == 0 { // if not empty - // string "38" - o = append(o, 0xa2, 0x33, 0x38) + // string "38-3" + o = append(o, 0xa4, 0x33, 0x38, 0x2d, 0x33) if z.Priority == nil { o = msgp.AppendNil(o) } else { @@ -6990,8 +6990,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000000) == 0 { // if not empty - // string "41" - o = append(o, 0xa2, 0x34, 0x31) + // string "41-11" + o = append(o, 0xa5, 0x34, 0x31, 0x2d, 0x31, 0x31) if z.ReadReceiptRequested == nil { o = msgp.AppendNil(o) } else { @@ -6999,8 +6999,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000000) == 0 { // if not empty - // string "42" - o = append(o, 0xa2, 0x34, 0x32) + // string "42-64" + o = append(o, 0xa5, 0x34, 0x32, 0x2d, 0x36, 0x34) if z.ReceiptTime == nil { o = msgp.AppendNil(o) } else { @@ -7008,8 +7008,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000000) == 0 { // if not empty - // string "118" - o = append(o, 0xa3, 0x31, 0x31, 0x38) + // string "118-31" + o = append(o, 0xa6, 0x31, 0x31, 0x38, 0x2d, 0x33, 0x31) if z.ReceivedByEmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -7017,8 +7017,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000000) == 0 { // if not empty - // string "64" - o = append(o, 0xa2, 0x36, 0x34) + // string "64-31" + o = append(o, 0xa5, 0x36, 0x34, 0x2d, 0x33, 0x31) if z.ReceivedByName == nil { o = msgp.AppendNil(o) } else { @@ -7026,8 +7026,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000000) == 0 { // if not empty - // string "119" - o = append(o, 0xa3, 0x31, 0x31, 0x39) + // string "119-31" + o = append(o, 0xa6, 0x31, 0x31, 0x39, 0x2d, 0x33, 0x31) if z.ReceivedRepresentingAddressType == nil { o = msgp.AppendNil(o) } else { @@ -7035,8 +7035,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000000) == 0 { // if not empty - // string "120" - o = append(o, 0xa3, 0x31, 0x32, 0x30) + // string "120-31" + o = append(o, 0xa6, 0x31, 0x32, 0x30, 0x2d, 0x33, 0x31) if z.ReceivedRepresentingEmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -7044,8 +7044,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000000000) == 0 { // if not empty - // string "68" - o = append(o, 0xa2, 0x36, 0x38) + // string "68-31" + o = append(o, 0xa5, 0x36, 0x38, 0x2d, 0x33, 0x31) if z.ReceivedRepresentingName == nil { o = msgp.AppendNil(o) } else { @@ -7053,8 +7053,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000000000) == 0 { // if not empty - // string "3093" - o = append(o, 0xa4, 0x33, 0x30, 0x39, 0x33) + // string "3093-3" + o = append(o, 0xa6, 0x33, 0x30, 0x39, 0x33, 0x2d, 0x33) if z.RecipientType == nil { o = msgp.AppendNil(o) } else { @@ -7062,8 +7062,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000000000) == 0 { // if not empty - // string "3105" - o = append(o, 0xa4, 0x33, 0x31, 0x30, 0x35) + // string "3105-31" + o = append(o, 0xa7, 0x33, 0x31, 0x30, 0x35, 0x2d, 0x33, 0x31) if z.RemoteMessageTransferAgent == nil { o = msgp.AppendNil(o) } else { @@ -7071,8 +7071,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000000000) == 0 { // if not empty - // string "3095" - o = append(o, 0xa4, 0x33, 0x30, 0x39, 0x35) + // string "3095-11" + o = append(o, 0xa7, 0x33, 0x30, 0x39, 0x35, 0x2d, 0x31, 0x31) if z.ReplyRequested == nil { o = msgp.AppendNil(o) } else { @@ -7080,8 +7080,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000000000) == 0 { // if not empty - // string "128" - o = append(o, 0xa3, 0x31, 0x32, 0x38) + // string "128-31" + o = append(o, 0xa6, 0x31, 0x32, 0x38, 0x2d, 0x33, 0x31) if z.ReportDisposition == nil { o = msgp.AppendNil(o) } else { @@ -7089,8 +7089,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000000000) == 0 { // if not empty - // string "129" - o = append(o, 0xa3, 0x31, 0x32, 0x39) + // string "129-31" + o = append(o, 0xa6, 0x31, 0x32, 0x39, 0x2d, 0x33, 0x31) if z.ReportDispositionMode == nil { o = msgp.AppendNil(o) } else { @@ -7098,8 +7098,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000000000) == 0 { // if not empty - // string "26656" - o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x35, 0x36) + // string "26656-31" + o = append(o, 0xa8, 0x32, 0x36, 0x36, 0x35, 0x36, 0x2d, 0x33, 0x31) if z.ReportingMessageTransferAgent == nil { o = msgp.AppendNil(o) } else { @@ -7107,8 +7107,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x10000000000000) == 0 { // if not empty - // string "12316" - o = append(o, 0xa5, 0x31, 0x32, 0x33, 0x31, 0x36) + // string "12316-64" + o = append(o, 0xa8, 0x31, 0x32, 0x33, 0x31, 0x36, 0x2d, 0x36, 0x34) if z.RetentionDate == nil { o = msgp.AppendNil(o) } else { @@ -7116,8 +7116,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x20000000000000) == 0 { // if not empty - // string "12317" - o = append(o, 0xa5, 0x31, 0x32, 0x33, 0x31, 0x37) + // string "12317-3" + o = append(o, 0xa7, 0x31, 0x32, 0x33, 0x31, 0x37, 0x2d, 0x33) if z.RetentionFlags == nil { o = msgp.AppendNil(o) } else { @@ -7125,8 +7125,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x40000000000000) == 0 { // if not empty - // string "12314" - o = append(o, 0xa5, 0x31, 0x32, 0x33, 0x31, 0x34) + // string "12314-3" + o = append(o, 0xa7, 0x31, 0x32, 0x33, 0x31, 0x34, 0x2d, 0x33) if z.RetentionPeriod == nil { o = msgp.AppendNil(o) } else { @@ -7134,8 +7134,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x80000000000000) == 0 { // if not empty - // string "3615" - o = append(o, 0xa4, 0x33, 0x36, 0x31, 0x35) + // string "3615-11" + o = append(o, 0xa7, 0x33, 0x36, 0x31, 0x35, 0x2d, 0x31, 0x31) if z.RtfInSync == nil { o = msgp.AppendNil(o) } else { @@ -7143,8 +7143,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x100000000000000) == 0 { // if not empty - // string "3102" - o = append(o, 0xa4, 0x33, 0x31, 0x30, 0x32) + // string "3102-31" + o = append(o, 0xa7, 0x33, 0x31, 0x30, 0x32, 0x2d, 0x33, 0x31) if z.SenderAddressType == nil { o = msgp.AppendNil(o) } else { @@ -7152,8 +7152,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x200000000000000) == 0 { // if not empty - // string "3103" - o = append(o, 0xa4, 0x33, 0x31, 0x30, 0x33) + // string "3103-31" + o = append(o, 0xa7, 0x33, 0x31, 0x30, 0x33, 0x2d, 0x33, 0x31) if z.SenderEmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -7161,8 +7161,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x400000000000000) == 0 { // if not empty - // string "16505" - o = append(o, 0xa5, 0x31, 0x36, 0x35, 0x30, 0x35) + // string "16505-3" + o = append(o, 0xa7, 0x31, 0x36, 0x35, 0x30, 0x35, 0x2d, 0x33) if z.SenderIdStatus == nil { o = msgp.AppendNil(o) } else { @@ -7170,8 +7170,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x800000000000000) == 0 { // if not empty - // string "3098" - o = append(o, 0xa4, 0x33, 0x30, 0x39, 0x38) + // string "3098-31" + o = append(o, 0xa7, 0x33, 0x30, 0x39, 0x38, 0x2d, 0x33, 0x31) if z.SenderName == nil { o = msgp.AppendNil(o) } else { @@ -7179,8 +7179,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x1000000000000000) == 0 { // if not empty - // string "14961" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x36, 0x31) + // string "14961-3" + o = append(o, 0xa7, 0x31, 0x34, 0x39, 0x36, 0x31, 0x2d, 0x33) if z.SendInternetEncoding == nil { o = msgp.AppendNil(o) } else { @@ -7188,8 +7188,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x2000000000000000) == 0 { // if not empty - // string "14912" - o = append(o, 0xa5, 0x31, 0x34, 0x39, 0x31, 0x32) + // string "14912-11" + o = append(o, 0xa8, 0x31, 0x34, 0x39, 0x31, 0x32, 0x2d, 0x31, 0x31) if z.SendRichInfo == nil { o = msgp.AppendNil(o) } else { @@ -7197,8 +7197,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x4000000000000000) == 0 { // if not empty - // string "54" - o = append(o, 0xa2, 0x35, 0x34) + // string "54-3" + o = append(o, 0xa4, 0x35, 0x34, 0x2d, 0x33) if z.Sensitivity == nil { o = msgp.AppendNil(o) } else { @@ -7206,8 +7206,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[1] & 0x8000000000000000) == 0 { // if not empty - // string "100" - o = append(o, 0xa3, 0x31, 0x30, 0x30) + // string "100-31" + o = append(o, 0xa6, 0x31, 0x30, 0x30, 0x2d, 0x33, 0x31) if z.SentRepresentingAddressType == nil { o = msgp.AppendNil(o) } else { @@ -7215,8 +7215,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x1) == 0 { // if not empty - // string "101" - o = append(o, 0xa3, 0x31, 0x30, 0x31) + // string "101-31" + o = append(o, 0xa6, 0x31, 0x30, 0x31, 0x2d, 0x33, 0x31) if z.SentRepresentingEmailAddress == nil { o = msgp.AppendNil(o) } else { @@ -7224,8 +7224,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x2) == 0 { // if not empty - // string "66" - o = append(o, 0xa2, 0x36, 0x36) + // string "66-31" + o = append(o, 0xa5, 0x36, 0x36, 0x2d, 0x33, 0x31) if z.SentRepresentingName == nil { o = msgp.AppendNil(o) } else { @@ -7233,8 +7233,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x4) == 0 { // if not empty - // string "14846" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x34, 0x36) + // string "14846-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x34, 0x36, 0x2d, 0x33, 0x31) if z.SmtpAddress == nil { o = msgp.AppendNil(o) } else { @@ -7242,8 +7242,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x8) == 0 { // if not empty - // string "55" - o = append(o, 0xa2, 0x35, 0x35) + // string "55-31" + o = append(o, 0xa5, 0x35, 0x35, 0x2d, 0x33, 0x31) if z.Subject == nil { o = msgp.AppendNil(o) } else { @@ -7251,8 +7251,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x10) == 0 { // if not empty - // string "61" - o = append(o, 0xa2, 0x36, 0x31) + // string "61-31" + o = append(o, 0xa5, 0x36, 0x31, 0x2d, 0x33, 0x31) if z.SubjectPrefix == nil { o = msgp.AppendNil(o) } else { @@ -7260,8 +7260,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x20) == 0 { // if not empty - // string "3099" - o = append(o, 0xa4, 0x33, 0x30, 0x39, 0x39) + // string "3099-31" + o = append(o, 0xa7, 0x33, 0x30, 0x39, 0x39, 0x2d, 0x33, 0x31) if z.SupplementaryInfo == nil { o = msgp.AppendNil(o) } else { @@ -7269,8 +7269,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x40) == 0 { // if not empty - // string "14880" - o = append(o, 0xa5, 0x31, 0x34, 0x38, 0x38, 0x30) + // string "14880-31" + o = append(o, 0xa8, 0x31, 0x34, 0x38, 0x38, 0x30, 0x2d, 0x33, 0x31) if z.TransmittableDisplayName == nil { o = msgp.AppendNil(o) } else { @@ -7278,8 +7278,8 @@ func (z *Message) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[2] & 0x80) == 0 { // if not empty - // string "125" - o = append(o, 0xa3, 0x31, 0x32, 0x35) + // string "125-31" + o = append(o, 0xa6, 0x31, 0x32, 0x35, 0x2d, 0x33, 0x31) if z.TransportMessageHeaders == nil { o = msgp.AppendNil(o) } else { @@ -7307,7 +7307,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "267306": + case "267306-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7324,7 +7324,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267365": + case "267365-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7341,7 +7341,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267622": + case "267622-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7358,7 +7358,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267623": + case "267623-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7375,7 +7375,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267624": + case "267624-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7392,7 +7392,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267626": + case "267626-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7409,7 +7409,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267621": + case "267621-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7426,7 +7426,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267303": + case "267303-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7443,7 +7443,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267302": + case "267302-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7460,7 +7460,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267426": + case "267426-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7477,7 +7477,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267428": + case "267428-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7494,7 +7494,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267520": + case "267520-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7511,7 +7511,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267521": + case "267521-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7528,7 +7528,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267270": + case "267270-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7545,7 +7545,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267332": + case "267332-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7732,7 +7732,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "12290": + case "12290-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7749,7 +7749,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "2": + case "2-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7766,7 +7766,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "12319": + case "12319-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7783,7 +7783,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "12318": + case "12318-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7800,7 +7800,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14896": + case "14896-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7817,7 +7817,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14894": + case "14894-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7834,7 +7834,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "16351": + case "16351-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7851,7 +7851,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4246": + case "4246-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7868,7 +7868,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4096": + case "4096-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7885,7 +7885,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4116": + case "4116-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7902,7 +7902,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4115": + case "4115-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7919,7 +7919,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "57": + case "57-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7936,7 +7936,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "16502": + case "16502-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7953,7 +7953,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "112": + case "112-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7970,7 +7970,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "12295": + case "12295-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -7987,7 +7987,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "16376": + case "16376-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8004,7 +8004,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "16": + case "16-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8021,7 +8021,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3586": + case "3586-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8038,7 +8038,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3587": + case "3587-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8055,7 +8055,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3588": + case "3588-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8072,7 +8072,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4224": + case "4224-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8089,7 +8089,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "23": + case "23-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8106,7 +8106,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14858": + case "14858-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8123,7 +8123,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4162": + case "4162-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8140,7 +8140,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "22786": + case "22786-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8157,7 +8157,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4149": + case "4149-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8174,7 +8174,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "4153": + case "4153-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8191,7 +8191,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14893": + case "14893-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8208,7 +8208,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14859": + case "14859-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8225,7 +8225,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14860": + case "14860-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8242,7 +8242,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "12296": + case "12296-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8259,7 +8259,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14887": + case "14887-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8276,7 +8276,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14861": + case "14861-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8293,7 +8293,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14926": + case "14926-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8310,7 +8310,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "88": + case "88-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8327,7 +8327,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3590": + case "3590-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8344,7 +8344,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3591": + case "3591-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8361,7 +8361,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14863": + case "14863-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8378,7 +8378,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "89": + case "89-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8395,7 +8395,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3592": + case "3592-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8412,7 +8412,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3592": + case "3592-20": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8429,7 +8429,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3607": + case "3607-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8446,7 +8446,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "87": + case "87-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8463,7 +8463,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14916": + case "14916-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8480,7 +8480,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14876": + case "14876-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8497,7 +8497,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14927": + case "14927-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8514,7 +8514,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3077": + case "3077-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8531,7 +8531,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3076": + case "3076-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8548,7 +8548,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3078": + case "3078-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8565,7 +8565,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3613": + case "3613-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8582,7 +8582,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14873": + case "14873-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8599,7 +8599,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14864": + case "14864-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8616,7 +8616,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "77": + case "77-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8633,7 +8633,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "85": + case "85-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8650,7 +8650,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "114": + case "114-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8667,7 +8667,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "115": + case "115-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8684,7 +8684,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "116": + case "116-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8701,7 +8701,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "75": + case "75-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8718,7 +8718,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "102": + case "102-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8735,7 +8735,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "103": + case "103-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8752,7 +8752,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "90": + case "90-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8769,7 +8769,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "46": + case "46-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8786,7 +8786,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "104": + case "104-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8803,7 +8803,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "105": + case "105-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8820,7 +8820,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "93": + case "93-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8837,7 +8837,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "73": + case "73-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8854,7 +8854,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "78": + case "78-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8871,7 +8871,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "35": + case "35-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8888,7 +8888,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3080": + case "3080-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8905,7 +8905,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14943": + case "14943-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8922,7 +8922,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14944": + case "14944-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8939,7 +8939,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14945": + case "14945-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8956,7 +8956,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14948": + case "14948-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8973,7 +8973,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14946": + case "14946-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -8990,7 +8990,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14947": + case "14947-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9007,7 +9007,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14879": + case "14879-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9024,7 +9024,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14881": + case "14881-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9041,7 +9041,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "38": + case "38-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9058,7 +9058,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "41": + case "41-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9075,7 +9075,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "42": + case "42-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9092,7 +9092,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "118": + case "118-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9109,7 +9109,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "64": + case "64-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9126,7 +9126,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "119": + case "119-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9143,7 +9143,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "120": + case "120-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9160,7 +9160,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "68": + case "68-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9177,7 +9177,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3093": + case "3093-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9194,7 +9194,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3105": + case "3105-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9211,7 +9211,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3095": + case "3095-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9228,7 +9228,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "128": + case "128-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9245,7 +9245,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "129": + case "129-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9262,7 +9262,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26656": + case "26656-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9279,7 +9279,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "12316": + case "12316-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9296,7 +9296,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "12317": + case "12317-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9313,7 +9313,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "12314": + case "12314-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9330,7 +9330,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3615": + case "3615-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9347,7 +9347,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3102": + case "3102-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9364,7 +9364,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3103": + case "3103-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9381,7 +9381,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "16505": + case "16505-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9398,7 +9398,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3098": + case "3098-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9415,7 +9415,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14961": + case "14961-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9432,7 +9432,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14912": + case "14912-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9449,7 +9449,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "54": + case "54-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9466,7 +9466,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "100": + case "100-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9483,7 +9483,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "101": + case "101-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9500,7 +9500,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "66": + case "66-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9517,7 +9517,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14846": + case "14846-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9534,7 +9534,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "55": + case "55-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9551,7 +9551,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "61": + case "61-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9568,7 +9568,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "3099": + case "3099-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9585,7 +9585,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14880": + case "14880-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9602,7 +9602,7 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "125": + case "125-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -9633,91 +9633,91 @@ func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Message) Msgsize() (s int) { - s = 3 + 7 + s = 3 + 9 if z.AutoProcessState == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.Billing == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Billing) } - s += 7 + s += 10 if z.Classification == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Classification) } - s += 7 + s += 10 if z.ClassificationDescription == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ClassificationDescription) } - s += 7 + s += 10 if z.ClassificationGuid == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ClassificationGuid) } - s += 7 + s += 10 if z.ClassificationKeep == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.Classified == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.CommonEnd == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.CommonStart == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.CurrentVersion == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.CurrentVersionName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CurrentVersionName) } - s += 7 + s += 10 if z.InternetAccountName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.InternetAccountName) } - s += 7 + s += 10 if z.InternetAccountStamp == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.InternetAccountStamp) } - s += 7 + s += 10 if z.Private == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.VerbResponse == nil { s += msgp.NilSize } else { @@ -9783,667 +9783,667 @@ func (z *Message) Msgsize() (s int) { } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.AddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AddressType) } - s += 2 + s += 5 if z.AlternateRecipientAllowed == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.ArchiveDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 6 + s += 8 if z.ArchivePeriod == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.Assistant == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Assistant) } - s += 6 + s += 9 if z.AssistantTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.AssistantTelephoneNumber) } - s += 6 + s += 8 if z.AutoResponseSuppress == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 7 if z.BlockStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 8 if z.Body == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Body) } - s += 5 + s += 8 if z.BodyContentLocation == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.BodyContentLocation) } - s += 5 + s += 8 if z.BodyHtml == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.BodyHtml) } - s += 3 + s += 6 if z.ClientSubmitTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 6 + s += 8 if z.ContentFilterSpamConfidenceLevel == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 7 if z.ConversationTopic == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ConversationTopic) } - s += 6 + s += 9 if z.CreationTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 6 + s += 9 if z.CreatorName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CreatorName) } - s += 3 + s += 6 if z.DeliverTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 5 + s += 8 if z.DisplayBcc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.DisplayBcc) } - s += 5 + s += 8 if z.DisplayCc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.DisplayCc) } - s += 5 + s += 8 if z.DisplayTo == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.DisplayTo) } - s += 5 + s += 7 if z.IconIndex == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 5 if z.Importance == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.Initials == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Initials) } - s += 5 + s += 8 if z.InReplyToId == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.InReplyToId) } - s += 6 + s += 8 if z.InternetMailOverrideFormat == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 8 if z.InternetMessageId == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.InternetMessageId) } - s += 5 + s += 8 if z.InternetReferences == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.InternetReferences) } - s += 6 + s += 9 if z.IsdnNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.IsdnNumber) } - s += 6 + s += 9 if z.Keyword == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Keyword) } - s += 6 + s += 9 if z.Language == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Language) } - s += 6 + s += 9 if z.LastModificationTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 6 + s += 9 if z.Locality == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Locality) } - s += 6 + s += 9 if z.Location == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Location) } - s += 6 + s += 9 if z.ManagerName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ManagerName) } - s += 3 + s += 6 if z.MessageCcMe == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 5 + s += 8 if z.MessageDeliveryTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 5 + s += 7 if z.MessageFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.MessageHandlingSystemCommonName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.MessageHandlingSystemCommonName) } - s += 3 + s += 6 if z.MessageRecipientMe == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 5 + s += 7 if z.MessageSize == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 8 if z.MessageSizeExtended == nil { s += msgp.NilSize } else { s += msgp.Float64Size } - s += 5 + s += 7 if z.MessageStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 6 if z.MessageToMe == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.MiddleName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.MiddleName) } - s += 6 + s += 9 if z.MobileTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.MobileTelephoneNumber) } - s += 6 + s += 9 if z.Nickname == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Nickname) } - s += 5 + s += 7 if z.NonDeliveryReportDiagCode == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 7 if z.NonDeliveryReportReasonCode == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 7 if z.NonDeliveryReportStatusCode == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 8 if z.NormalizedSubject == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.NormalizedSubject) } - s += 6 + s += 9 if z.OfficeLocation == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OfficeLocation) } - s += 6 + s += 9 if z.OrganizationalIdNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OrganizationalIdNumber) } - s += 3 + s += 6 if z.OriginalAuthorName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalAuthorName) } - s += 3 + s += 6 if z.OriginalDeliveryTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 4 + s += 7 if z.OriginalDisplayBcc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalDisplayBcc) } - s += 4 + s += 7 if z.OriginalDisplayCc == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalDisplayCc) } - s += 4 + s += 7 if z.OriginalDisplayTo == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalDisplayTo) } - s += 3 + s += 6 if z.OriginalMessageClass == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalMessageClass) } - s += 4 + s += 7 if z.OriginalSenderAddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSenderAddressType) } - s += 4 + s += 7 if z.OriginalSenderEmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSenderEmailAddress) } - s += 3 + s += 6 if z.OriginalSenderName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSenderName) } - s += 3 + s += 5 if z.OriginalSensitivity == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 7 if z.OriginalSentRepresentingAddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSentRepresentingAddressType) } - s += 4 + s += 7 if z.OriginalSentRepresentingEmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSentRepresentingEmailAddress) } - s += 3 + s += 6 if z.OriginalSentRepresentingName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSentRepresentingName) } - s += 3 + s += 6 if z.OriginalSubject == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OriginalSubject) } - s += 3 + s += 6 if z.OriginalSubmitTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 3 + s += 6 if z.OriginatorDeliveryReportRequested == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 5 + s += 8 if z.OriginatorNonDeliveryReportRequested == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 9 if z.OtherAddressCity == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressCity) } - s += 6 + s += 9 if z.OtherAddressCountry == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressCountry) } - s += 6 + s += 9 if z.OtherAddressPostalCode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressPostalCode) } - s += 6 + s += 9 if z.OtherAddressPostOfficeBox == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressPostOfficeBox) } - s += 6 + s += 9 if z.OtherAddressStateOrProvince == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressStateOrProvince) } - s += 6 + s += 9 if z.OtherAddressStreet == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherAddressStreet) } - s += 6 + s += 9 if z.OtherTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.OtherTelephoneNumber) } - s += 6 + s += 9 if z.PagerTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PagerTelephoneNumber) } - s += 3 + s += 5 if z.Priority == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 3 + s += 6 if z.ReadReceiptRequested == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 3 + s += 6 if z.ReceiptTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 4 + s += 7 if z.ReceivedByEmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReceivedByEmailAddress) } - s += 3 + s += 6 if z.ReceivedByName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReceivedByName) } - s += 4 + s += 7 if z.ReceivedRepresentingAddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReceivedRepresentingAddressType) } - s += 4 + s += 7 if z.ReceivedRepresentingEmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReceivedRepresentingEmailAddress) } - s += 3 + s += 6 if z.ReceivedRepresentingName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReceivedRepresentingName) } - s += 5 + s += 7 if z.RecipientType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 8 if z.RemoteMessageTransferAgent == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.RemoteMessageTransferAgent) } - s += 5 + s += 8 if z.ReplyRequested == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 4 + s += 7 if z.ReportDisposition == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReportDisposition) } - s += 4 + s += 7 if z.ReportDispositionMode == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReportDispositionMode) } - s += 6 + s += 9 if z.ReportingMessageTransferAgent == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ReportingMessageTransferAgent) } - s += 6 + s += 9 if z.RetentionDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 6 + s += 8 if z.RetentionFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 8 if z.RetentionPeriod == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 8 if z.RtfInSync == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 5 + s += 8 if z.SenderAddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SenderAddressType) } - s += 5 + s += 8 if z.SenderEmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SenderEmailAddress) } - s += 6 + s += 8 if z.SenderIdStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 5 + s += 8 if z.SenderName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SenderName) } - s += 6 + s += 8 if z.SendInternetEncoding == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.SendRichInfo == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 3 + s += 5 if z.Sensitivity == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 4 + s += 7 if z.SentRepresentingAddressType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SentRepresentingAddressType) } - s += 4 + s += 7 if z.SentRepresentingEmailAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SentRepresentingEmailAddress) } - s += 3 + s += 6 if z.SentRepresentingName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SentRepresentingName) } - s += 6 + s += 9 if z.SmtpAddress == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SmtpAddress) } - s += 3 + s += 6 if z.Subject == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.Subject) } - s += 3 + s += 6 if z.SubjectPrefix == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SubjectPrefix) } - s += 5 + s += 8 if z.SupplementaryInfo == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SupplementaryInfo) } - s += 6 + s += 9 if z.TransmittableDisplayName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TransmittableDisplayName) } - s += 4 + s += 7 if z.TransportMessageHeaders == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/note.pb.go b/pkg/properties/note.pb.go index d51cbe8..c9e92de 100644 --- a/pkg/properties/note.pb.go +++ b/pkg/properties/note.pb.go @@ -44,15 +44,15 @@ type Note struct { unknownFields protoimpl.UnknownFields // Specifies the suggested background color of the Note object. - NoteColor *int32 `protobuf:"varint,1,opt,name=note_color,json=noteColor,proto3,oneof" json:"note_color,omitempty" msg:"273408,omitempty" type:"3,omitempty"` + NoteColor *int32 `protobuf:"varint,1,opt,name=note_color,json=noteColor,proto3,oneof" json:"note_color,omitempty" msg:"273408-3,omitempty"` // Specifies the height of the visible message window in pixels. - NoteHeight *int32 `protobuf:"varint,2,opt,name=note_height,json=noteHeight,proto3,oneof" json:"note_height,omitempty" msg:"273411,omitempty" type:"3,omitempty"` + NoteHeight *int32 `protobuf:"varint,2,opt,name=note_height,json=noteHeight,proto3,oneof" json:"note_height,omitempty" msg:"273411-3,omitempty"` // Specifies the width of the visible message window in pixels. - NoteWidth *int32 `protobuf:"varint,3,opt,name=note_width,json=noteWidth,proto3,oneof" json:"note_width,omitempty" msg:"273410,omitempty" type:"3,omitempty"` + NoteWidth *int32 `protobuf:"varint,3,opt,name=note_width,json=noteWidth,proto3,oneof" json:"note_width,omitempty" msg:"273410-3,omitempty"` // Specifies the distance, in pixels, from the left edge of the screen that a user interface displays a Note object. - NoteX *int32 `protobuf:"varint,4,opt,name=note_x,json=noteX,proto3,oneof" json:"note_x,omitempty" msg:"273412,omitempty" type:"3,omitempty"` + NoteX *int32 `protobuf:"varint,4,opt,name=note_x,json=noteX,proto3,oneof" json:"note_x,omitempty" msg:"273412-3,omitempty"` // Specifies the distance, in pixels, from the top edge of the screen that a user interface displays a Note object. - NoteY *int32 `protobuf:"varint,5,opt,name=note_y,json=noteY,proto3,oneof" json:"note_y,omitempty" msg:"273413,omitempty" type:"3,omitempty"` + NoteY *int32 `protobuf:"varint,5,opt,name=note_y,json=noteY,proto3,oneof" json:"note_y,omitempty" msg:"273413-3,omitempty"` } func (x *Note) Reset() { diff --git a/pkg/properties/note.pb_gen.go b/pkg/properties/note.pb_gen.go index 93db9e4..9fa5d3e 100644 --- a/pkg/properties/note.pb_gen.go +++ b/pkg/properties/note.pb_gen.go @@ -24,7 +24,7 @@ func (z *Note) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "273408": + case "273408-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Note) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "273411": + case "273411-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Note) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "273410": + case "273410-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Note) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "273412": + case "273412-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Note) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "273413": + case "273413-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -159,8 +159,8 @@ func (z *Note) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // write "273408" - err = en.Append(0xa6, 0x32, 0x37, 0x33, 0x34, 0x30, 0x38) + // write "273408-3" + err = en.Append(0xa8, 0x32, 0x37, 0x33, 0x34, 0x30, 0x38, 0x2d, 0x33) if err != nil { return } @@ -178,8 +178,8 @@ func (z *Note) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // write "273411" - err = en.Append(0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x31) + // write "273411-3" + err = en.Append(0xa8, 0x32, 0x37, 0x33, 0x34, 0x31, 0x31, 0x2d, 0x33) if err != nil { return } @@ -197,8 +197,8 @@ func (z *Note) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // write "273410" - err = en.Append(0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x30) + // write "273410-3" + err = en.Append(0xa8, 0x32, 0x37, 0x33, 0x34, 0x31, 0x30, 0x2d, 0x33) if err != nil { return } @@ -216,8 +216,8 @@ func (z *Note) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // write "273412" - err = en.Append(0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x32) + // write "273412-3" + err = en.Append(0xa8, 0x32, 0x37, 0x33, 0x34, 0x31, 0x32, 0x2d, 0x33) if err != nil { return } @@ -235,8 +235,8 @@ func (z *Note) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "273413" - err = en.Append(0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x33) + // write "273413-3" + err = en.Append(0xa8, 0x32, 0x37, 0x33, 0x34, 0x31, 0x33, 0x2d, 0x33) if err != nil { return } @@ -288,8 +288,8 @@ func (z *Note) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // string "273408" - o = append(o, 0xa6, 0x32, 0x37, 0x33, 0x34, 0x30, 0x38) + // string "273408-3" + o = append(o, 0xa8, 0x32, 0x37, 0x33, 0x34, 0x30, 0x38, 0x2d, 0x33) if z.NoteColor == nil { o = msgp.AppendNil(o) } else { @@ -297,8 +297,8 @@ func (z *Note) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // string "273411" - o = append(o, 0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x31) + // string "273411-3" + o = append(o, 0xa8, 0x32, 0x37, 0x33, 0x34, 0x31, 0x31, 0x2d, 0x33) if z.NoteHeight == nil { o = msgp.AppendNil(o) } else { @@ -306,8 +306,8 @@ func (z *Note) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // string "273410" - o = append(o, 0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x30) + // string "273410-3" + o = append(o, 0xa8, 0x32, 0x37, 0x33, 0x34, 0x31, 0x30, 0x2d, 0x33) if z.NoteWidth == nil { o = msgp.AppendNil(o) } else { @@ -315,8 +315,8 @@ func (z *Note) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // string "273412" - o = append(o, 0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x32) + // string "273412-3" + o = append(o, 0xa8, 0x32, 0x37, 0x33, 0x34, 0x31, 0x32, 0x2d, 0x33) if z.NoteX == nil { o = msgp.AppendNil(o) } else { @@ -324,8 +324,8 @@ func (z *Note) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "273413" - o = append(o, 0xa6, 0x32, 0x37, 0x33, 0x34, 0x31, 0x33) + // string "273413-3" + o = append(o, 0xa8, 0x32, 0x37, 0x33, 0x34, 0x31, 0x33, 0x2d, 0x33) if z.NoteY == nil { o = msgp.AppendNil(o) } else { @@ -353,7 +353,7 @@ func (z *Note) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "273408": + case "273408-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -370,7 +370,7 @@ func (z *Note) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "273411": + case "273411-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -387,7 +387,7 @@ func (z *Note) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "273410": + case "273410-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -404,7 +404,7 @@ func (z *Note) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "273412": + case "273412-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -421,7 +421,7 @@ func (z *Note) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "273413": + case "273413-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -452,31 +452,31 @@ func (z *Note) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Note) Msgsize() (s int) { - s = 1 + 7 + s = 1 + 9 if z.NoteColor == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.NoteHeight == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.NoteWidth == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.NoteX == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.NoteY == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/rss.pb.go b/pkg/properties/rss.pb.go index 542b780..f4b7afa 100644 --- a/pkg/properties/rss.pb.go +++ b/pkg/properties/rss.pb.go @@ -44,19 +44,19 @@ type RSS struct { unknownFields protoimpl.UnknownFields // Contains the contents of the title field from the XML of the Atom feed or RSS channel. - PostRssChannel *string `protobuf:"bytes,1,opt,name=post_rss_channel,json=postRssChannel,proto3,oneof" json:"post_rss_channel,omitempty" msg:"271364,omitempty" type:"31,omitempty"` + PostRssChannel *string `protobuf:"bytes,1,opt,name=post_rss_channel,json=postRssChannel,proto3,oneof" json:"post_rss_channel,omitempty" msg:"271364-31,omitempty"` // Contains the URL of the RSS or Atom feed from which the XML file came. - PostRssChannelLink *string `protobuf:"bytes,2,opt,name=post_rss_channel_link,json=postRssChannelLink,proto3,oneof" json:"post_rss_channel_link,omitempty" msg:"271360,omitempty" type:"31,omitempty"` + PostRssChannelLink *string `protobuf:"bytes,2,opt,name=post_rss_channel_link,json=postRssChannelLink,proto3,oneof" json:"post_rss_channel_link,omitempty" msg:"271360-31,omitempty"` // Contains a unique identifier for the RSS object. - PostRssItemGuid *string `protobuf:"bytes,3,opt,name=post_rss_item_guid,json=postRssItemGuid,proto3,oneof" json:"post_rss_item_guid,omitempty" msg:"271363,omitempty" type:"31,omitempty"` + PostRssItemGuid *string `protobuf:"bytes,3,opt,name=post_rss_item_guid,json=postRssItemGuid,proto3,oneof" json:"post_rss_item_guid,omitempty" msg:"271363-31,omitempty"` // Contains a hash of the feed XML computed by using an implementation-dependent algorithm. - PostRssItemHash *int32 `protobuf:"varint,4,opt,name=post_rss_item_hash,json=postRssItemHash,proto3,oneof" json:"post_rss_item_hash,omitempty" msg:"271362,omitempty" type:"3,omitempty"` + PostRssItemHash *int32 `protobuf:"varint,4,opt,name=post_rss_item_hash,json=postRssItemHash,proto3,oneof" json:"post_rss_item_hash,omitempty" msg:"271362-3,omitempty"` // Contains the URL of the link from an RSS or Atom item. - PostRssItemLink *string `protobuf:"bytes,5,opt,name=post_rss_item_link,json=postRssItemLink,proto3,oneof" json:"post_rss_item_link,omitempty" msg:"271361,omitempty" type:"31,omitempty"` + PostRssItemLink *string `protobuf:"bytes,5,opt,name=post_rss_item_link,json=postRssItemLink,proto3,oneof" json:"post_rss_item_link,omitempty" msg:"271361-31,omitempty"` // Contains the item element and all of its sub-elements from an RSS feed, or the entry element and all of its sub-elements from an Atom feed. - PostRssItemXml *string `protobuf:"bytes,6,opt,name=post_rss_item_xml,json=postRssItemXml,proto3,oneof" json:"post_rss_item_xml,omitempty" msg:"271365,omitempty" type:"31,omitempty"` + PostRssItemXml *string `protobuf:"bytes,6,opt,name=post_rss_item_xml,json=postRssItemXml,proto3,oneof" json:"post_rss_item_xml,omitempty" msg:"271365-31,omitempty"` // Contains the user's preferred name for the RSS or Atom subscription. - PostRssSubscription *string `protobuf:"bytes,7,opt,name=post_rss_subscription,json=postRssSubscription,proto3,oneof" json:"post_rss_subscription,omitempty" msg:"271366,omitempty" type:"31,omitempty"` + PostRssSubscription *string `protobuf:"bytes,7,opt,name=post_rss_subscription,json=postRssSubscription,proto3,oneof" json:"post_rss_subscription,omitempty" msg:"271366-31,omitempty"` } func (x *RSS) Reset() { diff --git a/pkg/properties/rss.pb_gen.go b/pkg/properties/rss.pb_gen.go index 44900f7..557566e 100644 --- a/pkg/properties/rss.pb_gen.go +++ b/pkg/properties/rss.pb_gen.go @@ -24,7 +24,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "271364": + case "271364-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "271360": + case "271360-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "271363": + case "271363-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "271362": + case "271362-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "271361": + case "271361-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "271365": + case "271365-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *RSS) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "271366": + case "271366-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -203,8 +203,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // write "271364" - err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x34) + // write "271364-31" + err = en.Append(0xa9, 0x32, 0x37, 0x31, 0x33, 0x36, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -222,8 +222,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // write "271360" - err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x30) + // write "271360-31" + err = en.Append(0xa9, 0x32, 0x37, 0x31, 0x33, 0x36, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -241,8 +241,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // write "271363" - err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x33) + // write "271363-31" + err = en.Append(0xa9, 0x32, 0x37, 0x31, 0x33, 0x36, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -260,8 +260,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // write "271362" - err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x32) + // write "271362-3" + err = en.Append(0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x32, 0x2d, 0x33) if err != nil { return } @@ -279,8 +279,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "271361" - err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x31) + // write "271361-31" + err = en.Append(0xa9, 0x32, 0x37, 0x31, 0x33, 0x36, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -298,8 +298,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // write "271365" - err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x35) + // write "271365-31" + err = en.Append(0xa9, 0x32, 0x37, 0x31, 0x33, 0x36, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -317,8 +317,8 @@ func (z *RSS) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // write "271366" - err = en.Append(0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x36) + // write "271366-31" + err = en.Append(0xa9, 0x32, 0x37, 0x31, 0x33, 0x36, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -378,8 +378,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // string "271364" - o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x34) + // string "271364-31" + o = append(o, 0xa9, 0x32, 0x37, 0x31, 0x33, 0x36, 0x34, 0x2d, 0x33, 0x31) if z.PostRssChannel == nil { o = msgp.AppendNil(o) } else { @@ -387,8 +387,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // string "271360" - o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x30) + // string "271360-31" + o = append(o, 0xa9, 0x32, 0x37, 0x31, 0x33, 0x36, 0x30, 0x2d, 0x33, 0x31) if z.PostRssChannelLink == nil { o = msgp.AppendNil(o) } else { @@ -396,8 +396,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // string "271363" - o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x33) + // string "271363-31" + o = append(o, 0xa9, 0x32, 0x37, 0x31, 0x33, 0x36, 0x33, 0x2d, 0x33, 0x31) if z.PostRssItemGuid == nil { o = msgp.AppendNil(o) } else { @@ -405,8 +405,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // string "271362" - o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x32) + // string "271362-3" + o = append(o, 0xa8, 0x32, 0x37, 0x31, 0x33, 0x36, 0x32, 0x2d, 0x33) if z.PostRssItemHash == nil { o = msgp.AppendNil(o) } else { @@ -414,8 +414,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "271361" - o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x31) + // string "271361-31" + o = append(o, 0xa9, 0x32, 0x37, 0x31, 0x33, 0x36, 0x31, 0x2d, 0x33, 0x31) if z.PostRssItemLink == nil { o = msgp.AppendNil(o) } else { @@ -423,8 +423,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // string "271365" - o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x35) + // string "271365-31" + o = append(o, 0xa9, 0x32, 0x37, 0x31, 0x33, 0x36, 0x35, 0x2d, 0x33, 0x31) if z.PostRssItemXml == nil { o = msgp.AppendNil(o) } else { @@ -432,8 +432,8 @@ func (z *RSS) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // string "271366" - o = append(o, 0xa6, 0x32, 0x37, 0x31, 0x33, 0x36, 0x36) + // string "271366-31" + o = append(o, 0xa9, 0x32, 0x37, 0x31, 0x33, 0x36, 0x36, 0x2d, 0x33, 0x31) if z.PostRssSubscription == nil { o = msgp.AppendNil(o) } else { @@ -461,7 +461,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "271364": + case "271364-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -478,7 +478,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "271360": + case "271360-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -495,7 +495,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "271363": + case "271363-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -512,7 +512,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "271362": + case "271362-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -529,7 +529,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "271361": + case "271361-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -546,7 +546,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "271365": + case "271365-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -563,7 +563,7 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "271366": + case "271366-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -594,43 +594,43 @@ func (z *RSS) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *RSS) Msgsize() (s int) { - s = 1 + 7 + s = 1 + 10 if z.PostRssChannel == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostRssChannel) } - s += 7 + s += 10 if z.PostRssChannelLink == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostRssChannelLink) } - s += 7 + s += 10 if z.PostRssItemGuid == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostRssItemGuid) } - s += 7 + s += 9 if z.PostRssItemHash == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.PostRssItemLink == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostRssItemLink) } - s += 7 + s += 10 if z.PostRssItemXml == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.PostRssItemXml) } - s += 7 + s += 10 if z.PostRssSubscription == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/sharing.pb.go b/pkg/properties/sharing.pb.go index 04456d9..077c4dd 100644 --- a/pkg/properties/sharing.pb.go +++ b/pkg/properties/sharing.pb.go @@ -44,115 +44,115 @@ type Sharing struct { unknownFields protoimpl.UnknownFields // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingAnonymity *int32 `protobuf:"varint,1,opt,name=sharing_anonymity,json=sharingAnonymity,proto3,oneof" json:"sharing_anonymity,omitempty" msg:"272425,omitempty" type:"3,omitempty"` + SharingAnonymity *int32 `protobuf:"varint,1,opt,name=sharing_anonymity,json=sharingAnonymity,proto3,oneof" json:"sharing_anonymity,omitempty" msg:"272425-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingBrowseUrl *string `protobuf:"bytes,3,opt,name=sharing_browse_url,json=sharingBrowseUrl,proto3,oneof" json:"sharing_browse_url,omitempty" msg:"272545,omitempty" type:"31,omitempty"` + SharingBrowseUrl *string `protobuf:"bytes,3,opt,name=sharing_browse_url,json=sharingBrowseUrl,proto3,oneof" json:"sharing_browse_url,omitempty" msg:"272545-31,omitempty"` // Indicates that the Message object relates to a special folder. - SharingCapabilities *int32 `protobuf:"varint,4,opt,name=sharing_capabilities,json=sharingCapabilities,proto3,oneof" json:"sharing_capabilities,omitempty" msg:"272423,omitempty" type:"3,omitempty"` + SharingCapabilities *int32 `protobuf:"varint,4,opt,name=sharing_capabilities,json=sharingCapabilities,proto3,oneof" json:"sharing_capabilities,omitempty" msg:"272423-3,omitempty"` // Contains a zero-length string. - SharingConfigurationUrl *string `protobuf:"bytes,5,opt,name=sharing_configuration_url,json=sharingConfigurationUrl,proto3,oneof" json:"sharing_configuration_url,omitempty" msg:"272452,omitempty" type:"31,omitempty"` + SharingConfigurationUrl *string `protobuf:"bytes,5,opt,name=sharing_configuration_url,json=sharingConfigurationUrl,proto3,oneof" json:"sharing_configuration_url,omitempty" msg:"272452-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingDataRangeEnd *int64 `protobuf:"varint,6,opt,name=sharing_data_range_end,json=sharingDataRangeEnd,proto3,oneof" json:"sharing_data_range_end,omitempty" msg:"272517,omitempty" type:"64,omitempty"` + SharingDataRangeEnd *int64 `protobuf:"varint,6,opt,name=sharing_data_range_end,json=sharingDataRangeEnd,proto3,oneof" json:"sharing_data_range_end,omitempty" msg:"272517-64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingDataRangeStart *int64 `protobuf:"varint,7,opt,name=sharing_data_range_start,json=sharingDataRangeStart,proto3,oneof" json:"sharing_data_range_start,omitempty" msg:"272516,omitempty" type:"64,omitempty"` + SharingDataRangeStart *int64 `protobuf:"varint,7,opt,name=sharing_data_range_start,json=sharingDataRangeStart,proto3,oneof" json:"sharing_data_range_start,omitempty" msg:"272516-64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingDetail *int32 `protobuf:"varint,8,opt,name=sharing_detail,json=sharingDetail,proto3,oneof" json:"sharing_detail,omitempty" msg:"272459,omitempty" type:"3,omitempty"` + SharingDetail *int32 `protobuf:"varint,8,opt,name=sharing_detail,json=sharingDetail,proto3,oneof" json:"sharing_detail,omitempty" msg:"272459-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingExtensionXml *string `protobuf:"bytes,9,opt,name=sharing_extension_xml,json=sharingExtensionXml,proto3,oneof" json:"sharing_extension_xml,omitempty" msg:"272449,omitempty" type:"31,omitempty"` + SharingExtensionXml *string `protobuf:"bytes,9,opt,name=sharing_extension_xml,json=sharingExtensionXml,proto3,oneof" json:"sharing_extension_xml,omitempty" msg:"272449-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingFlags *int32 `protobuf:"varint,11,opt,name=sharing_flags,json=sharingFlags,proto3,oneof" json:"sharing_flags,omitempty" msg:"272394,omitempty" type:"3,omitempty"` + SharingFlags *int32 `protobuf:"varint,11,opt,name=sharing_flags,json=sharingFlags,proto3,oneof" json:"sharing_flags,omitempty" msg:"272394-3,omitempty"` // Indicates the type of Sharing Message object. - SharingFlavor *int32 `protobuf:"varint,12,opt,name=sharing_flavor,json=sharingFlavor,proto3,oneof" json:"sharing_flavor,omitempty" msg:"272424,omitempty" type:"3,omitempty"` + SharingFlavor *int32 `protobuf:"varint,12,opt,name=sharing_flavor,json=sharingFlavor,proto3,oneof" json:"sharing_flavor,omitempty" msg:"272424-3,omitempty"` // Contains the value of the PidTagDisplayName property (section 2.676) from the Address Book object identified by the PidLidSharingInitiatorEntryId property (section 2.248). - SharingInitiatorName *string `protobuf:"bytes,16,opt,name=sharing_initiator_name,json=sharingInitiatorName,proto3,oneof" json:"sharing_initiator_name,omitempty" msg:"272391,omitempty" type:"31,omitempty"` + SharingInitiatorName *string `protobuf:"bytes,16,opt,name=sharing_initiator_name,json=sharingInitiatorName,proto3,oneof" json:"sharing_initiator_name,omitempty" msg:"272391-31,omitempty"` // Contains the value of the PidTagSmtpAddress property (section 2.1020) from the Address Book object identified by the PidLidSharingInitiatorEntryId property (section 2.248). - SharingInitiatorSmtp *string `protobuf:"bytes,17,opt,name=sharing_initiator_smtp,json=sharingInitiatorSmtp,proto3,oneof" json:"sharing_initiator_smtp,omitempty" msg:"272392,omitempty" type:"31,omitempty"` + SharingInitiatorSmtp *string `protobuf:"bytes,17,opt,name=sharing_initiator_smtp,json=sharingInitiatorSmtp,proto3,oneof" json:"sharing_initiator_smtp,omitempty" msg:"272392-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLastAutoSyncTime *int64 `protobuf:"varint,19,opt,name=sharing_last_auto_sync_time,json=sharingLastAutoSyncTime,proto3,oneof" json:"sharing_last_auto_sync_time,omitempty" msg:"272549,omitempty" type:"64,omitempty"` + SharingLastAutoSyncTime *int64 `protobuf:"varint,19,opt,name=sharing_last_auto_sync_time,json=sharingLastAutoSyncTime,proto3,oneof" json:"sharing_last_auto_sync_time,omitempty" msg:"272549-64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLastSyncTime *int64 `protobuf:"varint,20,opt,name=sharing_last_sync_time,json=sharingLastSyncTime,proto3,oneof" json:"sharing_last_sync_time,omitempty" msg:"272431,omitempty" type:"64,omitempty"` + SharingLastSyncTime *int64 `protobuf:"varint,20,opt,name=sharing_last_sync_time,json=sharingLastSyncTime,proto3,oneof" json:"sharing_last_sync_time,omitempty" msg:"272431-64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLocalComment *string `protobuf:"bytes,21,opt,name=sharing_local_comment,json=sharingLocalComment,proto3,oneof" json:"sharing_local_comment,omitempty" msg:"272525,omitempty" type:"31,omitempty"` + SharingLocalComment *string `protobuf:"bytes,21,opt,name=sharing_local_comment,json=sharingLocalComment,proto3,oneof" json:"sharing_local_comment,omitempty" msg:"272525-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLocalLastModificationTime *int64 `protobuf:"varint,22,opt,name=sharing_local_last_modification_time,json=sharingLocalLastModificationTime,proto3,oneof" json:"sharing_local_last_modification_time,omitempty" msg:"272451,omitempty" type:"64,omitempty"` + SharingLocalLastModificationTime *int64 `protobuf:"varint,22,opt,name=sharing_local_last_modification_time,json=sharingLocalLastModificationTime,proto3,oneof" json:"sharing_local_last_modification_time,omitempty" msg:"272451-64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLocalName *string `protobuf:"bytes,23,opt,name=sharing_local_name,json=sharingLocalName,proto3,oneof" json:"sharing_local_name,omitempty" msg:"272399,omitempty" type:"31,omitempty"` + SharingLocalName *string `protobuf:"bytes,23,opt,name=sharing_local_name,json=sharingLocalName,proto3,oneof" json:"sharing_local_name,omitempty" msg:"272399-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLocalPath *string `protobuf:"bytes,24,opt,name=sharing_local_path,json=sharingLocalPath,proto3,oneof" json:"sharing_local_path,omitempty" msg:"272398,omitempty" type:"31,omitempty"` + SharingLocalPath *string `protobuf:"bytes,24,opt,name=sharing_local_path,json=sharingLocalPath,proto3,oneof" json:"sharing_local_path,omitempty" msg:"272398-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLocalStoreUid *string `protobuf:"bytes,25,opt,name=sharing_local_store_uid,json=sharingLocalStoreUid,proto3,oneof" json:"sharing_local_store_uid,omitempty" msg:"272521,omitempty" type:"31,omitempty"` + SharingLocalStoreUid *string `protobuf:"bytes,25,opt,name=sharing_local_store_uid,json=sharingLocalStoreUid,proto3,oneof" json:"sharing_local_store_uid,omitempty" msg:"272521-31,omitempty"` // Contains the value of the PidTagContainerClass property (section 2.642) of the folder being shared. - SharingLocalType *string `protobuf:"bytes,26,opt,name=sharing_local_type,json=sharingLocalType,proto3,oneof" json:"sharing_local_type,omitempty" msg:"272420,omitempty" type:"31,omitempty"` + SharingLocalType *string `protobuf:"bytes,26,opt,name=sharing_local_type,json=sharingLocalType,proto3,oneof" json:"sharing_local_type,omitempty" msg:"272420-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingLocalUid *string `protobuf:"bytes,27,opt,name=sharing_local_uid,json=sharingLocalUid,proto3,oneof" json:"sharing_local_uid,omitempty" msg:"272416,omitempty" type:"31,omitempty"` + SharingLocalUid *string `protobuf:"bytes,27,opt,name=sharing_local_uid,json=sharingLocalUid,proto3,oneof" json:"sharing_local_uid,omitempty" msg:"272416-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingParticipants *string `protobuf:"bytes,30,opt,name=sharing_participants,json=sharingParticipants,proto3,oneof" json:"sharing_participants,omitempty" msg:"272430,omitempty" type:"31,omitempty"` + SharingParticipants *string `protobuf:"bytes,30,opt,name=sharing_participants,json=sharingParticipants,proto3,oneof" json:"sharing_participants,omitempty" msg:"272430-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingPermissions *int32 `protobuf:"varint,31,opt,name=sharing_permissions,json=sharingPermissions,proto3,oneof" json:"sharing_permissions,omitempty" msg:"272427,omitempty" type:"3,omitempty"` + SharingPermissions *int32 `protobuf:"varint,31,opt,name=sharing_permissions,json=sharingPermissions,proto3,oneof" json:"sharing_permissions,omitempty" msg:"272427-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingProviderExtension *string `protobuf:"bytes,32,opt,name=sharing_provider_extension,json=sharingProviderExtension,proto3,oneof" json:"sharing_provider_extension,omitempty" msg:"272395,omitempty" type:"31,omitempty"` + SharingProviderExtension *string `protobuf:"bytes,32,opt,name=sharing_provider_extension,json=sharingProviderExtension,proto3,oneof" json:"sharing_provider_extension,omitempty" msg:"272395-31,omitempty"` // Contains a user-displayable name of the sharing provider identified by the PidLidSharingProviderGuid property (section 2.266). - SharingProviderName *string `protobuf:"bytes,34,opt,name=sharing_provider_name,json=sharingProviderName,proto3,oneof" json:"sharing_provider_name,omitempty" msg:"272386,omitempty" type:"31,omitempty"` + SharingProviderName *string `protobuf:"bytes,34,opt,name=sharing_provider_name,json=sharingProviderName,proto3,oneof" json:"sharing_provider_name,omitempty" msg:"272386-31,omitempty"` // Contains a URL related to the sharing provider identified by the PidLidSharingProviderGuid property (section 2.266). - SharingProviderUrl *string `protobuf:"bytes,35,opt,name=sharing_provider_url,json=sharingProviderUrl,proto3,oneof" json:"sharing_provider_url,omitempty" msg:"272387,omitempty" type:"31,omitempty"` + SharingProviderUrl *string `protobuf:"bytes,35,opt,name=sharing_provider_url,json=sharingProviderUrl,proto3,oneof" json:"sharing_provider_url,omitempty" msg:"272387-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRangeEnd *int32 `protobuf:"varint,36,opt,name=sharing_range_end,json=sharingRangeEnd,proto3,oneof" json:"sharing_range_end,omitempty" msg:"272519,omitempty" type:"3,omitempty"` + SharingRangeEnd *int32 `protobuf:"varint,36,opt,name=sharing_range_end,json=sharingRangeEnd,proto3,oneof" json:"sharing_range_end,omitempty" msg:"272519-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRangeStart *int32 `protobuf:"varint,37,opt,name=sharing_range_start,json=sharingRangeStart,proto3,oneof" json:"sharing_range_start,omitempty" msg:"272518,omitempty" type:"3,omitempty"` + SharingRangeStart *int32 `protobuf:"varint,37,opt,name=sharing_range_start,json=sharingRangeStart,proto3,oneof" json:"sharing_range_start,omitempty" msg:"272518-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingReciprocation *int32 `protobuf:"varint,38,opt,name=sharing_reciprocation,json=sharingReciprocation,proto3,oneof" json:"sharing_reciprocation,omitempty" msg:"272426,omitempty" type:"3,omitempty"` + SharingReciprocation *int32 `protobuf:"varint,38,opt,name=sharing_reciprocation,json=sharingReciprocation,proto3,oneof" json:"sharing_reciprocation,omitempty" msg:"272426-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteByteSize *int32 `protobuf:"varint,39,opt,name=sharing_remote_byte_size,json=sharingRemoteByteSize,proto3,oneof" json:"sharing_remote_byte_size,omitempty" msg:"272523,omitempty" type:"3,omitempty"` + SharingRemoteByteSize *int32 `protobuf:"varint,39,opt,name=sharing_remote_byte_size,json=sharingRemoteByteSize,proto3,oneof" json:"sharing_remote_byte_size,omitempty" msg:"272523-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteComment *string `protobuf:"bytes,40,opt,name=sharing_remote_comment,json=sharingRemoteComment,proto3,oneof" json:"sharing_remote_comment,omitempty" msg:"272463,omitempty" type:"31,omitempty"` + SharingRemoteComment *string `protobuf:"bytes,40,opt,name=sharing_remote_comment,json=sharingRemoteComment,proto3,oneof" json:"sharing_remote_comment,omitempty" msg:"272463-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteCrc *int32 `protobuf:"varint,41,opt,name=sharing_remote_crc,json=sharingRemoteCrc,proto3,oneof" json:"sharing_remote_crc,omitempty" msg:"272524,omitempty" type:"3,omitempty"` + SharingRemoteCrc *int32 `protobuf:"varint,41,opt,name=sharing_remote_crc,json=sharingRemoteCrc,proto3,oneof" json:"sharing_remote_crc,omitempty" msg:"272524-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteLastModificationTime *int64 `protobuf:"varint,42,opt,name=sharing_remote_last_modification_time,json=sharingRemoteLastModificationTime,proto3,oneof" json:"sharing_remote_last_modification_time,omitempty" msg:"272450,omitempty" type:"64,omitempty"` + SharingRemoteLastModificationTime *int64 `protobuf:"varint,42,opt,name=sharing_remote_last_modification_time,json=sharingRemoteLastModificationTime,proto3,oneof" json:"sharing_remote_last_modification_time,omitempty" msg:"272450-64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteMessageCount *int32 `protobuf:"varint,43,opt,name=sharing_remote_message_count,json=sharingRemoteMessageCount,proto3,oneof" json:"sharing_remote_message_count,omitempty" msg:"272527,omitempty" type:"3,omitempty"` + SharingRemoteMessageCount *int32 `protobuf:"varint,43,opt,name=sharing_remote_message_count,json=sharingRemoteMessageCount,proto3,oneof" json:"sharing_remote_message_count,omitempty" msg:"272527-3,omitempty"` // Contains the value of the PidTagDisplayName property (section 2.676) on the folder being shared. - SharingRemoteName *string `protobuf:"bytes,44,opt,name=sharing_remote_name,json=sharingRemoteName,proto3,oneof" json:"sharing_remote_name,omitempty" msg:"272389,omitempty" type:"31,omitempty"` + SharingRemoteName *string `protobuf:"bytes,44,opt,name=sharing_remote_name,json=sharingRemoteName,proto3,oneof" json:"sharing_remote_name,omitempty" msg:"272389-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemotePass *string `protobuf:"bytes,45,opt,name=sharing_remote_pass,json=sharingRemotePass,proto3,oneof" json:"sharing_remote_pass,omitempty" msg:"272397,omitempty" type:"31,omitempty"` + SharingRemotePass *string `protobuf:"bytes,45,opt,name=sharing_remote_pass,json=sharingRemotePass,proto3,oneof" json:"sharing_remote_pass,omitempty" msg:"272397-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemotePath *string `protobuf:"bytes,46,opt,name=sharing_remote_path,json=sharingRemotePath,proto3,oneof" json:"sharing_remote_path,omitempty" msg:"272388,omitempty" type:"31,omitempty"` + SharingRemotePath *string `protobuf:"bytes,46,opt,name=sharing_remote_path,json=sharingRemotePath,proto3,oneof" json:"sharing_remote_path,omitempty" msg:"272388-31,omitempty"` // Contains a hexadecimal string representation of the value of the PidTagStoreEntryId property (section 2.1028) on the folder being shared. - SharingRemoteStoreUid *string `protobuf:"bytes,47,opt,name=sharing_remote_store_uid,json=sharingRemoteStoreUid,proto3,oneof" json:"sharing_remote_store_uid,omitempty" msg:"272520,omitempty" type:"31,omitempty"` + SharingRemoteStoreUid *string `protobuf:"bytes,47,opt,name=sharing_remote_store_uid,json=sharingRemoteStoreUid,proto3,oneof" json:"sharing_remote_store_uid,omitempty" msg:"272520-31,omitempty"` // Contains the same value as the PidLidSharingLocalType property (section 2.259). - SharingRemoteType *string `protobuf:"bytes,48,opt,name=sharing_remote_type,json=sharingRemoteType,proto3,oneof" json:"sharing_remote_type,omitempty" msg:"272429,omitempty" type:"31,omitempty"` + SharingRemoteType *string `protobuf:"bytes,48,opt,name=sharing_remote_type,json=sharingRemoteType,proto3,oneof" json:"sharing_remote_type,omitempty" msg:"272429-31,omitempty"` // Contains the EntryID of the folder being shared. - SharingRemoteUid *string `protobuf:"bytes,49,opt,name=sharing_remote_uid,json=sharingRemoteUid,proto3,oneof" json:"sharing_remote_uid,omitempty" msg:"272390,omitempty" type:"31,omitempty"` + SharingRemoteUid *string `protobuf:"bytes,49,opt,name=sharing_remote_uid,json=sharingRemoteUid,proto3,oneof" json:"sharing_remote_uid,omitempty" msg:"272390-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteUser *string `protobuf:"bytes,50,opt,name=sharing_remote_user,json=sharingRemoteUser,proto3,oneof" json:"sharing_remote_user,omitempty" msg:"272396,omitempty" type:"31,omitempty"` + SharingRemoteUser *string `protobuf:"bytes,50,opt,name=sharing_remote_user,json=sharingRemoteUser,proto3,oneof" json:"sharing_remote_user,omitempty" msg:"272396-31,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRemoteVersion *string `protobuf:"bytes,51,opt,name=sharing_remote_version,json=sharingRemoteVersion,proto3,oneof" json:"sharing_remote_version,omitempty" msg:"272555,omitempty" type:"31,omitempty"` + SharingRemoteVersion *string `protobuf:"bytes,51,opt,name=sharing_remote_version,json=sharingRemoteVersion,proto3,oneof" json:"sharing_remote_version,omitempty" msg:"272555-31,omitempty"` // Contains the time at which the recipient of the sharing request sent a sharing response. - SharingResponseTime *int64 `protobuf:"varint,52,opt,name=sharing_response_time,json=sharingResponseTime,proto3,oneof" json:"sharing_response_time,omitempty" msg:"272456,omitempty" type:"64,omitempty"` + SharingResponseTime *int64 `protobuf:"varint,52,opt,name=sharing_response_time,json=sharingResponseTime,proto3,oneof" json:"sharing_response_time,omitempty" msg:"272456-64,omitempty"` // Contains the type of response with which the recipient of the sharing request responded. - SharingResponseType *int32 `protobuf:"varint,53,opt,name=sharing_response_type,json=sharingResponseType,proto3,oneof" json:"sharing_response_type,omitempty" msg:"272455,omitempty" type:"3,omitempty"` + SharingResponseType *int32 `protobuf:"varint,53,opt,name=sharing_response_type,json=sharingResponseType,proto3,oneof" json:"sharing_response_type,omitempty" msg:"272455-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingRoamLog *int32 `protobuf:"varint,54,opt,name=sharing_roam_log,json=sharingRoamLog,proto3,oneof" json:"sharing_roam_log,omitempty" msg:"272526,omitempty" type:"3,omitempty"` + SharingRoamLog *int32 `protobuf:"varint,54,opt,name=sharing_roam_log,json=sharingRoamLog,proto3,oneof" json:"sharing_roam_log,omitempty" msg:"272526-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingStart *int64 `protobuf:"varint,55,opt,name=sharing_start,json=sharingStart,proto3,oneof" json:"sharing_start,omitempty" msg:"272453,omitempty" type:"64,omitempty"` + SharingStart *int64 `protobuf:"varint,55,opt,name=sharing_start,json=sharingStart,proto3,oneof" json:"sharing_start,omitempty" msg:"272453-64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingStatus *int32 `protobuf:"varint,56,opt,name=sharing_status,json=sharingStatus,proto3,oneof" json:"sharing_status,omitempty" msg:"272384,omitempty" type:"3,omitempty"` + SharingStatus *int32 `protobuf:"varint,56,opt,name=sharing_status,json=sharingStatus,proto3,oneof" json:"sharing_status,omitempty" msg:"272384-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingStop *int64 `protobuf:"varint,57,opt,name=sharing_stop,json=sharingStop,proto3,oneof" json:"sharing_stop,omitempty" msg:"272454,omitempty" type:"64,omitempty"` + SharingStop *int64 `protobuf:"varint,57,opt,name=sharing_stop,json=sharingStop,proto3,oneof" json:"sharing_stop,omitempty" msg:"272454-64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingSyncFlags *int32 `protobuf:"varint,58,opt,name=sharing_sync_flags,json=sharingSyncFlags,proto3,oneof" json:"sharing_sync_flags,omitempty" msg:"272576,omitempty" type:"3,omitempty"` + SharingSyncFlags *int32 `protobuf:"varint,58,opt,name=sharing_sync_flags,json=sharingSyncFlags,proto3,oneof" json:"sharing_sync_flags,omitempty" msg:"272576-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingSyncInterval *int32 `protobuf:"varint,59,opt,name=sharing_sync_interval,json=sharingSyncInterval,proto3,oneof" json:"sharing_sync_interval,omitempty" msg:"272458,omitempty" type:"3,omitempty"` + SharingSyncInterval *int32 `protobuf:"varint,59,opt,name=sharing_sync_interval,json=sharingSyncInterval,proto3,oneof" json:"sharing_sync_interval,omitempty" msg:"272458-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingTimeToLive *int32 `protobuf:"varint,60,opt,name=sharing_time_to_live,json=sharingTimeToLive,proto3,oneof" json:"sharing_time_to_live,omitempty" msg:"272460,omitempty" type:"3,omitempty"` + SharingTimeToLive *int32 `protobuf:"varint,60,opt,name=sharing_time_to_live,json=sharingTimeToLive,proto3,oneof" json:"sharing_time_to_live,omitempty" msg:"272460-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingTimeToLiveAuto *int32 `protobuf:"varint,61,opt,name=sharing_time_to_live_auto,json=sharingTimeToLiveAuto,proto3,oneof" json:"sharing_time_to_live_auto,omitempty" msg:"272550,omitempty" type:"3,omitempty"` + SharingTimeToLiveAuto *int32 `protobuf:"varint,61,opt,name=sharing_time_to_live_auto,json=sharingTimeToLiveAuto,proto3,oneof" json:"sharing_time_to_live_auto,omitempty" msg:"272550-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingWorkingHoursDays *int32 `protobuf:"varint,62,opt,name=sharing_working_hours_days,json=sharingWorkingHoursDays,proto3,oneof" json:"sharing_working_hours_days,omitempty" msg:"272514,omitempty" type:"3,omitempty"` + SharingWorkingHoursDays *int32 `protobuf:"varint,62,opt,name=sharing_working_hours_days,json=sharingWorkingHoursDays,proto3,oneof" json:"sharing_working_hours_days,omitempty" msg:"272514-3,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingWorkingHoursEnd *int64 `protobuf:"varint,63,opt,name=sharing_working_hours_end,json=sharingWorkingHoursEnd,proto3,oneof" json:"sharing_working_hours_end,omitempty" msg:"272513,omitempty" type:"64,omitempty"` + SharingWorkingHoursEnd *int64 `protobuf:"varint,63,opt,name=sharing_working_hours_end,json=sharingWorkingHoursEnd,proto3,oneof" json:"sharing_working_hours_end,omitempty" msg:"272513-64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. - SharingWorkingHoursStart *int64 `protobuf:"varint,64,opt,name=sharing_working_hours_start,json=sharingWorkingHoursStart,proto3,oneof" json:"sharing_working_hours_start,omitempty" msg:"272512,omitempty" type:"64,omitempty"` + SharingWorkingHoursStart *int64 `protobuf:"varint,64,opt,name=sharing_working_hours_start,json=sharingWorkingHoursStart,proto3,oneof" json:"sharing_working_hours_start,omitempty" msg:"272512-64,omitempty"` // Contains a value that is ignored by the server no matter what value is generated by the client. XSharingBrowseUrl_ *string `protobuf:"bytes,66,opt,name=x_sharing_browse_url,json=xSharingBrowseUrl,proto3,oneof" json:"x_sharing_browse_url,omitempty"` // Contains a string representation of the value of the PidLidSharingCapabilities property (section 2.237). diff --git a/pkg/properties/sharing.pb_gen.go b/pkg/properties/sharing.pb_gen.go index 9de35a9..1f03fb5 100644 --- a/pkg/properties/sharing.pb_gen.go +++ b/pkg/properties/sharing.pb_gen.go @@ -24,7 +24,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "272425": + case "272425-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272545": + case "272545-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272423": + case "272423-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272452": + case "272452-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272517": + case "272517-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272516": + case "272516-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272459": + case "272459-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272449": + case "272449-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272394": + case "272394-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272424": + case "272424-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272391": + case "272391-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272392": + case "272392-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272549": + case "272549-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272431": + case "272431-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272525": + case "272525-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -294,7 +294,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272451": + case "272451-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -312,7 +312,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272399": + case "272399-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -330,7 +330,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272398": + case "272398-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -348,7 +348,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272521": + case "272521-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -366,7 +366,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272420": + case "272420-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -384,7 +384,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272416": + case "272416-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -402,7 +402,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272430": + case "272430-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -420,7 +420,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272427": + case "272427-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -438,7 +438,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272395": + case "272395-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -456,7 +456,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272386": + case "272386-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -474,7 +474,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272387": + case "272387-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -492,7 +492,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272519": + case "272519-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -510,7 +510,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272518": + case "272518-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -528,7 +528,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272426": + case "272426-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -546,7 +546,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272523": + case "272523-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -564,7 +564,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272463": + case "272463-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -582,7 +582,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272524": + case "272524-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -600,7 +600,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272450": + case "272450-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -618,7 +618,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272527": + case "272527-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -636,7 +636,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272389": + case "272389-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -654,7 +654,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272397": + case "272397-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -672,7 +672,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272388": + case "272388-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -690,7 +690,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272520": + case "272520-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -708,7 +708,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272429": + case "272429-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -726,7 +726,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272390": + case "272390-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -744,7 +744,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272396": + case "272396-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -762,7 +762,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272555": + case "272555-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -780,7 +780,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272456": + case "272456-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -798,7 +798,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272455": + case "272455-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -816,7 +816,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272526": + case "272526-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -834,7 +834,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272453": + case "272453-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -852,7 +852,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272384": + case "272384-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -870,7 +870,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272454": + case "272454-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -888,7 +888,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272576": + case "272576-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -906,7 +906,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272458": + case "272458-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -924,7 +924,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272460": + case "272460-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -942,7 +942,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272550": + case "272550-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -960,7 +960,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272514": + case "272514-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -978,7 +978,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272513": + case "272513-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -996,7 +996,7 @@ func (z *Sharing) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "272512": + case "272512-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -1529,8 +1529,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // write "272425" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x35) + // write "272425-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x35, 0x2d, 0x33) if err != nil { return } @@ -1548,8 +1548,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // write "272545" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x34, 0x35) + // write "272545-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x35, 0x34, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1567,8 +1567,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // write "272423" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x33) + // write "272423-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x33, 0x2d, 0x33) if err != nil { return } @@ -1586,8 +1586,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // write "272452" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x32) + // write "272452-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x34, 0x35, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1605,8 +1605,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // write "272517" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x37) + // write "272517-64" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x35, 0x31, 0x37, 0x2d, 0x36, 0x34) if err != nil { return } @@ -1624,8 +1624,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // write "272516" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x36) + // write "272516-64" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x35, 0x31, 0x36, 0x2d, 0x36, 0x34) if err != nil { return } @@ -1643,8 +1643,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // write "272459" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x39) + // write "272459-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x39, 0x2d, 0x33) if err != nil { return } @@ -1662,8 +1662,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // write "272449" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x34, 0x39) + // write "272449-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x34, 0x34, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1681,8 +1681,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // write "272394" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x34) + // write "272394-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x34, 0x2d, 0x33) if err != nil { return } @@ -1700,8 +1700,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // write "272424" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x34) + // write "272424-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x34, 0x2d, 0x33) if err != nil { return } @@ -1719,8 +1719,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // write "272391" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x31) + // write "272391-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1738,8 +1738,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // write "272392" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x32) + // write "272392-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x32, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1757,8 +1757,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // write "272549" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x34, 0x39) + // write "272549-64" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x35, 0x34, 0x39, 0x2d, 0x36, 0x34) if err != nil { return } @@ -1776,8 +1776,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // write "272431" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x33, 0x31) + // write "272431-64" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x34, 0x33, 0x31, 0x2d, 0x36, 0x34) if err != nil { return } @@ -1795,8 +1795,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // write "272525" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x35) + // write "272525-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x35, 0x32, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1814,8 +1814,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000) == 0 { // if not empty - // write "272451" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x31) + // write "272451-64" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x34, 0x35, 0x31, 0x2d, 0x36, 0x34) if err != nil { return } @@ -1833,8 +1833,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000) == 0 { // if not empty - // write "272399" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x39) + // write "272399-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1852,8 +1852,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000) == 0 { // if not empty - // write "272398" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x38) + // write "272398-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1871,8 +1871,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000) == 0 { // if not empty - // write "272521" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x31) + // write "272521-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x35, 0x32, 0x31, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1890,8 +1890,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000) == 0 { // if not empty - // write "272420" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x30) + // write "272420-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x34, 0x32, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1909,8 +1909,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000) == 0 { // if not empty - // write "272416" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x31, 0x36) + // write "272416-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x34, 0x31, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1928,8 +1928,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000) == 0 { // if not empty - // write "272430" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x33, 0x30) + // write "272430-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x34, 0x33, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1947,8 +1947,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000) == 0 { // if not empty - // write "272427" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x37) + // write "272427-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x37, 0x2d, 0x33) if err != nil { return } @@ -1966,8 +1966,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000) == 0 { // if not empty - // write "272395" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x35) + // write "272395-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1985,8 +1985,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000) == 0 { // if not empty - // write "272386" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x36) + // write "272386-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x33, 0x38, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2004,8 +2004,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // write "272387" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x37) + // write "272387-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x33, 0x38, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2023,8 +2023,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // write "272519" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x39) + // write "272519-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x39, 0x2d, 0x33) if err != nil { return } @@ -2042,8 +2042,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // write "272518" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x38) + // write "272518-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x38, 0x2d, 0x33) if err != nil { return } @@ -2061,8 +2061,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // write "272426" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x36) + // write "272426-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x36, 0x2d, 0x33) if err != nil { return } @@ -2080,8 +2080,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // write "272523" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x33) + // write "272523-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x33, 0x2d, 0x33) if err != nil { return } @@ -2099,8 +2099,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // write "272463" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x36, 0x33) + // write "272463-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x34, 0x36, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2118,8 +2118,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // write "272524" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x34) + // write "272524-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x34, 0x2d, 0x33) if err != nil { return } @@ -2137,8 +2137,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // write "272450" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x30) + // write "272450-64" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x34, 0x35, 0x30, 0x2d, 0x36, 0x34) if err != nil { return } @@ -2156,8 +2156,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // write "272527" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x37) + // write "272527-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x37, 0x2d, 0x33) if err != nil { return } @@ -2175,8 +2175,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // write "272389" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x39) + // write "272389-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x33, 0x38, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2194,8 +2194,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // write "272397" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x37) + // write "272397-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2213,8 +2213,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // write "272388" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x38) + // write "272388-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x33, 0x38, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2232,8 +2232,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // write "272520" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x30) + // write "272520-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x35, 0x32, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2251,8 +2251,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // write "272429" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x39) + // write "272429-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x34, 0x32, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2270,8 +2270,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // write "272390" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x30) + // write "272390-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2289,8 +2289,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // write "272396" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x36) + // write "272396-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2308,8 +2308,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // write "272555" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x35, 0x35) + // write "272555-31" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x35, 0x35, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -2327,8 +2327,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // write "272456" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x36) + // write "272456-64" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x34, 0x35, 0x36, 0x2d, 0x36, 0x34) if err != nil { return } @@ -2346,8 +2346,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // write "272455" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x35) + // write "272455-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x35, 0x2d, 0x33) if err != nil { return } @@ -2365,8 +2365,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // write "272526" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x36) + // write "272526-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x36, 0x2d, 0x33) if err != nil { return } @@ -2384,8 +2384,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // write "272453" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x33) + // write "272453-64" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x34, 0x35, 0x33, 0x2d, 0x36, 0x34) if err != nil { return } @@ -2403,8 +2403,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // write "272384" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x34) + // write "272384-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x33, 0x38, 0x34, 0x2d, 0x33) if err != nil { return } @@ -2422,8 +2422,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // write "272454" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x34) + // write "272454-64" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x34, 0x35, 0x34, 0x2d, 0x36, 0x34) if err != nil { return } @@ -2441,8 +2441,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // write "272576" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x37, 0x36) + // write "272576-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x37, 0x36, 0x2d, 0x33) if err != nil { return } @@ -2460,8 +2460,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // write "272458" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x38) + // write "272458-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x38, 0x2d, 0x33) if err != nil { return } @@ -2479,8 +2479,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // write "272460" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x34, 0x36, 0x30) + // write "272460-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x34, 0x36, 0x30, 0x2d, 0x33) if err != nil { return } @@ -2498,8 +2498,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // write "272550" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x35, 0x30) + // write "272550-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x35, 0x30, 0x2d, 0x33) if err != nil { return } @@ -2517,8 +2517,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // write "272514" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x34) + // write "272514-3" + err = en.Append(0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x34, 0x2d, 0x33) if err != nil { return } @@ -2536,8 +2536,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // write "272513" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x33) + // write "272513-64" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x35, 0x31, 0x33, 0x2d, 0x36, 0x34) if err != nil { return } @@ -2555,8 +2555,8 @@ func (z *Sharing) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // write "272512" - err = en.Append(0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x32) + // write "272512-64" + err = en.Append(0xa9, 0x32, 0x37, 0x32, 0x35, 0x31, 0x32, 0x2d, 0x36, 0x34) if err != nil { return } @@ -3063,8 +3063,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask[0] & 0x1) == 0 { // if not empty - // string "272425" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x35) + // string "272425-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x35, 0x2d, 0x33) if z.SharingAnonymity == nil { o = msgp.AppendNil(o) } else { @@ -3072,8 +3072,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2) == 0 { // if not empty - // string "272545" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x34, 0x35) + // string "272545-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x35, 0x34, 0x35, 0x2d, 0x33, 0x31) if z.SharingBrowseUrl == nil { o = msgp.AppendNil(o) } else { @@ -3081,8 +3081,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4) == 0 { // if not empty - // string "272423" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x33) + // string "272423-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x33, 0x2d, 0x33) if z.SharingCapabilities == nil { o = msgp.AppendNil(o) } else { @@ -3090,8 +3090,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8) == 0 { // if not empty - // string "272452" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x32) + // string "272452-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x34, 0x35, 0x32, 0x2d, 0x33, 0x31) if z.SharingConfigurationUrl == nil { o = msgp.AppendNil(o) } else { @@ -3099,8 +3099,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10) == 0 { // if not empty - // string "272517" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x37) + // string "272517-64" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x35, 0x31, 0x37, 0x2d, 0x36, 0x34) if z.SharingDataRangeEnd == nil { o = msgp.AppendNil(o) } else { @@ -3108,8 +3108,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20) == 0 { // if not empty - // string "272516" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x36) + // string "272516-64" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x35, 0x31, 0x36, 0x2d, 0x36, 0x34) if z.SharingDataRangeStart == nil { o = msgp.AppendNil(o) } else { @@ -3117,8 +3117,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40) == 0 { // if not empty - // string "272459" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x39) + // string "272459-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x39, 0x2d, 0x33) if z.SharingDetail == nil { o = msgp.AppendNil(o) } else { @@ -3126,8 +3126,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80) == 0 { // if not empty - // string "272449" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x34, 0x39) + // string "272449-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x34, 0x34, 0x39, 0x2d, 0x33, 0x31) if z.SharingExtensionXml == nil { o = msgp.AppendNil(o) } else { @@ -3135,8 +3135,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100) == 0 { // if not empty - // string "272394" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x34) + // string "272394-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x39, 0x34, 0x2d, 0x33) if z.SharingFlags == nil { o = msgp.AppendNil(o) } else { @@ -3144,8 +3144,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200) == 0 { // if not empty - // string "272424" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x34) + // string "272424-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x34, 0x2d, 0x33) if z.SharingFlavor == nil { o = msgp.AppendNil(o) } else { @@ -3153,8 +3153,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400) == 0 { // if not empty - // string "272391" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x31) + // string "272391-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x31, 0x2d, 0x33, 0x31) if z.SharingInitiatorName == nil { o = msgp.AppendNil(o) } else { @@ -3162,8 +3162,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800) == 0 { // if not empty - // string "272392" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x32) + // string "272392-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x32, 0x2d, 0x33, 0x31) if z.SharingInitiatorSmtp == nil { o = msgp.AppendNil(o) } else { @@ -3171,8 +3171,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000) == 0 { // if not empty - // string "272549" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x34, 0x39) + // string "272549-64" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x35, 0x34, 0x39, 0x2d, 0x36, 0x34) if z.SharingLastAutoSyncTime == nil { o = msgp.AppendNil(o) } else { @@ -3180,8 +3180,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000) == 0 { // if not empty - // string "272431" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x33, 0x31) + // string "272431-64" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x34, 0x33, 0x31, 0x2d, 0x36, 0x34) if z.SharingLastSyncTime == nil { o = msgp.AppendNil(o) } else { @@ -3189,8 +3189,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000) == 0 { // if not empty - // string "272525" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x35) + // string "272525-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x35, 0x32, 0x35, 0x2d, 0x33, 0x31) if z.SharingLocalComment == nil { o = msgp.AppendNil(o) } else { @@ -3198,8 +3198,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000) == 0 { // if not empty - // string "272451" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x31) + // string "272451-64" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x34, 0x35, 0x31, 0x2d, 0x36, 0x34) if z.SharingLocalLastModificationTime == nil { o = msgp.AppendNil(o) } else { @@ -3207,8 +3207,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000) == 0 { // if not empty - // string "272399" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x39) + // string "272399-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x39, 0x2d, 0x33, 0x31) if z.SharingLocalName == nil { o = msgp.AppendNil(o) } else { @@ -3216,8 +3216,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000) == 0 { // if not empty - // string "272398" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x38) + // string "272398-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x38, 0x2d, 0x33, 0x31) if z.SharingLocalPath == nil { o = msgp.AppendNil(o) } else { @@ -3225,8 +3225,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000) == 0 { // if not empty - // string "272521" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x31) + // string "272521-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x35, 0x32, 0x31, 0x2d, 0x33, 0x31) if z.SharingLocalStoreUid == nil { o = msgp.AppendNil(o) } else { @@ -3234,8 +3234,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000) == 0 { // if not empty - // string "272420" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x30) + // string "272420-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x34, 0x32, 0x30, 0x2d, 0x33, 0x31) if z.SharingLocalType == nil { o = msgp.AppendNil(o) } else { @@ -3243,8 +3243,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000) == 0 { // if not empty - // string "272416" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x31, 0x36) + // string "272416-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x34, 0x31, 0x36, 0x2d, 0x33, 0x31) if z.SharingLocalUid == nil { o = msgp.AppendNil(o) } else { @@ -3252,8 +3252,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000) == 0 { // if not empty - // string "272430" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x33, 0x30) + // string "272430-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x34, 0x33, 0x30, 0x2d, 0x33, 0x31) if z.SharingParticipants == nil { o = msgp.AppendNil(o) } else { @@ -3261,8 +3261,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000) == 0 { // if not empty - // string "272427" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x37) + // string "272427-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x37, 0x2d, 0x33) if z.SharingPermissions == nil { o = msgp.AppendNil(o) } else { @@ -3270,8 +3270,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000) == 0 { // if not empty - // string "272395" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x35) + // string "272395-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x35, 0x2d, 0x33, 0x31) if z.SharingProviderExtension == nil { o = msgp.AppendNil(o) } else { @@ -3279,8 +3279,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000) == 0 { // if not empty - // string "272386" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x36) + // string "272386-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x33, 0x38, 0x36, 0x2d, 0x33, 0x31) if z.SharingProviderName == nil { o = msgp.AppendNil(o) } else { @@ -3288,8 +3288,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000) == 0 { // if not empty - // string "272387" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x37) + // string "272387-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x33, 0x38, 0x37, 0x2d, 0x33, 0x31) if z.SharingProviderUrl == nil { o = msgp.AppendNil(o) } else { @@ -3297,8 +3297,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000) == 0 { // if not empty - // string "272519" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x39) + // string "272519-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x39, 0x2d, 0x33) if z.SharingRangeEnd == nil { o = msgp.AppendNil(o) } else { @@ -3306,8 +3306,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000) == 0 { // if not empty - // string "272518" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x38) + // string "272518-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x38, 0x2d, 0x33) if z.SharingRangeStart == nil { o = msgp.AppendNil(o) } else { @@ -3315,8 +3315,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000) == 0 { // if not empty - // string "272426" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x36) + // string "272426-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x32, 0x36, 0x2d, 0x33) if z.SharingReciprocation == nil { o = msgp.AppendNil(o) } else { @@ -3324,8 +3324,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000) == 0 { // if not empty - // string "272523" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x33) + // string "272523-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x33, 0x2d, 0x33) if z.SharingRemoteByteSize == nil { o = msgp.AppendNil(o) } else { @@ -3333,8 +3333,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000) == 0 { // if not empty - // string "272463" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x36, 0x33) + // string "272463-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x34, 0x36, 0x33, 0x2d, 0x33, 0x31) if z.SharingRemoteComment == nil { o = msgp.AppendNil(o) } else { @@ -3342,8 +3342,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000) == 0 { // if not empty - // string "272524" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x34) + // string "272524-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x34, 0x2d, 0x33) if z.SharingRemoteCrc == nil { o = msgp.AppendNil(o) } else { @@ -3351,8 +3351,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000) == 0 { // if not empty - // string "272450" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x30) + // string "272450-64" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x34, 0x35, 0x30, 0x2d, 0x36, 0x34) if z.SharingRemoteLastModificationTime == nil { o = msgp.AppendNil(o) } else { @@ -3360,8 +3360,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000) == 0 { // if not empty - // string "272527" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x37) + // string "272527-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x37, 0x2d, 0x33) if z.SharingRemoteMessageCount == nil { o = msgp.AppendNil(o) } else { @@ -3369,8 +3369,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000) == 0 { // if not empty - // string "272389" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x39) + // string "272389-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x33, 0x38, 0x39, 0x2d, 0x33, 0x31) if z.SharingRemoteName == nil { o = msgp.AppendNil(o) } else { @@ -3378,8 +3378,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000) == 0 { // if not empty - // string "272397" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x37) + // string "272397-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x37, 0x2d, 0x33, 0x31) if z.SharingRemotePass == nil { o = msgp.AppendNil(o) } else { @@ -3387,8 +3387,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000) == 0 { // if not empty - // string "272388" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x38) + // string "272388-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x33, 0x38, 0x38, 0x2d, 0x33, 0x31) if z.SharingRemotePath == nil { o = msgp.AppendNil(o) } else { @@ -3396,8 +3396,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000) == 0 { // if not empty - // string "272520" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x30) + // string "272520-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x35, 0x32, 0x30, 0x2d, 0x33, 0x31) if z.SharingRemoteStoreUid == nil { o = msgp.AppendNil(o) } else { @@ -3405,8 +3405,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000) == 0 { // if not empty - // string "272429" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x32, 0x39) + // string "272429-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x34, 0x32, 0x39, 0x2d, 0x33, 0x31) if z.SharingRemoteType == nil { o = msgp.AppendNil(o) } else { @@ -3414,8 +3414,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000) == 0 { // if not empty - // string "272390" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x30) + // string "272390-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x30, 0x2d, 0x33, 0x31) if z.SharingRemoteUid == nil { o = msgp.AppendNil(o) } else { @@ -3423,8 +3423,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000) == 0 { // if not empty - // string "272396" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x39, 0x36) + // string "272396-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x33, 0x39, 0x36, 0x2d, 0x33, 0x31) if z.SharingRemoteUser == nil { o = msgp.AppendNil(o) } else { @@ -3432,8 +3432,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000) == 0 { // if not empty - // string "272555" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x35, 0x35) + // string "272555-31" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x35, 0x35, 0x35, 0x2d, 0x33, 0x31) if z.SharingRemoteVersion == nil { o = msgp.AppendNil(o) } else { @@ -3441,8 +3441,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000) == 0 { // if not empty - // string "272456" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x36) + // string "272456-64" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x34, 0x35, 0x36, 0x2d, 0x36, 0x34) if z.SharingResponseTime == nil { o = msgp.AppendNil(o) } else { @@ -3450,8 +3450,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x80000000000) == 0 { // if not empty - // string "272455" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x35) + // string "272455-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x35, 0x2d, 0x33) if z.SharingResponseType == nil { o = msgp.AppendNil(o) } else { @@ -3459,8 +3459,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x100000000000) == 0 { // if not empty - // string "272526" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x32, 0x36) + // string "272526-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x32, 0x36, 0x2d, 0x33) if z.SharingRoamLog == nil { o = msgp.AppendNil(o) } else { @@ -3468,8 +3468,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x200000000000) == 0 { // if not empty - // string "272453" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x33) + // string "272453-64" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x34, 0x35, 0x33, 0x2d, 0x36, 0x34) if z.SharingStart == nil { o = msgp.AppendNil(o) } else { @@ -3477,8 +3477,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x400000000000) == 0 { // if not empty - // string "272384" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x33, 0x38, 0x34) + // string "272384-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x33, 0x38, 0x34, 0x2d, 0x33) if z.SharingStatus == nil { o = msgp.AppendNil(o) } else { @@ -3486,8 +3486,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x800000000000) == 0 { // if not empty - // string "272454" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x34) + // string "272454-64" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x34, 0x35, 0x34, 0x2d, 0x36, 0x34) if z.SharingStop == nil { o = msgp.AppendNil(o) } else { @@ -3495,8 +3495,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x1000000000000) == 0 { // if not empty - // string "272576" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x37, 0x36) + // string "272576-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x37, 0x36, 0x2d, 0x33) if z.SharingSyncFlags == nil { o = msgp.AppendNil(o) } else { @@ -3504,8 +3504,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x2000000000000) == 0 { // if not empty - // string "272458" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x35, 0x38) + // string "272458-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x35, 0x38, 0x2d, 0x33) if z.SharingSyncInterval == nil { o = msgp.AppendNil(o) } else { @@ -3513,8 +3513,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x4000000000000) == 0 { // if not empty - // string "272460" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x34, 0x36, 0x30) + // string "272460-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x34, 0x36, 0x30, 0x2d, 0x33) if z.SharingTimeToLive == nil { o = msgp.AppendNil(o) } else { @@ -3522,8 +3522,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x8000000000000) == 0 { // if not empty - // string "272550" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x35, 0x30) + // string "272550-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x35, 0x30, 0x2d, 0x33) if z.SharingTimeToLiveAuto == nil { o = msgp.AppendNil(o) } else { @@ -3531,8 +3531,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x10000000000000) == 0 { // if not empty - // string "272514" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x34) + // string "272514-3" + o = append(o, 0xa8, 0x32, 0x37, 0x32, 0x35, 0x31, 0x34, 0x2d, 0x33) if z.SharingWorkingHoursDays == nil { o = msgp.AppendNil(o) } else { @@ -3540,8 +3540,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x20000000000000) == 0 { // if not empty - // string "272513" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x33) + // string "272513-64" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x35, 0x31, 0x33, 0x2d, 0x36, 0x34) if z.SharingWorkingHoursEnd == nil { o = msgp.AppendNil(o) } else { @@ -3549,8 +3549,8 @@ func (z *Sharing) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask[0] & 0x40000000000000) == 0 { // if not empty - // string "272512" - o = append(o, 0xa6, 0x32, 0x37, 0x32, 0x35, 0x31, 0x32) + // string "272512-64" + o = append(o, 0xa9, 0x32, 0x37, 0x32, 0x35, 0x31, 0x32, 0x2d, 0x36, 0x34) if z.SharingWorkingHoursStart == nil { o = msgp.AppendNil(o) } else { @@ -3683,7 +3683,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "272425": + case "272425-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3700,7 +3700,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272545": + case "272545-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3717,7 +3717,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272423": + case "272423-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3734,7 +3734,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272452": + case "272452-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3751,7 +3751,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272517": + case "272517-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3768,7 +3768,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272516": + case "272516-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3785,7 +3785,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272459": + case "272459-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3802,7 +3802,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272449": + case "272449-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3819,7 +3819,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272394": + case "272394-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3836,7 +3836,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272424": + case "272424-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3853,7 +3853,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272391": + case "272391-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3870,7 +3870,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272392": + case "272392-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3887,7 +3887,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272549": + case "272549-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3904,7 +3904,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272431": + case "272431-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3921,7 +3921,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272525": + case "272525-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3938,7 +3938,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272451": + case "272451-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3955,7 +3955,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272399": + case "272399-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3972,7 +3972,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272398": + case "272398-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -3989,7 +3989,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272521": + case "272521-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4006,7 +4006,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272420": + case "272420-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4023,7 +4023,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272416": + case "272416-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4040,7 +4040,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272430": + case "272430-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4057,7 +4057,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272427": + case "272427-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4074,7 +4074,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272395": + case "272395-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4091,7 +4091,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272386": + case "272386-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4108,7 +4108,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272387": + case "272387-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4125,7 +4125,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272519": + case "272519-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4142,7 +4142,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272518": + case "272518-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4159,7 +4159,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272426": + case "272426-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4176,7 +4176,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272523": + case "272523-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4193,7 +4193,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272463": + case "272463-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4210,7 +4210,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272524": + case "272524-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4227,7 +4227,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272450": + case "272450-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4244,7 +4244,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272527": + case "272527-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4261,7 +4261,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272389": + case "272389-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4278,7 +4278,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272397": + case "272397-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4295,7 +4295,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272388": + case "272388-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4312,7 +4312,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272520": + case "272520-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4329,7 +4329,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272429": + case "272429-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4346,7 +4346,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272390": + case "272390-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4363,7 +4363,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272396": + case "272396-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4380,7 +4380,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272555": + case "272555-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4397,7 +4397,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272456": + case "272456-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4414,7 +4414,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272455": + case "272455-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4431,7 +4431,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272526": + case "272526-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4448,7 +4448,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272453": + case "272453-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4465,7 +4465,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272384": + case "272384-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4482,7 +4482,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272454": + case "272454-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4499,7 +4499,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272576": + case "272576-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4516,7 +4516,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272458": + case "272458-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4533,7 +4533,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272460": + case "272460-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4550,7 +4550,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272550": + case "272550-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4567,7 +4567,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272514": + case "272514-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4584,7 +4584,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272513": + case "272513-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4601,7 +4601,7 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "272512": + case "272512-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -4887,331 +4887,331 @@ func (z *Sharing) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Sharing) Msgsize() (s int) { - s = 3 + 7 + s = 3 + 9 if z.SharingAnonymity == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.SharingBrowseUrl == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingBrowseUrl) } - s += 7 + s += 9 if z.SharingCapabilities == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.SharingConfigurationUrl == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingConfigurationUrl) } - s += 7 + s += 10 if z.SharingDataRangeEnd == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.SharingDataRangeStart == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.SharingDetail == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.SharingExtensionXml == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingExtensionXml) } - s += 7 + s += 9 if z.SharingFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.SharingFlavor == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.SharingInitiatorName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingInitiatorName) } - s += 7 + s += 10 if z.SharingInitiatorSmtp == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingInitiatorSmtp) } - s += 7 + s += 10 if z.SharingLastAutoSyncTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.SharingLastSyncTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.SharingLocalComment == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingLocalComment) } - s += 7 + s += 10 if z.SharingLocalLastModificationTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.SharingLocalName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingLocalName) } - s += 7 + s += 10 if z.SharingLocalPath == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingLocalPath) } - s += 7 + s += 10 if z.SharingLocalStoreUid == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingLocalStoreUid) } - s += 7 + s += 10 if z.SharingLocalType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingLocalType) } - s += 7 + s += 10 if z.SharingLocalUid == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingLocalUid) } - s += 7 + s += 10 if z.SharingParticipants == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingParticipants) } - s += 7 + s += 9 if z.SharingPermissions == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.SharingProviderExtension == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingProviderExtension) } - s += 7 + s += 10 if z.SharingProviderName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingProviderName) } - s += 7 + s += 10 if z.SharingProviderUrl == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingProviderUrl) } - s += 7 + s += 9 if z.SharingRangeEnd == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.SharingRangeStart == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.SharingReciprocation == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.SharingRemoteByteSize == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.SharingRemoteComment == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteComment) } - s += 7 + s += 9 if z.SharingRemoteCrc == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.SharingRemoteLastModificationTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.SharingRemoteMessageCount == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.SharingRemoteName == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteName) } - s += 7 + s += 10 if z.SharingRemotePass == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemotePass) } - s += 7 + s += 10 if z.SharingRemotePath == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemotePath) } - s += 7 + s += 10 if z.SharingRemoteStoreUid == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteStoreUid) } - s += 7 + s += 10 if z.SharingRemoteType == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteType) } - s += 7 + s += 10 if z.SharingRemoteUid == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteUid) } - s += 7 + s += 10 if z.SharingRemoteUser == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteUser) } - s += 7 + s += 10 if z.SharingRemoteVersion == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SharingRemoteVersion) } - s += 7 + s += 10 if z.SharingResponseTime == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.SharingResponseType == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.SharingRoamLog == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.SharingStart == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.SharingStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.SharingStop == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.SharingSyncFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.SharingSyncInterval == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.SharingTimeToLive == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.SharingTimeToLiveAuto == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.SharingWorkingHoursDays == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.SharingWorkingHoursEnd == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.SharingWorkingHoursStart == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/spam.pb.go b/pkg/properties/spam.pb.go index 1ce679c..f17ba90 100644 --- a/pkg/properties/spam.pb.go +++ b/pkg/properties/spam.pb.go @@ -44,15 +44,15 @@ type Spam struct { unknownFields protoimpl.UnknownFields // Indicates whether email recipients are to be added to the safe senders list. - JunkAddRecipientsToSafeSendersList *int32 `protobuf:"varint,2,opt,name=junk_add_recipients_to_safe_senders_list,json=junkAddRecipientsToSafeSendersList,proto3,oneof" json:"junk_add_recipients_to_safe_senders_list,omitempty" msg:"24835,omitempty" type:"3,omitempty"` + JunkAddRecipientsToSafeSendersList *int32 `protobuf:"varint,2,opt,name=junk_add_recipients_to_safe_senders_list,json=junkAddRecipientsToSafeSendersList,proto3,oneof" json:"junk_add_recipients_to_safe_senders_list,omitempty" msg:"24835-3,omitempty"` // Indicates whether email addresses of the contacts in the Contacts folder are treated in a special way with respect to the spam filter. - JunkIncludeContacts *int32 `protobuf:"varint,3,opt,name=junk_include_contacts,json=junkIncludeContacts,proto3,oneof" json:"junk_include_contacts,omitempty" msg:"24832,omitempty" type:"3,omitempty"` + JunkIncludeContacts *int32 `protobuf:"varint,3,opt,name=junk_include_contacts,json=junkIncludeContacts,proto3,oneof" json:"junk_include_contacts,omitempty" msg:"24832-3,omitempty"` // Indicates whether messages identified as spam can be permanently deleted. - JunkPermanentlyDelete *int32 `protobuf:"varint,4,opt,name=junk_permanently_delete,json=junkPermanentlyDelete,proto3,oneof" json:"junk_permanently_delete,omitempty" msg:"24834,omitempty" type:"3,omitempty"` + JunkPermanentlyDelete *int32 `protobuf:"varint,4,opt,name=junk_permanently_delete,json=junkPermanentlyDelete,proto3,oneof" json:"junk_permanently_delete,omitempty" msg:"24834-3,omitempty"` // Indicated whether the phishing stamp on a message is to be ignored. - JunkPhishingEnableLinks *bool `protobuf:"varint,5,opt,name=junk_phishing_enable_links,json=junkPhishingEnableLinks,proto3,oneof" json:"junk_phishing_enable_links,omitempty" msg:"24839,omitempty" type:"11,omitempty"` + JunkPhishingEnableLinks *bool `protobuf:"varint,5,opt,name=junk_phishing_enable_links,json=junkPhishingEnableLinks,proto3,oneof" json:"junk_phishing_enable_links,omitempty" msg:"24839-11,omitempty"` // Indicates how aggressively incoming email is to be sent to the Junk Email folder. - JunkThreshold *int32 `protobuf:"varint,6,opt,name=junk_threshold,json=junkThreshold,proto3,oneof" json:"junk_threshold,omitempty" msg:"24833,omitempty" type:"3,omitempty"` + JunkThreshold *int32 `protobuf:"varint,6,opt,name=junk_threshold,json=junkThreshold,proto3,oneof" json:"junk_threshold,omitempty" msg:"24833-3,omitempty"` } func (x *Spam) Reset() { diff --git a/pkg/properties/spam.pb_gen.go b/pkg/properties/spam.pb_gen.go index 1baa177..281507d 100644 --- a/pkg/properties/spam.pb_gen.go +++ b/pkg/properties/spam.pb_gen.go @@ -24,7 +24,7 @@ func (z *Spam) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "24835": + case "24835-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Spam) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "24832": + case "24832-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Spam) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "24834": + case "24834-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Spam) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "24839": + case "24839-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Spam) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "24833": + case "24833-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -159,8 +159,8 @@ func (z *Spam) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // write "24835" - err = en.Append(0xa5, 0x32, 0x34, 0x38, 0x33, 0x35) + // write "24835-3" + err = en.Append(0xa7, 0x32, 0x34, 0x38, 0x33, 0x35, 0x2d, 0x33) if err != nil { return } @@ -178,8 +178,8 @@ func (z *Spam) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // write "24832" - err = en.Append(0xa5, 0x32, 0x34, 0x38, 0x33, 0x32) + // write "24832-3" + err = en.Append(0xa7, 0x32, 0x34, 0x38, 0x33, 0x32, 0x2d, 0x33) if err != nil { return } @@ -197,8 +197,8 @@ func (z *Spam) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // write "24834" - err = en.Append(0xa5, 0x32, 0x34, 0x38, 0x33, 0x34) + // write "24834-3" + err = en.Append(0xa7, 0x32, 0x34, 0x38, 0x33, 0x34, 0x2d, 0x33) if err != nil { return } @@ -216,8 +216,8 @@ func (z *Spam) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // write "24839" - err = en.Append(0xa5, 0x32, 0x34, 0x38, 0x33, 0x39) + // write "24839-11" + err = en.Append(0xa8, 0x32, 0x34, 0x38, 0x33, 0x39, 0x2d, 0x31, 0x31) if err != nil { return } @@ -235,8 +235,8 @@ func (z *Spam) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "24833" - err = en.Append(0xa5, 0x32, 0x34, 0x38, 0x33, 0x33) + // write "24833-3" + err = en.Append(0xa7, 0x32, 0x34, 0x38, 0x33, 0x33, 0x2d, 0x33) if err != nil { return } @@ -288,8 +288,8 @@ func (z *Spam) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // string "24835" - o = append(o, 0xa5, 0x32, 0x34, 0x38, 0x33, 0x35) + // string "24835-3" + o = append(o, 0xa7, 0x32, 0x34, 0x38, 0x33, 0x35, 0x2d, 0x33) if z.JunkAddRecipientsToSafeSendersList == nil { o = msgp.AppendNil(o) } else { @@ -297,8 +297,8 @@ func (z *Spam) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // string "24832" - o = append(o, 0xa5, 0x32, 0x34, 0x38, 0x33, 0x32) + // string "24832-3" + o = append(o, 0xa7, 0x32, 0x34, 0x38, 0x33, 0x32, 0x2d, 0x33) if z.JunkIncludeContacts == nil { o = msgp.AppendNil(o) } else { @@ -306,8 +306,8 @@ func (z *Spam) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // string "24834" - o = append(o, 0xa5, 0x32, 0x34, 0x38, 0x33, 0x34) + // string "24834-3" + o = append(o, 0xa7, 0x32, 0x34, 0x38, 0x33, 0x34, 0x2d, 0x33) if z.JunkPermanentlyDelete == nil { o = msgp.AppendNil(o) } else { @@ -315,8 +315,8 @@ func (z *Spam) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // string "24839" - o = append(o, 0xa5, 0x32, 0x34, 0x38, 0x33, 0x39) + // string "24839-11" + o = append(o, 0xa8, 0x32, 0x34, 0x38, 0x33, 0x39, 0x2d, 0x31, 0x31) if z.JunkPhishingEnableLinks == nil { o = msgp.AppendNil(o) } else { @@ -324,8 +324,8 @@ func (z *Spam) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "24833" - o = append(o, 0xa5, 0x32, 0x34, 0x38, 0x33, 0x33) + // string "24833-3" + o = append(o, 0xa7, 0x32, 0x34, 0x38, 0x33, 0x33, 0x2d, 0x33) if z.JunkThreshold == nil { o = msgp.AppendNil(o) } else { @@ -353,7 +353,7 @@ func (z *Spam) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "24835": + case "24835-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -370,7 +370,7 @@ func (z *Spam) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "24832": + case "24832-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -387,7 +387,7 @@ func (z *Spam) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "24834": + case "24834-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -404,7 +404,7 @@ func (z *Spam) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "24839": + case "24839-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -421,7 +421,7 @@ func (z *Spam) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "24833": + case "24833-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -452,31 +452,31 @@ func (z *Spam) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Spam) Msgsize() (s int) { - s = 1 + 6 + s = 1 + 8 if z.JunkAddRecipientsToSafeSendersList == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 8 if z.JunkIncludeContacts == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 8 if z.JunkPermanentlyDelete == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.JunkPhishingEnableLinks == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 6 + s += 8 if z.JunkThreshold == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/task.pb.go b/pkg/properties/task.pb.go index 95186ff..8c47381 100644 --- a/pkg/properties/task.pb.go +++ b/pkg/properties/task.pb.go @@ -44,83 +44,83 @@ type Task struct { unknownFields protoimpl.UnknownFields // Contains an index identifying one of a set of pre-defined text strings to be associated with the flag. - FlagString *int32 `protobuf:"varint,1,opt,name=flag_string,json=flagString,proto3,oneof" json:"flag_string,omitempty" msg:"267648,omitempty" type:"3,omitempty"` + FlagString *int32 `protobuf:"varint,1,opt,name=flag_string,json=flagString,proto3,oneof" json:"flag_string,omitempty" msg:"267648-3,omitempty"` // Indicates whether a time-flagged Message object is complete. - PercentComplete *float64 `protobuf:"fixed64,3,opt,name=percent_complete,json=percentComplete,proto3,oneof" json:"percent_complete,omitempty" msg:"263170,omitempty" type:"5,omitempty"` + PercentComplete *float64 `protobuf:"fixed64,3,opt,name=percent_complete,json=percentComplete,proto3,oneof" json:"percent_complete,omitempty" msg:"263170-5,omitempty"` // Indicates the acceptance state of the task. - TaskAcceptanceState *int32 `protobuf:"varint,4,opt,name=task_acceptance_state,json=taskAcceptanceState,proto3,oneof" json:"task_acceptance_state,omitempty" msg:"263242,omitempty" type:"3,omitempty"` + TaskAcceptanceState *int32 `protobuf:"varint,4,opt,name=task_acceptance_state,json=taskAcceptanceState,proto3,oneof" json:"task_acceptance_state,omitempty" msg:"263242-3,omitempty"` // Indicates whether a task assignee has replied to a task request for this Task object. - TaskAccepted *bool `protobuf:"varint,5,opt,name=task_accepted,json=taskAccepted,proto3,oneof" json:"task_accepted,omitempty" msg:"263176,omitempty" type:"11,omitempty"` + TaskAccepted *bool `protobuf:"varint,5,opt,name=task_accepted,json=taskAccepted,proto3,oneof" json:"task_accepted,omitempty" msg:"263176-11,omitempty"` // Indicates the number of minutes that the user actually spent working on a task. - TaskActualEffort *int32 `protobuf:"varint,6,opt,name=task_actual_effort,json=taskActualEffort,proto3,oneof" json:"task_actual_effort,omitempty" msg:"263200,omitempty" type:"3,omitempty"` + TaskActualEffort *int32 `protobuf:"varint,6,opt,name=task_actual_effort,json=taskActualEffort,proto3,oneof" json:"task_actual_effort,omitempty" msg:"263200-3,omitempty"` // Specifies the name of the user that last assigned the task. - TaskAssigner *string `protobuf:"bytes,7,opt,name=task_assigner,json=taskAssigner,proto3,oneof" json:"task_assigner,omitempty" msg:"263233,omitempty" type:"31,omitempty"` + TaskAssigner *string `protobuf:"bytes,7,opt,name=task_assigner,json=taskAssigner,proto3,oneof" json:"task_assigner,omitempty" msg:"263233-31,omitempty"` // Indicates that the task is complete. - TaskComplete *bool `protobuf:"varint,9,opt,name=task_complete,json=taskComplete,proto3,oneof" json:"task_complete,omitempty" msg:"263212,omitempty" type:"11,omitempty"` + TaskComplete *bool `protobuf:"varint,9,opt,name=task_complete,json=taskComplete,proto3,oneof" json:"task_complete,omitempty" msg:"263212-11,omitempty"` // The client can set this property, but it has no impact on the Task-Related Objects Protocol and is ignored by the server. - TaskCustomFlags *int32 `protobuf:"varint,10,opt,name=task_custom_flags,json=taskCustomFlags,proto3,oneof" json:"task_custom_flags,omitempty" msg:"263273,omitempty" type:"3,omitempty"` + TaskCustomFlags *int32 `protobuf:"varint,10,opt,name=task_custom_flags,json=taskCustomFlags,proto3,oneof" json:"task_custom_flags,omitempty" msg:"263273-3,omitempty"` // Specifies the date when the user completed work on the task. - TaskDateCompleted *int64 `protobuf:"varint,11,opt,name=task_date_completed,json=taskDateCompleted,proto3,oneof" json:"task_date_completed,omitempty" msg:"263183,omitempty" type:"64,omitempty"` + TaskDateCompleted *int64 `protobuf:"varint,11,opt,name=task_date_completed,json=taskDateCompleted,proto3,oneof" json:"task_date_completed,omitempty" msg:"263183-64,omitempty"` // Indicates whether new occurrences remain to be generated. - TaskDeadOccurrence *bool `protobuf:"varint,12,opt,name=task_dead_occurrence,json=taskDeadOccurrence,proto3,oneof" json:"task_dead_occurrence,omitempty" msg:"263177,omitempty" type:"11,omitempty"` + TaskDeadOccurrence *bool `protobuf:"varint,12,opt,name=task_dead_occurrence,json=taskDeadOccurrence,proto3,oneof" json:"task_dead_occurrence,omitempty" msg:"263177-11,omitempty"` // Specifies the date by which the user expects work on the task to be complete. - TaskDueDate *int64 `protobuf:"varint,13,opt,name=task_due_date,json=taskDueDate,proto3,oneof" json:"task_due_date,omitempty" msg:"263173,omitempty" type:"64,omitempty"` + TaskDueDate *int64 `protobuf:"varint,13,opt,name=task_due_date,json=taskDueDate,proto3,oneof" json:"task_due_date,omitempty" msg:"263173-64,omitempty"` // Indicates the number of minutes that the user expects to work on a task. - TaskEstimatedEffort *int32 `protobuf:"varint,14,opt,name=task_estimated_effort,json=taskEstimatedEffort,proto3,oneof" json:"task_estimated_effort,omitempty" msg:"263201,omitempty" type:"3,omitempty"` + TaskEstimatedEffort *int32 `protobuf:"varint,14,opt,name=task_estimated_effort,json=taskEstimatedEffort,proto3,oneof" json:"task_estimated_effort,omitempty" msg:"263201-3,omitempty"` // Indicates that the Task object was originally created by the action of the current user or user agent instead of by the processing of a task request. - TaskfCreator *bool `protobuf:"varint,15,opt,name=taskf_creator,json=taskfCreator,proto3,oneof" json:"taskf_creator,omitempty" msg:"263214,omitempty" type:"11,omitempty"` + TaskfCreator *bool `protobuf:"varint,15,opt,name=taskf_creator,json=taskfCreator,proto3,oneof" json:"taskf_creator,omitempty" msg:"263214-11,omitempty"` // Indicates the accuracy of the PidLidTaskOwner property (section 2.328). - TaskfFixOffline *bool `protobuf:"varint,16,opt,name=taskf_fix_offline,json=taskfFixOffline,proto3,oneof" json:"taskf_fix_offline,omitempty" msg:"263244,omitempty" type:"11,omitempty"` + TaskfFixOffline *bool `protobuf:"varint,16,opt,name=taskf_fix_offline,json=taskfFixOffline,proto3,oneof" json:"taskf_fix_offline,omitempty" msg:"263244-11,omitempty"` // Indicates whether the task includes a recurrence pattern. - TaskfRecurring *bool `protobuf:"varint,17,opt,name=taskf_recurring,json=taskfRecurring,proto3,oneof" json:"taskf_recurring,omitempty" msg:"263238,omitempty" type:"11,omitempty"` + TaskfRecurring *bool `protobuf:"varint,17,opt,name=taskf_recurring,json=taskfRecurring,proto3,oneof" json:"taskf_recurring,omitempty" msg:"263238-11,omitempty"` // Indicates the type of change that was last made to the Task object. - TaskHistory *int32 `protobuf:"varint,19,opt,name=task_history,json=taskHistory,proto3,oneof" json:"task_history,omitempty" msg:"263210,omitempty" type:"3,omitempty"` + TaskHistory *int32 `protobuf:"varint,19,opt,name=task_history,json=taskHistory,proto3,oneof" json:"task_history,omitempty" msg:"263210-3,omitempty"` // Contains the name of the user who most recently assigned the task, or the user to whom it was most recently assigned. - TaskLastDelegate *string `protobuf:"bytes,20,opt,name=task_last_delegate,json=taskLastDelegate,proto3,oneof" json:"task_last_delegate,omitempty" msg:"263237,omitempty" type:"31,omitempty"` + TaskLastDelegate *string `protobuf:"bytes,20,opt,name=task_last_delegate,json=taskLastDelegate,proto3,oneof" json:"task_last_delegate,omitempty" msg:"263237-31,omitempty"` // Contains the date and time of the most recent change made to the Task object. - TaskLastUpdate *int64 `protobuf:"varint,21,opt,name=task_last_update,json=taskLastUpdate,proto3,oneof" json:"task_last_update,omitempty" msg:"263205,omitempty" type:"64,omitempty"` + TaskLastUpdate *int64 `protobuf:"varint,21,opt,name=task_last_update,json=taskLastUpdate,proto3,oneof" json:"task_last_update,omitempty" msg:"263205-64,omitempty"` // Contains the name of the most recent user to have been the owner of the task. - TaskLastUser *string `protobuf:"bytes,22,opt,name=task_last_user,json=taskLastUser,proto3,oneof" json:"task_last_user,omitempty" msg:"263234,omitempty" type:"31,omitempty"` + TaskLastUser *string `protobuf:"bytes,22,opt,name=task_last_user,json=taskLastUser,proto3,oneof" json:"task_last_user,omitempty" msg:"263234-31,omitempty"` // Specifies the assignment status of the embedded Task object. - TaskMode *int32 `protobuf:"varint,23,opt,name=task_mode,json=taskMode,proto3,oneof" json:"task_mode,omitempty" msg:"267304,omitempty" type:"3,omitempty"` + TaskMode *int32 `protobuf:"varint,23,opt,name=task_mode,json=taskMode,proto3,oneof" json:"task_mode,omitempty" msg:"267304-3,omitempty"` // Provides optimization hints about the recipients of a Task object. - TaskMultipleRecipients *int32 `protobuf:"varint,24,opt,name=task_multiple_recipients,json=taskMultipleRecipients,proto3,oneof" json:"task_multiple_recipients,omitempty" msg:"263232,omitempty" type:"3,omitempty"` + TaskMultipleRecipients *int32 `protobuf:"varint,24,opt,name=task_multiple_recipients,json=taskMultipleRecipients,proto3,oneof" json:"task_multiple_recipients,omitempty" msg:"263232-3,omitempty"` // Not used. The client can set this property, but it has no impact on the Task-Related Objects Protocol and is ignored by the server. - TaskNoCompute *bool `protobuf:"varint,25,opt,name=task_no_compute,json=taskNoCompute,proto3,oneof" json:"task_no_compute,omitempty" msg:"263236,omitempty" type:"11,omitempty"` + TaskNoCompute *bool `protobuf:"varint,25,opt,name=task_no_compute,json=taskNoCompute,proto3,oneof" json:"task_no_compute,omitempty" msg:"263236-11,omitempty"` // Provides an aid to custom sorting of Task objects. - TaskOrdinal *int32 `protobuf:"varint,26,opt,name=task_ordinal,json=taskOrdinal,proto3,oneof" json:"task_ordinal,omitempty" msg:"263235,omitempty" type:"3,omitempty"` + TaskOrdinal *int32 `protobuf:"varint,26,opt,name=task_ordinal,json=taskOrdinal,proto3,oneof" json:"task_ordinal,omitempty" msg:"263235-3,omitempty"` // Contains the name of the owner of the task. - TaskOwner *string `protobuf:"bytes,27,opt,name=task_owner,json=taskOwner,proto3,oneof" json:"task_owner,omitempty" msg:"263215,omitempty" type:"31,omitempty"` + TaskOwner *string `protobuf:"bytes,27,opt,name=task_owner,json=taskOwner,proto3,oneof" json:"task_owner,omitempty" msg:"263215-31,omitempty"` // Indicates the role of the current user relative to the Task object. - TaskOwnership *int32 `protobuf:"varint,28,opt,name=task_ownership,json=taskOwnership,proto3,oneof" json:"task_ownership,omitempty" msg:"263241,omitempty" type:"3,omitempty"` + TaskOwnership *int32 `protobuf:"varint,28,opt,name=task_ownership,json=taskOwnership,proto3,oneof" json:"task_ownership,omitempty" msg:"263241-3,omitempty"` // Indicates whether future instances of recurring tasks need reminders, even though the value of the PidLidReminderSet property (section 2.222) is 0x00. - TaskResetReminder *bool `protobuf:"varint,30,opt,name=task_reset_reminder,json=taskResetReminder,proto3,oneof" json:"task_reset_reminder,omitempty" msg:"263175,omitempty" type:"11,omitempty"` + TaskResetReminder *bool `protobuf:"varint,30,opt,name=task_reset_reminder,json=taskResetReminder,proto3,oneof" json:"task_reset_reminder,omitempty" msg:"263175-11,omitempty"` // Not used. The client can set this property, but it has no impact on the Task-Related Objects Protocol and is ignored by the server. - TaskRole *string `protobuf:"bytes,31,opt,name=task_role,json=taskRole,proto3,oneof" json:"task_role,omitempty" msg:"263239,omitempty" type:"31,omitempty"` + TaskRole *string `protobuf:"bytes,31,opt,name=task_role,json=taskRole,proto3,oneof" json:"task_role,omitempty" msg:"263239-31,omitempty"` // Specifies the date on which the user expects work on the task to begin. - TaskStartDate *int64 `protobuf:"varint,32,opt,name=task_start_date,json=taskStartDate,proto3,oneof" json:"task_start_date,omitempty" msg:"263172,omitempty" type:"64,omitempty"` + TaskStartDate *int64 `protobuf:"varint,32,opt,name=task_start_date,json=taskStartDate,proto3,oneof" json:"task_start_date,omitempty" msg:"263172-64,omitempty"` // Indicates the current assignment state of the Task object. - TaskState *int32 `protobuf:"varint,33,opt,name=task_state,json=taskState,proto3,oneof" json:"task_state,omitempty" msg:"263203,omitempty" type:"3,omitempty"` + TaskState *int32 `protobuf:"varint,33,opt,name=task_state,json=taskState,proto3,oneof" json:"task_state,omitempty" msg:"263203-3,omitempty"` // Specifies the status of a task. - TaskStatus *int32 `protobuf:"varint,34,opt,name=task_status,json=taskStatus,proto3,oneof" json:"task_status,omitempty" msg:"263169,omitempty" type:"3,omitempty"` + TaskStatus *int32 `protobuf:"varint,34,opt,name=task_status,json=taskStatus,proto3,oneof" json:"task_status,omitempty" msg:"263169-3,omitempty"` // Indicates whether the task assignee has been requested to send an email message update upon completion of the assigned task. - TaskStatusOnComplete *bool `protobuf:"varint,35,opt,name=task_status_on_complete,json=taskStatusOnComplete,proto3,oneof" json:"task_status_on_complete,omitempty" msg:"263209,omitempty" type:"11,omitempty"` + TaskStatusOnComplete *bool `protobuf:"varint,35,opt,name=task_status_on_complete,json=taskStatusOnComplete,proto3,oneof" json:"task_status_on_complete,omitempty" msg:"263209-11,omitempty"` // Indicates whether the task assignee has been requested to send a task update when the assigned Task object changes. - TaskUpdates *bool `protobuf:"varint,36,opt,name=task_updates,json=taskUpdates,proto3,oneof" json:"task_updates,omitempty" msg:"263211,omitempty" type:"11,omitempty"` + TaskUpdates *bool `protobuf:"varint,36,opt,name=task_updates,json=taskUpdates,proto3,oneof" json:"task_updates,omitempty" msg:"263211-11,omitempty"` // Indicates which copy is the latest update of a Task object. - TaskVersion *int32 `protobuf:"varint,37,opt,name=task_version,json=taskVersion,proto3,oneof" json:"task_version,omitempty" msg:"263202,omitempty" type:"3,omitempty"` + TaskVersion *int32 `protobuf:"varint,37,opt,name=task_version,json=taskVersion,proto3,oneof" json:"task_version,omitempty" msg:"263202-3,omitempty"` // This property is set by the client but is ignored by the server. - TeamTask *bool `protobuf:"varint,38,opt,name=team_task,json=teamTask,proto3,oneof" json:"team_task,omitempty" msg:"263171,omitempty" type:"11,omitempty"` + TeamTask *bool `protobuf:"varint,38,opt,name=team_task,json=teamTask,proto3,oneof" json:"team_task,omitempty" msg:"263171-11,omitempty"` // Contains the current time, in UTC, which is used to determine the sort order of objects in a consolidated to-do list. - ToDoOrdinalDate *int64 `protobuf:"varint,39,opt,name=to_do_ordinal_date,json=toDoOrdinalDate,proto3,oneof" json:"to_do_ordinal_date,omitempty" msg:"267584,omitempty" type:"64,omitempty"` + ToDoOrdinalDate *int64 `protobuf:"varint,39,opt,name=to_do_ordinal_date,json=toDoOrdinalDate,proto3,oneof" json:"to_do_ordinal_date,omitempty" msg:"267584-64,omitempty"` // Contains the numerals 0 through 9 that are used to break a tie when the PidLidToDoOrdinalDate property (section 2.344) is used to perform a sort of objects. - ToDoSubOrdinal *string `protobuf:"bytes,40,opt,name=to_do_sub_ordinal,json=toDoSubOrdinal,proto3,oneof" json:"to_do_sub_ordinal,omitempty" msg:"267585,omitempty" type:"31,omitempty"` + ToDoSubOrdinal *string `protobuf:"bytes,40,opt,name=to_do_sub_ordinal,json=toDoSubOrdinal,proto3,oneof" json:"to_do_sub_ordinal,omitempty" msg:"267585-31,omitempty"` // Contains user-specifiable text to identify this Message object in a consolidated to-do list. - ToDoTitle *string `protobuf:"bytes,41,opt,name=to_do_title,json=toDoTitle,proto3,oneof" json:"to_do_title,omitempty" msg:"267588,omitempty" type:"31,omitempty"` + ToDoTitle *string `protobuf:"bytes,41,opt,name=to_do_title,json=toDoTitle,proto3,oneof" json:"to_do_title,omitempty" msg:"267588-31,omitempty"` // Contains the value of the PidTagMessageDeliveryTime property (section 2.789) when modifying the PidLidFlagRequest property (section 2.136). - ValidFlagStringProof *int64 `protobuf:"varint,42,opt,name=valid_flag_string_proof,json=validFlagStringProof,proto3,oneof" json:"valid_flag_string_proof,omitempty" msg:"267631,omitempty" type:"64,omitempty"` + ValidFlagStringProof *int64 `protobuf:"varint,42,opt,name=valid_flag_string_proof,json=validFlagStringProof,proto3,oneof" json:"valid_flag_string_proof,omitempty" msg:"267631-64,omitempty"` // Contains a positive number whose negative is less than or equal to the value of the PidLidTaskOrdinal property (section 2.327) of all of the Task objects in the folder. - OrdinalMost *int32 `protobuf:"varint,43,opt,name=ordinal_most,json=ordinalMost,proto3,oneof" json:"ordinal_most,omitempty" msg:"14050,omitempty" type:"3,omitempty"` + OrdinalMost *int32 `protobuf:"varint,43,opt,name=ordinal_most,json=ordinalMost,proto3,oneof" json:"ordinal_most,omitempty" msg:"14050-3,omitempty"` } func (x *Task) Reset() { diff --git a/pkg/properties/task.pb_gen.go b/pkg/properties/task.pb_gen.go index 6ccc36f..290f0ec 100644 --- a/pkg/properties/task.pb_gen.go +++ b/pkg/properties/task.pb_gen.go @@ -24,7 +24,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } switch msgp.UnsafeString(field) { - case "267648": + case "267648-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -42,7 +42,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263170": + case "263170-5": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -60,7 +60,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263242": + case "263242-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -78,7 +78,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263176": + case "263176-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -96,7 +96,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263200": + case "263200-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -114,7 +114,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263233": + case "263233-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -132,7 +132,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263212": + case "263212-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -150,7 +150,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263273": + case "263273-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -168,7 +168,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263183": + case "263183-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263177": + case "263177-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263173": + case "263173-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263201": + case "263201-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263214": + case "263214-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263244": + case "263244-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -276,7 +276,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263238": + case "263238-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -294,7 +294,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263210": + case "263210-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -312,7 +312,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263237": + case "263237-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -330,7 +330,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263205": + case "263205-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -348,7 +348,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263234": + case "263234-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -366,7 +366,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267304": + case "267304-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -384,7 +384,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263232": + case "263232-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -402,7 +402,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263236": + case "263236-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -420,7 +420,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263235": + case "263235-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -438,7 +438,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263215": + case "263215-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -456,7 +456,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263241": + case "263241-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -474,7 +474,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263175": + case "263175-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -492,7 +492,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263239": + case "263239-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -510,7 +510,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263172": + case "263172-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -528,7 +528,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263203": + case "263203-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -546,7 +546,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263169": + case "263169-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -564,7 +564,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263209": + case "263209-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -582,7 +582,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263211": + case "263211-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -600,7 +600,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263202": + case "263202-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -618,7 +618,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "263171": + case "263171-11": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -636,7 +636,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267584": + case "267584-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -654,7 +654,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267585": + case "267585-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -672,7 +672,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267588": + case "267588-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -690,7 +690,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "267631": + case "267631-64": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -708,7 +708,7 @@ func (z *Task) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "14050": + case "14050-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -907,8 +907,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // write "267648" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x34, 0x38) + // write "267648-3" + err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x36, 0x34, 0x38, 0x2d, 0x33) if err != nil { return } @@ -926,8 +926,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // write "263170" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x30) + // write "263170-5" + err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x30, 0x2d, 0x35) if err != nil { return } @@ -945,8 +945,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // write "263242" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x34, 0x32) + // write "263242-3" + err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x34, 0x32, 0x2d, 0x33) if err != nil { return } @@ -964,8 +964,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // write "263176" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x36) + // write "263176-11" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x31, 0x37, 0x36, 0x2d, 0x31, 0x31) if err != nil { return } @@ -983,8 +983,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // write "263200" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x30) + // write "263200-3" + err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x30, 0x30, 0x2d, 0x33) if err != nil { return } @@ -1002,8 +1002,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // write "263233" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x33) + // write "263233-31" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x32, 0x33, 0x33, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1021,8 +1021,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // write "263212" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x32) + // write "263212-11" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x32, 0x31, 0x32, 0x2d, 0x31, 0x31) if err != nil { return } @@ -1040,8 +1040,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // write "263273" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x37, 0x33) + // write "263273-3" + err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x37, 0x33, 0x2d, 0x33) if err != nil { return } @@ -1059,8 +1059,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // write "263183" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x38, 0x33) + // write "263183-64" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x31, 0x38, 0x33, 0x2d, 0x36, 0x34) if err != nil { return } @@ -1078,8 +1078,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // write "263177" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x37) + // write "263177-11" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x31, 0x37, 0x37, 0x2d, 0x31, 0x31) if err != nil { return } @@ -1097,8 +1097,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // write "263173" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x33) + // write "263173-64" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x31, 0x37, 0x33, 0x2d, 0x36, 0x34) if err != nil { return } @@ -1116,8 +1116,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // write "263201" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x31) + // write "263201-3" + err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x30, 0x31, 0x2d, 0x33) if err != nil { return } @@ -1135,8 +1135,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // write "263214" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x34) + // write "263214-11" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x32, 0x31, 0x34, 0x2d, 0x31, 0x31) if err != nil { return } @@ -1154,8 +1154,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // write "263244" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x34, 0x34) + // write "263244-11" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x32, 0x34, 0x34, 0x2d, 0x31, 0x31) if err != nil { return } @@ -1173,8 +1173,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000) == 0 { // if not empty - // write "263238" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x38) + // write "263238-11" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x32, 0x33, 0x38, 0x2d, 0x31, 0x31) if err != nil { return } @@ -1192,8 +1192,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8000) == 0 { // if not empty - // write "263210" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x30) + // write "263210-3" + err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x31, 0x30, 0x2d, 0x33) if err != nil { return } @@ -1211,8 +1211,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10000) == 0 { // if not empty - // write "263237" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x37) + // write "263237-31" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x32, 0x33, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1230,8 +1230,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20000) == 0 { // if not empty - // write "263205" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x35) + // write "263205-64" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x32, 0x30, 0x35, 0x2d, 0x36, 0x34) if err != nil { return } @@ -1249,8 +1249,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40000) == 0 { // if not empty - // write "263234" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x34) + // write "263234-31" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x32, 0x33, 0x34, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1268,8 +1268,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80000) == 0 { // if not empty - // write "267304" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x34) + // write "267304-3" + err = en.Append(0xa8, 0x32, 0x36, 0x37, 0x33, 0x30, 0x34, 0x2d, 0x33) if err != nil { return } @@ -1287,8 +1287,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100000) == 0 { // if not empty - // write "263232" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x32) + // write "263232-3" + err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x32, 0x2d, 0x33) if err != nil { return } @@ -1306,8 +1306,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200000) == 0 { // if not empty - // write "263236" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x36) + // write "263236-11" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x32, 0x33, 0x36, 0x2d, 0x31, 0x31) if err != nil { return } @@ -1325,8 +1325,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400000) == 0 { // if not empty - // write "263235" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x35) + // write "263235-3" + err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x35, 0x2d, 0x33) if err != nil { return } @@ -1344,8 +1344,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800000) == 0 { // if not empty - // write "263215" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x35) + // write "263215-31" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x32, 0x31, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1363,8 +1363,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000000) == 0 { // if not empty - // write "263241" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x34, 0x31) + // write "263241-3" + err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x34, 0x31, 0x2d, 0x33) if err != nil { return } @@ -1382,8 +1382,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000000) == 0 { // if not empty - // write "263175" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x35) + // write "263175-11" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x31, 0x37, 0x35, 0x2d, 0x31, 0x31) if err != nil { return } @@ -1401,8 +1401,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000000) == 0 { // if not empty - // write "263239" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x39) + // write "263239-31" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x32, 0x33, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1420,8 +1420,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x8000000) == 0 { // if not empty - // write "263172" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x32) + // write "263172-64" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x31, 0x37, 0x32, 0x2d, 0x36, 0x34) if err != nil { return } @@ -1439,8 +1439,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x10000000) == 0 { // if not empty - // write "263203" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x33) + // write "263203-3" + err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x30, 0x33, 0x2d, 0x33) if err != nil { return } @@ -1458,8 +1458,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x20000000) == 0 { // if not empty - // write "263169" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x36, 0x39) + // write "263169-3" + err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x31, 0x36, 0x39, 0x2d, 0x33) if err != nil { return } @@ -1477,8 +1477,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x40000000) == 0 { // if not empty - // write "263209" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x39) + // write "263209-11" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x32, 0x30, 0x39, 0x2d, 0x31, 0x31) if err != nil { return } @@ -1496,8 +1496,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x80000000) == 0 { // if not empty - // write "263211" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x31) + // write "263211-11" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x32, 0x31, 0x31, 0x2d, 0x31, 0x31) if err != nil { return } @@ -1515,8 +1515,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100000000) == 0 { // if not empty - // write "263202" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x32) + // write "263202-3" + err = en.Append(0xa8, 0x32, 0x36, 0x33, 0x32, 0x30, 0x32, 0x2d, 0x33) if err != nil { return } @@ -1534,8 +1534,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200000000) == 0 { // if not empty - // write "263171" - err = en.Append(0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x31) + // write "263171-11" + err = en.Append(0xa9, 0x32, 0x36, 0x33, 0x31, 0x37, 0x31, 0x2d, 0x31, 0x31) if err != nil { return } @@ -1553,8 +1553,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400000000) == 0 { // if not empty - // write "267584" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x35, 0x38, 0x34) + // write "267584-64" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x35, 0x38, 0x34, 0x2d, 0x36, 0x34) if err != nil { return } @@ -1572,8 +1572,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800000000) == 0 { // if not empty - // write "267585" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x35, 0x38, 0x35) + // write "267585-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x35, 0x38, 0x35, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1591,8 +1591,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000000000) == 0 { // if not empty - // write "267588" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x35, 0x38, 0x38) + // write "267588-31" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x35, 0x38, 0x38, 0x2d, 0x33, 0x31) if err != nil { return } @@ -1610,8 +1610,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000000000) == 0 { // if not empty - // write "267631" - err = en.Append(0xa6, 0x32, 0x36, 0x37, 0x36, 0x33, 0x31) + // write "267631-64" + err = en.Append(0xa9, 0x32, 0x36, 0x37, 0x36, 0x33, 0x31, 0x2d, 0x36, 0x34) if err != nil { return } @@ -1629,8 +1629,8 @@ func (z *Task) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x4000000000) == 0 { // if not empty - // write "14050" - err = en.Append(0xa5, 0x31, 0x34, 0x30, 0x35, 0x30) + // write "14050-3" + err = en.Append(0xa7, 0x31, 0x34, 0x30, 0x35, 0x30, 0x2d, 0x33) if err != nil { return } @@ -1818,8 +1818,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { return } if (zb0001Mask & 0x1) == 0 { // if not empty - // string "267648" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x34, 0x38) + // string "267648-3" + o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x36, 0x34, 0x38, 0x2d, 0x33) if z.FlagString == nil { o = msgp.AppendNil(o) } else { @@ -1827,8 +1827,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2) == 0 { // if not empty - // string "263170" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x30) + // string "263170-5" + o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x31, 0x37, 0x30, 0x2d, 0x35) if z.PercentComplete == nil { o = msgp.AppendNil(o) } else { @@ -1836,8 +1836,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4) == 0 { // if not empty - // string "263242" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x34, 0x32) + // string "263242-3" + o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x34, 0x32, 0x2d, 0x33) if z.TaskAcceptanceState == nil { o = msgp.AppendNil(o) } else { @@ -1845,8 +1845,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8) == 0 { // if not empty - // string "263176" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x36) + // string "263176-11" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x31, 0x37, 0x36, 0x2d, 0x31, 0x31) if z.TaskAccepted == nil { o = msgp.AppendNil(o) } else { @@ -1854,8 +1854,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10) == 0 { // if not empty - // string "263200" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x30) + // string "263200-3" + o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x30, 0x30, 0x2d, 0x33) if z.TaskActualEffort == nil { o = msgp.AppendNil(o) } else { @@ -1863,8 +1863,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20) == 0 { // if not empty - // string "263233" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x33) + // string "263233-31" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x32, 0x33, 0x33, 0x2d, 0x33, 0x31) if z.TaskAssigner == nil { o = msgp.AppendNil(o) } else { @@ -1872,8 +1872,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40) == 0 { // if not empty - // string "263212" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x32) + // string "263212-11" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x32, 0x31, 0x32, 0x2d, 0x31, 0x31) if z.TaskComplete == nil { o = msgp.AppendNil(o) } else { @@ -1881,8 +1881,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80) == 0 { // if not empty - // string "263273" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x37, 0x33) + // string "263273-3" + o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x37, 0x33, 0x2d, 0x33) if z.TaskCustomFlags == nil { o = msgp.AppendNil(o) } else { @@ -1890,8 +1890,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // string "263183" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x38, 0x33) + // string "263183-64" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x31, 0x38, 0x33, 0x2d, 0x36, 0x34) if z.TaskDateCompleted == nil { o = msgp.AppendNil(o) } else { @@ -1899,8 +1899,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // string "263177" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x37) + // string "263177-11" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x31, 0x37, 0x37, 0x2d, 0x31, 0x31) if z.TaskDeadOccurrence == nil { o = msgp.AppendNil(o) } else { @@ -1908,8 +1908,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // string "263173" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x33) + // string "263173-64" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x31, 0x37, 0x33, 0x2d, 0x36, 0x34) if z.TaskDueDate == nil { o = msgp.AppendNil(o) } else { @@ -1917,8 +1917,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // string "263201" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x31) + // string "263201-3" + o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x30, 0x31, 0x2d, 0x33) if z.TaskEstimatedEffort == nil { o = msgp.AppendNil(o) } else { @@ -1926,8 +1926,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // string "263214" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x34) + // string "263214-11" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x32, 0x31, 0x34, 0x2d, 0x31, 0x31) if z.TaskfCreator == nil { o = msgp.AppendNil(o) } else { @@ -1935,8 +1935,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // string "263244" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x34, 0x34) + // string "263244-11" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x32, 0x34, 0x34, 0x2d, 0x31, 0x31) if z.TaskfFixOffline == nil { o = msgp.AppendNil(o) } else { @@ -1944,8 +1944,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000) == 0 { // if not empty - // string "263238" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x38) + // string "263238-11" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x32, 0x33, 0x38, 0x2d, 0x31, 0x31) if z.TaskfRecurring == nil { o = msgp.AppendNil(o) } else { @@ -1953,8 +1953,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8000) == 0 { // if not empty - // string "263210" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x30) + // string "263210-3" + o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x31, 0x30, 0x2d, 0x33) if z.TaskHistory == nil { o = msgp.AppendNil(o) } else { @@ -1962,8 +1962,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10000) == 0 { // if not empty - // string "263237" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x37) + // string "263237-31" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x32, 0x33, 0x37, 0x2d, 0x33, 0x31) if z.TaskLastDelegate == nil { o = msgp.AppendNil(o) } else { @@ -1971,8 +1971,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20000) == 0 { // if not empty - // string "263205" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x35) + // string "263205-64" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x32, 0x30, 0x35, 0x2d, 0x36, 0x34) if z.TaskLastUpdate == nil { o = msgp.AppendNil(o) } else { @@ -1980,8 +1980,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40000) == 0 { // if not empty - // string "263234" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x34) + // string "263234-31" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x32, 0x33, 0x34, 0x2d, 0x33, 0x31) if z.TaskLastUser == nil { o = msgp.AppendNil(o) } else { @@ -1989,8 +1989,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80000) == 0 { // if not empty - // string "267304" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x33, 0x30, 0x34) + // string "267304-3" + o = append(o, 0xa8, 0x32, 0x36, 0x37, 0x33, 0x30, 0x34, 0x2d, 0x33) if z.TaskMode == nil { o = msgp.AppendNil(o) } else { @@ -1998,8 +1998,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100000) == 0 { // if not empty - // string "263232" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x32) + // string "263232-3" + o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x32, 0x2d, 0x33) if z.TaskMultipleRecipients == nil { o = msgp.AppendNil(o) } else { @@ -2007,8 +2007,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200000) == 0 { // if not empty - // string "263236" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x36) + // string "263236-11" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x32, 0x33, 0x36, 0x2d, 0x31, 0x31) if z.TaskNoCompute == nil { o = msgp.AppendNil(o) } else { @@ -2016,8 +2016,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400000) == 0 { // if not empty - // string "263235" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x35) + // string "263235-3" + o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x33, 0x35, 0x2d, 0x33) if z.TaskOrdinal == nil { o = msgp.AppendNil(o) } else { @@ -2025,8 +2025,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800000) == 0 { // if not empty - // string "263215" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x35) + // string "263215-31" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x32, 0x31, 0x35, 0x2d, 0x33, 0x31) if z.TaskOwner == nil { o = msgp.AppendNil(o) } else { @@ -2034,8 +2034,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000000) == 0 { // if not empty - // string "263241" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x34, 0x31) + // string "263241-3" + o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x34, 0x31, 0x2d, 0x33) if z.TaskOwnership == nil { o = msgp.AppendNil(o) } else { @@ -2043,8 +2043,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000000) == 0 { // if not empty - // string "263175" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x35) + // string "263175-11" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x31, 0x37, 0x35, 0x2d, 0x31, 0x31) if z.TaskResetReminder == nil { o = msgp.AppendNil(o) } else { @@ -2052,8 +2052,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000000) == 0 { // if not empty - // string "263239" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x33, 0x39) + // string "263239-31" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x32, 0x33, 0x39, 0x2d, 0x33, 0x31) if z.TaskRole == nil { o = msgp.AppendNil(o) } else { @@ -2061,8 +2061,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x8000000) == 0 { // if not empty - // string "263172" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x32) + // string "263172-64" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x31, 0x37, 0x32, 0x2d, 0x36, 0x34) if z.TaskStartDate == nil { o = msgp.AppendNil(o) } else { @@ -2070,8 +2070,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x10000000) == 0 { // if not empty - // string "263203" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x33) + // string "263203-3" + o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x30, 0x33, 0x2d, 0x33) if z.TaskState == nil { o = msgp.AppendNil(o) } else { @@ -2079,8 +2079,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x20000000) == 0 { // if not empty - // string "263169" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x36, 0x39) + // string "263169-3" + o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x31, 0x36, 0x39, 0x2d, 0x33) if z.TaskStatus == nil { o = msgp.AppendNil(o) } else { @@ -2088,8 +2088,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x40000000) == 0 { // if not empty - // string "263209" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x39) + // string "263209-11" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x32, 0x30, 0x39, 0x2d, 0x31, 0x31) if z.TaskStatusOnComplete == nil { o = msgp.AppendNil(o) } else { @@ -2097,8 +2097,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x80000000) == 0 { // if not empty - // string "263211" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x31, 0x31) + // string "263211-11" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x32, 0x31, 0x31, 0x2d, 0x31, 0x31) if z.TaskUpdates == nil { o = msgp.AppendNil(o) } else { @@ -2106,8 +2106,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x100000000) == 0 { // if not empty - // string "263202" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x32, 0x30, 0x32) + // string "263202-3" + o = append(o, 0xa8, 0x32, 0x36, 0x33, 0x32, 0x30, 0x32, 0x2d, 0x33) if z.TaskVersion == nil { o = msgp.AppendNil(o) } else { @@ -2115,8 +2115,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200000000) == 0 { // if not empty - // string "263171" - o = append(o, 0xa6, 0x32, 0x36, 0x33, 0x31, 0x37, 0x31) + // string "263171-11" + o = append(o, 0xa9, 0x32, 0x36, 0x33, 0x31, 0x37, 0x31, 0x2d, 0x31, 0x31) if z.TeamTask == nil { o = msgp.AppendNil(o) } else { @@ -2124,8 +2124,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400000000) == 0 { // if not empty - // string "267584" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x35, 0x38, 0x34) + // string "267584-64" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x35, 0x38, 0x34, 0x2d, 0x36, 0x34) if z.ToDoOrdinalDate == nil { o = msgp.AppendNil(o) } else { @@ -2133,8 +2133,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800000000) == 0 { // if not empty - // string "267585" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x35, 0x38, 0x35) + // string "267585-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x35, 0x38, 0x35, 0x2d, 0x33, 0x31) if z.ToDoSubOrdinal == nil { o = msgp.AppendNil(o) } else { @@ -2142,8 +2142,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000000000) == 0 { // if not empty - // string "267588" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x35, 0x38, 0x38) + // string "267588-31" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x35, 0x38, 0x38, 0x2d, 0x33, 0x31) if z.ToDoTitle == nil { o = msgp.AppendNil(o) } else { @@ -2151,8 +2151,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000000000) == 0 { // if not empty - // string "267631" - o = append(o, 0xa6, 0x32, 0x36, 0x37, 0x36, 0x33, 0x31) + // string "267631-64" + o = append(o, 0xa9, 0x32, 0x36, 0x37, 0x36, 0x33, 0x31, 0x2d, 0x36, 0x34) if z.ValidFlagStringProof == nil { o = msgp.AppendNil(o) } else { @@ -2160,8 +2160,8 @@ func (z *Task) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x4000000000) == 0 { // if not empty - // string "14050" - o = append(o, 0xa5, 0x31, 0x34, 0x30, 0x35, 0x30) + // string "14050-3" + o = append(o, 0xa7, 0x31, 0x34, 0x30, 0x35, 0x30, 0x2d, 0x33) if z.OrdinalMost == nil { o = msgp.AppendNil(o) } else { @@ -2189,7 +2189,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } switch msgp.UnsafeString(field) { - case "267648": + case "267648-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2206,7 +2206,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263170": + case "263170-5": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2223,7 +2223,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263242": + case "263242-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2240,7 +2240,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263176": + case "263176-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2257,7 +2257,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263200": + case "263200-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2274,7 +2274,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263233": + case "263233-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2291,7 +2291,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263212": + case "263212-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2308,7 +2308,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263273": + case "263273-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2325,7 +2325,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263183": + case "263183-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2342,7 +2342,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263177": + case "263177-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2359,7 +2359,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263173": + case "263173-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2376,7 +2376,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263201": + case "263201-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2393,7 +2393,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263214": + case "263214-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2410,7 +2410,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263244": + case "263244-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2427,7 +2427,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263238": + case "263238-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2444,7 +2444,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263210": + case "263210-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2461,7 +2461,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263237": + case "263237-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2478,7 +2478,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263205": + case "263205-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2495,7 +2495,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263234": + case "263234-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2512,7 +2512,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267304": + case "267304-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2529,7 +2529,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263232": + case "263232-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2546,7 +2546,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263236": + case "263236-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2563,7 +2563,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263235": + case "263235-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2580,7 +2580,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263215": + case "263215-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2597,7 +2597,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263241": + case "263241-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2614,7 +2614,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263175": + case "263175-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2631,7 +2631,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263239": + case "263239-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2648,7 +2648,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263172": + case "263172-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2665,7 +2665,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263203": + case "263203-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2682,7 +2682,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263169": + case "263169-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2699,7 +2699,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263209": + case "263209-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2716,7 +2716,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263211": + case "263211-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2733,7 +2733,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263202": + case "263202-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2750,7 +2750,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "263171": + case "263171-11": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2767,7 +2767,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267584": + case "267584-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2784,7 +2784,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267585": + case "267585-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2801,7 +2801,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267588": + case "267588-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2818,7 +2818,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "267631": + case "267631-64": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2835,7 +2835,7 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "14050": + case "14050-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -2866,235 +2866,235 @@ func (z *Task) UnmarshalMsg(bts []byte) (o []byte, err error) { // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message func (z *Task) Msgsize() (s int) { - s = 3 + 7 + s = 3 + 9 if z.FlagString == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.PercentComplete == nil { s += msgp.NilSize } else { s += msgp.Float64Size } - s += 7 + s += 9 if z.TaskAcceptanceState == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.TaskAccepted == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 9 if z.TaskActualEffort == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.TaskAssigner == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TaskAssigner) } - s += 7 + s += 10 if z.TaskComplete == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 9 if z.TaskCustomFlags == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.TaskDateCompleted == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.TaskDeadOccurrence == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.TaskDueDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.TaskEstimatedEffort == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.TaskfCreator == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.TaskfFixOffline == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.TaskfRecurring == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 9 if z.TaskHistory == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.TaskLastDelegate == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TaskLastDelegate) } - s += 7 + s += 10 if z.TaskLastUpdate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.TaskLastUser == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TaskLastUser) } - s += 7 + s += 9 if z.TaskMode == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.TaskMultipleRecipients == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.TaskNoCompute == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 9 if z.TaskOrdinal == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.TaskOwner == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TaskOwner) } - s += 7 + s += 9 if z.TaskOwnership == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.TaskResetReminder == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.TaskRole == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.TaskRole) } - s += 7 + s += 10 if z.TaskStartDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 9 if z.TaskState == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 9 if z.TaskStatus == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.TaskStatusOnComplete == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.TaskUpdates == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 9 if z.TaskVersion == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 7 + s += 10 if z.TeamTask == nil { s += msgp.NilSize } else { s += msgp.BoolSize } - s += 7 + s += 10 if z.ToDoOrdinalDate == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 7 + s += 10 if z.ToDoSubOrdinal == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ToDoSubOrdinal) } - s += 7 + s += 10 if z.ToDoTitle == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.ToDoTitle) } - s += 7 + s += 10 if z.ValidFlagStringProof == nil { s += msgp.NilSize } else { s += msgp.Int64Size } - s += 6 + s += 8 if z.OrdinalMost == nil { s += msgp.NilSize } else { diff --git a/pkg/properties/voicemail.pb.go b/pkg/properties/voicemail.pb.go index d6e1188..6332481 100644 --- a/pkg/properties/voicemail.pb.go +++ b/pkg/properties/voicemail.pb.go @@ -60,17 +60,17 @@ type Voicemail struct { // Contains the name of the caller who left the attached voice message, as provided by the voice network's caller ID system. XVoiceMessageSenderName *string `protobuf:"bytes,9,opt,name=x_voice_message_sender_name,json=xVoiceMessageSenderName,proto3,oneof" json:"x_voice_message_sender_name,omitempty"` // Contains a unique identifier associated with the phone call. - CallId *string `protobuf:"bytes,10,opt,name=call_id,json=callId,proto3,oneof" json:"call_id,omitempty" msg:"26630,omitempty" type:"31,omitempty"` + CallId *string `protobuf:"bytes,10,opt,name=call_id,json=callId,proto3,oneof" json:"call_id,omitempty" msg:"26630-31,omitempty"` // Contains the number of pages in a Fax object. - FaxNumberOfPages *int32 `protobuf:"varint,11,opt,name=fax_number_of_pages,json=faxNumberOfPages,proto3,oneof" json:"fax_number_of_pages,omitempty" msg:"26628,omitempty" type:"3,omitempty"` + FaxNumberOfPages *int32 `protobuf:"varint,11,opt,name=fax_number_of_pages,json=faxNumberOfPages,proto3,oneof" json:"fax_number_of_pages,omitempty" msg:"26628-3,omitempty"` // Contains the telephone number of the caller associated with a voice mail message. - SenderTelephoneNumber *string `protobuf:"bytes,12,opt,name=sender_telephone_number,json=senderTelephoneNumber,proto3,oneof" json:"sender_telephone_number,omitempty" msg:"26626,omitempty" type:"31,omitempty"` + SenderTelephoneNumber *string `protobuf:"bytes,12,opt,name=sender_telephone_number,json=senderTelephoneNumber,proto3,oneof" json:"sender_telephone_number,omitempty" msg:"26626-31,omitempty"` // Contains a list of file names for the audio file attachments that are to be played as part of a message. - VoiceMessageAttachmentOrder *string `protobuf:"bytes,13,opt,name=voice_message_attachment_order,json=voiceMessageAttachmentOrder,proto3,oneof" json:"voice_message_attachment_order,omitempty" msg:"26629,omitempty" type:"31,omitempty"` + VoiceMessageAttachmentOrder *string `protobuf:"bytes,13,opt,name=voice_message_attachment_order,json=voiceMessageAttachmentOrder,proto3,oneof" json:"voice_message_attachment_order,omitempty" msg:"26629-31,omitempty"` // Specifies the length of the attached audio message, in seconds. - VoiceMessageDuration *int32 `protobuf:"varint,14,opt,name=voice_message_duration,json=voiceMessageDuration,proto3,oneof" json:"voice_message_duration,omitempty" msg:"26625,omitempty" type:"3,omitempty"` + VoiceMessageDuration *int32 `protobuf:"varint,14,opt,name=voice_message_duration,json=voiceMessageDuration,proto3,oneof" json:"voice_message_duration,omitempty" msg:"26625-3,omitempty"` // Specifies the name of the caller who left the attached voice message, as provided by the voice network's caller ID system. - VoiceMessageSenderName *string `protobuf:"bytes,15,opt,name=voice_message_sender_name,json=voiceMessageSenderName,proto3,oneof" json:"voice_message_sender_name,omitempty" msg:"26627,omitempty" type:"31,omitempty"` + VoiceMessageSenderName *string `protobuf:"bytes,15,opt,name=voice_message_sender_name,json=voiceMessageSenderName,proto3,oneof" json:"voice_message_sender_name,omitempty" msg:"26627-31,omitempty"` } func (x *Voicemail) Reset() { diff --git a/pkg/properties/voicemail.pb_gen.go b/pkg/properties/voicemail.pb_gen.go index 6705bdb..ba93503 100644 --- a/pkg/properties/voicemail.pb_gen.go +++ b/pkg/properties/voicemail.pb_gen.go @@ -168,7 +168,7 @@ func (z *Voicemail) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26630": + case "26630-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -186,7 +186,7 @@ func (z *Voicemail) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26628": + case "26628-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -204,7 +204,7 @@ func (z *Voicemail) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26626": + case "26626-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -222,7 +222,7 @@ func (z *Voicemail) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26629": + case "26629-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -240,7 +240,7 @@ func (z *Voicemail) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26625": + case "26625-3": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -258,7 +258,7 @@ func (z *Voicemail) DecodeMsg(dc *msgp.Reader) (err error) { return } } - case "26627": + case "26627-31": if dc.IsNil() { err = dc.ReadNil() if err != nil { @@ -461,8 +461,8 @@ func (z *Voicemail) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x100) == 0 { // if not empty - // write "26630" - err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x33, 0x30) + // write "26630-31" + err = en.Append(0xa8, 0x32, 0x36, 0x36, 0x33, 0x30, 0x2d, 0x33, 0x31) if err != nil { return } @@ -480,8 +480,8 @@ func (z *Voicemail) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // write "26628" - err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x32, 0x38) + // write "26628-3" + err = en.Append(0xa7, 0x32, 0x36, 0x36, 0x32, 0x38, 0x2d, 0x33) if err != nil { return } @@ -499,8 +499,8 @@ func (z *Voicemail) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // write "26626" - err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x32, 0x36) + // write "26626-31" + err = en.Append(0xa8, 0x32, 0x36, 0x36, 0x32, 0x36, 0x2d, 0x33, 0x31) if err != nil { return } @@ -518,8 +518,8 @@ func (z *Voicemail) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // write "26629" - err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x32, 0x39) + // write "26629-31" + err = en.Append(0xa8, 0x32, 0x36, 0x36, 0x32, 0x39, 0x2d, 0x33, 0x31) if err != nil { return } @@ -537,8 +537,8 @@ func (z *Voicemail) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // write "26625" - err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x32, 0x35) + // write "26625-3" + err = en.Append(0xa7, 0x32, 0x36, 0x36, 0x32, 0x35, 0x2d, 0x33) if err != nil { return } @@ -556,8 +556,8 @@ func (z *Voicemail) EncodeMsg(en *msgp.Writer) (err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // write "26627" - err = en.Append(0xa5, 0x32, 0x36, 0x36, 0x32, 0x37) + // write "26627-31" + err = en.Append(0xa8, 0x32, 0x36, 0x36, 0x32, 0x37, 0x2d, 0x33, 0x31) if err != nil { return } @@ -669,8 +669,8 @@ func (z *Voicemail) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.AppendString(o, *z.XVoiceMessageSenderName) } if (zb0001Mask & 0x100) == 0 { // if not empty - // string "26630" - o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x33, 0x30) + // string "26630-31" + o = append(o, 0xa8, 0x32, 0x36, 0x36, 0x33, 0x30, 0x2d, 0x33, 0x31) if z.CallId == nil { o = msgp.AppendNil(o) } else { @@ -678,8 +678,8 @@ func (z *Voicemail) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x200) == 0 { // if not empty - // string "26628" - o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x32, 0x38) + // string "26628-3" + o = append(o, 0xa7, 0x32, 0x36, 0x36, 0x32, 0x38, 0x2d, 0x33) if z.FaxNumberOfPages == nil { o = msgp.AppendNil(o) } else { @@ -687,8 +687,8 @@ func (z *Voicemail) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x400) == 0 { // if not empty - // string "26626" - o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x32, 0x36) + // string "26626-31" + o = append(o, 0xa8, 0x32, 0x36, 0x36, 0x32, 0x36, 0x2d, 0x33, 0x31) if z.SenderTelephoneNumber == nil { o = msgp.AppendNil(o) } else { @@ -696,8 +696,8 @@ func (z *Voicemail) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x800) == 0 { // if not empty - // string "26629" - o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x32, 0x39) + // string "26629-31" + o = append(o, 0xa8, 0x32, 0x36, 0x36, 0x32, 0x39, 0x2d, 0x33, 0x31) if z.VoiceMessageAttachmentOrder == nil { o = msgp.AppendNil(o) } else { @@ -705,8 +705,8 @@ func (z *Voicemail) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x1000) == 0 { // if not empty - // string "26625" - o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x32, 0x35) + // string "26625-3" + o = append(o, 0xa7, 0x32, 0x36, 0x36, 0x32, 0x35, 0x2d, 0x33) if z.VoiceMessageDuration == nil { o = msgp.AppendNil(o) } else { @@ -714,8 +714,8 @@ func (z *Voicemail) MarshalMsg(b []byte) (o []byte, err error) { } } if (zb0001Mask & 0x2000) == 0 { // if not empty - // string "26627" - o = append(o, 0xa5, 0x32, 0x36, 0x36, 0x32, 0x37) + // string "26627-31" + o = append(o, 0xa8, 0x32, 0x36, 0x36, 0x32, 0x37, 0x2d, 0x33, 0x31) if z.VoiceMessageSenderName == nil { o = msgp.AppendNil(o) } else { @@ -879,7 +879,7 @@ func (z *Voicemail) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26630": + case "26630-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -896,7 +896,7 @@ func (z *Voicemail) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26628": + case "26628-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -913,7 +913,7 @@ func (z *Voicemail) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26626": + case "26626-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -930,7 +930,7 @@ func (z *Voicemail) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26629": + case "26629-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -947,7 +947,7 @@ func (z *Voicemail) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26625": + case "26625-3": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -964,7 +964,7 @@ func (z *Voicemail) UnmarshalMsg(bts []byte) (o []byte, err error) { return } } - case "26627": + case "26627-31": if msgp.IsNil(bts) { bts, err = msgp.ReadNilBytes(bts) if err != nil { @@ -1043,37 +1043,37 @@ func (z *Voicemail) Msgsize() (s int) { } else { s += msgp.StringPrefixSize + len(*z.XVoiceMessageSenderName) } - s += 6 + s += 9 if z.CallId == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.CallId) } - s += 6 + s += 8 if z.FaxNumberOfPages == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.SenderTelephoneNumber == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.SenderTelephoneNumber) } - s += 6 + s += 9 if z.VoiceMessageAttachmentOrder == nil { s += msgp.NilSize } else { s += msgp.StringPrefixSize + len(*z.VoiceMessageAttachmentOrder) } - s += 6 + s += 8 if z.VoiceMessageDuration == nil { s += msgp.NilSize } else { s += msgp.Int32Size } - s += 6 + s += 9 if z.VoiceMessageSenderName == nil { s += msgp.NilSize } else { diff --git a/pkg/property_reader.go b/pkg/property_reader.go index c6c180f..2e01147 100644 --- a/pkg/property_reader.go +++ b/pkg/property_reader.go @@ -60,7 +60,7 @@ func NewPropertyReader(property Property, heapOnNode *HeapOnNode, file *File, lo // WriteMessagePackValue writes the Message Pack format of the property value. // Used to populate struct fields. func (propertyReader *PropertyReader) WriteMessagePackValue(writer *msgp.Writer) error { - key := fmt.Sprintf("%d", propertyReader.Property.ID) + key := fmt.Sprintf("%d-%d", propertyReader.Property.ID, propertyReader.Property.Type) switch propertyReader.Property.Type { case PropertyTypeString: diff --git a/pkg/writer/table_context_writer.go b/pkg/writer/table_context_writer.go index e698445..2077dae 100644 --- a/pkg/writer/table_context_writer.go +++ b/pkg/writer/table_context_writer.go @@ -28,6 +28,7 @@ import ( "reflect" "slices" "strconv" + "strings" ) // TableContextWriter represents a writer for a pst.TableContext. @@ -95,28 +96,21 @@ func (tableContextWriter *TableContextWriter) GetColumnDescriptors() ([][]byte, continue } - tagPropertyID, ok := propertyField.Tag.Lookup("msg") + tag := strings.ReplaceAll(propertyField.Tag.Get("msg"), ",omitempty", "") - if !ok { + if tag == "" { // No property ID in the tag. - fmt.Printf("Skipping property without ID: %s\n", propertyField.Name) + fmt.Printf("Skipping property without tag: %s\n", propertyField.Name) continue } - tagPropertyType, ok := propertyField.Tag.Lookup("type") - - if !ok { - fmt.Printf("Skipping property without type: %s\n", propertyField.Name) - continue - } - - propertyID, err := strconv.Atoi(tagPropertyID) + propertyID, err := strconv.Atoi(strings.Split(tag, "-")[0]) if err != nil { return nil, eris.Wrap(err, "failed to convert propertyID to int") } - propertyType, err := strconv.Atoi(tagPropertyType) + propertyType, err := strconv.Atoi(strings.Split(tag, "-")[1]) if err != nil { return nil, eris.Wrap(err, "failed to convert propertyType to int") @@ -125,6 +119,8 @@ func (tableContextWriter *TableContextWriter) GetColumnDescriptors() ([][]byte, // Write column descriptor. columnDescriptorBuffer := bytes.NewBuffer(make([]byte, 8)) + fmt.Printf("Writing property %d - %d\n", propertyID, propertyType) + columnDescriptorBuffer.Write(GetUint16(uint16(propertyID))) columnDescriptorBuffer.Write(GetUint16(uint16(propertyType))) // TODO - Offset From fdba20d7375786ff38b44817a0409da7612380ef Mon Sep 17 00:00:00 2001 From: Marten Mooij Date: Thu, 31 Aug 2023 16:02:06 +0200 Subject: [PATCH 05/12] Start writing Row Matrix --- pkg/writer/properties_writer.go | 93 ++++++++++++++++ pkg/writer/table_context_writer.go | 168 ++++++++++++++++------------- 2 files changed, 187 insertions(+), 74 deletions(-) create mode 100644 pkg/writer/properties_writer.go diff --git a/pkg/writer/properties_writer.go b/pkg/writer/properties_writer.go new file mode 100644 index 0000000..46cbf5e --- /dev/null +++ b/pkg/writer/properties_writer.go @@ -0,0 +1,93 @@ +package writer + +import ( + "bytes" + "encoding/binary" + "fmt" + pst "github.com/mooijtech/go-pst/v6/pkg" + "github.com/rotisserie/eris" + "google.golang.org/protobuf/proto" + "io" + "reflect" + "strconv" + "strings" +) + +// PropertiesWriter represents a writer for properties. +type PropertiesWriter struct { + // Properties represents the properties to write. + Properties proto.Message +} + +// NewPropertiesWriter creates a new PropertiesWriter. +func NewPropertiesWriter(properties proto.Message) *PropertiesWriter { + return &PropertiesWriter{ + Properties: properties, + } +} + +// Property represents a property that can be written. +type Property struct { + ID pst.Identifier + Type pst.PropertyType + Value bytes.Buffer +} + +// GetProperties returns a list of properties to write. +func (propertiesWriter *PropertiesWriter) GetProperties() ([]Property, error) { + var properties []Property + + propertyTypes := reflect.TypeOf(propertiesWriter.Properties).Elem() + propertyValues := reflect.ValueOf(propertiesWriter.Properties).Elem() + + for i := 0; i < propertyTypes.NumField(); i++ { + if !propertyTypes.Field(i).IsExported() { + continue + } + if propertyValues.Field(i).IsNil() { + continue + } + + tag := strings.ReplaceAll(propertyTypes.Field(i).Tag.Get("msg"), ",omitempty", "") + + if tag == "" { + fmt.Printf("Skipping property without tag: %s\n", propertyTypes.Field(i).Name) + continue + } + + propertyID, err := strconv.Atoi(strings.Split(tag, "-")[0]) + + if err != nil { + return nil, eris.Wrap(err, "failed to convert propertyID to int") + } + + propertyType, err := strconv.Atoi(strings.Split(tag, "-")[1]) + + if err != nil { + return nil, eris.Wrap(err, "failed to convert propertyType to int") + } + + var propertyBuffer bytes.Buffer + + switch propertyValue := propertyValues.Field(i).Elem().Interface().(type) { + case string: + // Binary is intended for fixed-size structures with obvious encodings. + // Strings are not fixed size and do not have an obvious encoding. + if _, err := io.WriteString(&propertyBuffer, propertyValue); err != nil { + return nil, eris.Wrap(err, "failed to write string") + } + default: + if err := binary.Write(&propertyBuffer, binary.LittleEndian, propertyValue); err != nil { + return nil, eris.Wrap(err, "failed to write property") + } + } + + properties = append(properties, Property{ + ID: pst.Identifier(propertyID), + Type: pst.PropertyType(propertyType), + Value: propertyBuffer, + }) + } + + return properties, nil +} diff --git a/pkg/writer/table_context_writer.go b/pkg/writer/table_context_writer.go index 2077dae..2250a73 100644 --- a/pkg/writer/table_context_writer.go +++ b/pkg/writer/table_context_writer.go @@ -20,33 +20,37 @@ import ( "bytes" "cmp" "encoding/binary" - "fmt" pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" "google.golang.org/protobuf/proto" "io" - "reflect" + "math" "slices" - "strconv" - "strings" ) // TableContextWriter represents a writer for a pst.TableContext. type TableContextWriter struct { + // FormatType represents the FormatType. + FormatType pst.FormatType + // Properties represents the properties to write (properties.Attachment, properties.Folder etc). + Properties proto.Message // BTreeOnHeapWriter represents the BTreeOnHeapWriter. BTreeOnHeapWriter *BTreeOnHeapWriter - // Properties represents the properties to write. - Properties proto.Message + // PropertiesWriter represents the PropertiesWriter. + PropertiesWriter *PropertiesWriter } // NewTableContextWriter creates a new TableContextWriter. -func NewTableContextWriter(properties proto.Message) *TableContextWriter { +func NewTableContextWriter(formatType pst.FormatType, properties proto.Message) *TableContextWriter { heapOnNodeWriter := NewHeapOnNodeWriter(pst.SignatureTypeTableContext) btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) + propertiesWriter := NewPropertiesWriter(properties) return &TableContextWriter{ - BTreeOnHeapWriter: btreeOnHeapWriter, + FormatType: formatType, Properties: properties, + BTreeOnHeapWriter: btreeOnHeapWriter, + PropertiesWriter: propertiesWriter, } } @@ -60,81 +64,31 @@ func (tableContextWriter *TableContextWriter) WriteTo(writer io.Writer) (int64, return 0, eris.Wrap(err, "failed to write BTree-on-Heap") } - // TODO - Make column descriptors from properties. - headerWrittenSize, err := tableContextWriter.WriteHeader(writer) + properties, err := tableContextWriter.PropertiesWriter.GetProperties() if err != nil { - return 0, eris.Wrap(err, "failed to write Table Context header") + return 0, eris.Wrap(err, "failed to get properties") } - return btreeOnHeapWrittenSize + headerWrittenSize, nil -} - -// WriteColumnDescriptor writes the pst.ColumnDescriptor. -// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#tcoldesc -func (tableContextWriter *TableContextWriter) WriteColumnDescriptor(writer io.Writer, columnDescriptor pst.ColumnDescriptor) (int64, error) { - columnDescriptorBuffer := bytes.NewBuffer(make([]byte, 8)) - - columnDescriptorBuffer.Write(GetUint16(columnDescriptor.PropertyID)) - columnDescriptorBuffer.Write(GetUint16(columnDescriptor.DataOffset)) - columnDescriptorBuffer.WriteByte(columnDescriptor.DataSize) - columnDescriptorBuffer.WriteByte(columnDescriptor.CellExistenceBitmapIndex) - - return columnDescriptorBuffer.WriteTo(writer) -} - -// GetColumnDescriptors returns the Column Descriptors based on the properties. -func (tableContextWriter *TableContextWriter) GetColumnDescriptors() ([][]byte, error) { - var columnDescriptors [][]byte - - propertyTypes := reflect.TypeOf(tableContextWriter.Properties).Elem() + headerWrittenSize, err := tableContextWriter.WriteHeader(writer, properties) - for i := 0; i < propertyTypes.NumField(); i++ { - propertyField := propertyTypes.Field(i) - - if !propertyField.IsExported() { - continue - } - - tag := strings.ReplaceAll(propertyField.Tag.Get("msg"), ",omitempty", "") - - if tag == "" { - // No property ID in the tag. - fmt.Printf("Skipping property without tag: %s\n", propertyField.Name) - continue - } - - propertyID, err := strconv.Atoi(strings.Split(tag, "-")[0]) - - if err != nil { - return nil, eris.Wrap(err, "failed to convert propertyID to int") - } - - propertyType, err := strconv.Atoi(strings.Split(tag, "-")[1]) - - if err != nil { - return nil, eris.Wrap(err, "failed to convert propertyType to int") - } - - // Write column descriptor. - columnDescriptorBuffer := bytes.NewBuffer(make([]byte, 8)) + if err != nil { + return 0, eris.Wrap(err, "failed to write Table Context header") + } - fmt.Printf("Writing property %d - %d\n", propertyID, propertyType) + rowMatrixWrittenSize, err := tableContextWriter.WriteRowMatrix(writer, properties) - columnDescriptorBuffer.Write(GetUint16(uint16(propertyID))) - columnDescriptorBuffer.Write(GetUint16(uint16(propertyType))) - // TODO - Offset - // TODO - Size - // TODO - CellExistence + if err != nil { + return 0, eris.Wrap(err, "failed to write row matrix") } - return columnDescriptors, nil + return btreeOnHeapWrittenSize + headerWrittenSize + rowMatrixWrittenSize, nil } // WriteHeader writes the pst.TableContext header. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#tcinfo -func (tableContextWriter *TableContextWriter) WriteHeader(writer io.Writer) (int64, error) { - columnDescriptors, err := tableContextWriter.GetColumnDescriptors() +func (tableContextWriter *TableContextWriter) WriteHeader(writer io.Writer, properties []Property) (int64, error) { + columnDescriptors, err := tableContextWriter.GetColumnDescriptors(properties) if err != nil { return 0, eris.Wrap(err, "failed to get column descriptors") @@ -149,6 +103,7 @@ func (tableContextWriter *TableContextWriter) WriteHeader(writer io.Writer) (int // Column count. header.WriteByte(byte(len(columnDescriptors))) + // TODO - Pass from row matrix // This is an array of 4 16-bit values that specify the offsets of various groups of data in the actual row data. header.Write(make([]byte, 2)) // Ending offset of 8- and 4-byte data value group. header.Write(make([]byte, 2)) // Ending offset of 2-byte data value group. @@ -157,15 +112,17 @@ func (tableContextWriter *TableContextWriter) WriteHeader(writer io.Writer) (int // HID to the Row ID BTH (hidRowIndex). // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#tcrowid + // TODO header.Write(make([]byte, 4)) // HNID to the Row Matrix (that is, actual table data). (hnidRows) + // TODO- header.Write(make([]byte, 4)) // Deprecated (hidIndex) header.Write(make([]byte, 4)) - // Sort column descriptors according to specification. + // Sort column descriptors by property ID (according to specification). slices.SortFunc(columnDescriptors, func(a []byte, b []byte) int { return cmp.Compare(binary.LittleEndian.Uint16(a[2:2+2]), binary.LittleEndian.Uint16(b[2:2+2])) }) @@ -178,10 +135,73 @@ func (tableContextWriter *TableContextWriter) WriteHeader(writer io.Writer) (int return header.WriteTo(writer) } +// GetColumnDescriptors returns the Column Descriptors based on the properties. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#tcoldesc +func (tableContextWriter *TableContextWriter) GetColumnDescriptors(properties []Property) ([][]byte, error) { + var columnDescriptors [][]byte + + for i, property := range properties { + columnDescriptorBuffer := bytes.NewBuffer(make([]byte, 8)) + + // Tag + columnDescriptorBuffer.Write(GetUint16(uint16(property.ID))) + columnDescriptorBuffer.Write(GetUint16(uint16(property.Type))) + // Offset + columnDescriptorBuffer.Write(GetUint16(uint16(8 * i))) + + // Data Size + if property.Value.Len() <= 8 { + columnDescriptorBuffer.WriteByte(byte(property.Value.Len())) + } else { + // Variable-sized data (size of a HNID) + columnDescriptorBuffer.WriteByte(byte(4)) + } + + // Cell Existence Bitmap Index + columnDescriptorBuffer.WriteByte(byte(2 + i)) // Skip 0 and 1 + } + + return columnDescriptors, nil +} + // WriteRowMatrix writes the Row Matrix of the Table Context. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#row-matrix -func (tableContextWriter *TableContextWriter) WriteRowMatrix(writer io.Writer) (int64, error) { - //rowMatrix := bytes.NewBuffer(make([]byte, 0)) // TODO - Size +func (tableContextWriter *TableContextWriter) WriteRowMatrix(writer io.Writer, properties []Property) (int64, error) { + rowMatrixBuffer := bytes.NewBuffer(make([]byte, tableContextWriter.GetRowMatrixSize(properties))) + + // Sort by byte-size so writes are aligned accordingly. + slices.SortFunc(properties, func(a, b Property) int { + return cmp.Compare(a.Value.Len(), b.Value.Len()) + }) + + for _, property := range properties { + // The 32-bit value that corresponds to the dwRowID value in this row's corresponding TCROWID record. + // Note that this value corresponds to the PidTagLtpRowId property. + // dwRowID TODO + rowMatrixBuffer.Write(make([]byte, 4)) + + // Already sorted by byte-size. + if _, err := property.Value.WriteTo(rowMatrixBuffer); err != nil { + return 0, eris.Wrap(err, "failed to write property value") + } + + // Cell Existence Block. + rowMatrixBuffer.Write(make([]byte, 0)) + } + + return rowMatrixBuffer.WriteTo(writer) +} + +// GetRowMatrixSize returns the total size of the Row Matrix based on the properties to write. +func (tableContextWriter *TableContextWriter) GetRowMatrixSize(properties []Property) int { + totalRowIDSize := len(properties) * 4 + totalCellExistenceBlockSize := len(properties) * int(math.Ceil(float64(len(properties))/8)) + + totalSize := totalRowIDSize + totalCellExistenceBlockSize + + for _, property := range properties { + totalSize += property.Value.Len() + } - return 0, nil + return totalSize } From a9361d9484ca859d088c97fd344017da9e6c05c1 Mon Sep 17 00:00:00 2001 From: Marten Mooij Date: Tue, 5 Sep 2023 17:07:06 +0200 Subject: [PATCH 06/12] Start moving to channels --- pkg/btree.go | 56 +++++++++- pkg/writer/attachment_writer.go | 2 +- pkg/writer/block_writer.go | 85 +++++++++++++++ pkg/writer/btree_writer.go | 69 +++++++++--- pkg/writer/folder_writer.go | 91 ++++++++++++++-- pkg/writer/local_descriptors_writer.go | 67 +++++++++++- pkg/writer/message_writer.go | 32 +++++- pkg/writer/properties_writer.go | 93 ---------------- pkg/writer/property_context_writer.go | 69 ++++++++++-- pkg/writer/property_writer.go | 143 +++++++++++++++++++++++++ pkg/writer/table_context_writer.go | 64 +++++++++-- pkg/writer/writer.go | 58 ++++++++-- pkg/writer/writer_test.go | 38 +++++-- 13 files changed, 702 insertions(+), 165 deletions(-) create mode 100644 pkg/writer/block_writer.go delete mode 100644 pkg/writer/properties_writer.go create mode 100644 pkg/writer/property_writer.go diff --git a/pkg/btree.go b/pkg/btree.go index 8549d6e..e9cb36c 100644 --- a/pkg/btree.go +++ b/pkg/btree.go @@ -17,7 +17,9 @@ package pst import ( + "bytes" "encoding/binary" + "github.com/mooijtech/go-pst/v6/pkg/writer" "github.com/pkg/errors" "github.com/rotisserie/eris" "io" @@ -129,6 +131,7 @@ func (file *File) GetBTreeNodeLevel(btreeNode []byte) uint8 { } // BTreeNode represents an entry in a b-tree node. +// Fields are set depending on the NodeLevel (branch or leaf). type BTreeNode struct { // Identifier is only unique to the node level. Identifier Identifier `json:"identifier"` @@ -139,6 +142,40 @@ type BTreeNode struct { NodeLevel uint8 `json:"nodeLevel"` } +// NewBTreeNodeBranch creates a new BTreeNode with a NodeLevel > 0 +func NewBTreeNodeBranch(identifier Identifier) BTreeNode { + return BTreeNode{ + Identifier: identifier, + } +} + +// NewBTreeNodeLeaf creates a new BTreeNode leaf with a NodeLevel == 0 +func NewBTreeNodeLeaf(identifier Identifier) BTreeNode { + return BTreeNode{ + Identifier: identifier, + NodeLevel: 0, + } +} + +// WriteTo writes the byte representation of the B-Tree node. +func (btreeNode *BTreeNode) WriteTo(writer io.Writer) (int64, error) { + if btreeNode.NodeLevel > 0 { + // Branch + btreeNodeBuffer := bytes.NewBuffer(make([]byte, 0)) + + // + + return btreeNodeBuffer.WriteTo(writer) + } else { + // Leaf + btreeNodeBuffer := bytes.NewBuffer(make([]byte, 0)) + + // + + return btreeNodeBuffer.WriteTo(writer) + } +} + // NewBTreeNodeReader is used by the Heap-on-Node. func NewBTreeNodeReader(btreeNode BTreeNode, reader Reader) *io.SectionReader { return io.NewSectionReader(reader, btreeNode.FileOffset, int64(btreeNode.Size)) @@ -281,6 +318,19 @@ func (identifier Identifier) GetType() IdentifierType { return IdentifierType(identifier & 0x1F) } +// Bytes returns the byte representation of the pst.Identifier. +func (identifier Identifier) Bytes(formatType FormatType) []byte { + switch formatType { + case FormatTypeUnicode: + return writer.GetUint64(uint64(identifier)) + case FormatTypeANSI: + return writer.GetUint32(uint32(identifier)) + default: + // TODO - Support Unicode4k + panic(ErrFormatTypeUnsupported) + } +} + // IdentifierType represents the type of Identifier. type IdentifierType uint8 @@ -362,12 +412,12 @@ func GetBTreeNodeEntrySize(btreeNodeEntryData []byte, formatType FormatType) uin } // BTreeType represents either the node b-tree or block b-tree. -type BTreeType uint8 +type BTreeType byte // Constants defining the b-tree types. const ( - BTreeTypeNode BTreeType = iota - BTreeTypeBlock + BTreeTypeNode BTreeType = 129 + BTreeTypeBlock BTreeType = 128 ) // GetParentBTreeNodeLevel returns the level of the b-tree node. diff --git a/pkg/writer/attachment_writer.go b/pkg/writer/attachment_writer.go index a55af06..8ec30d8 100644 --- a/pkg/writer/attachment_writer.go +++ b/pkg/writer/attachment_writer.go @@ -29,7 +29,7 @@ type AttachmentWriter struct { } // NewAttachmentWriter creates a new AttachmentWriter. -func NewAttachmentWriter(properties *properties.Attachment) *AttachmentWriter { +func NewAttachmentWriter(properties []*properties.Attachment) *AttachmentWriter { return &AttachmentWriter{ PropertyContextWriter: NewPropertyContextWriter(properties), } diff --git a/pkg/writer/block_writer.go b/pkg/writer/block_writer.go new file mode 100644 index 0000000..c2be566 --- /dev/null +++ b/pkg/writer/block_writer.go @@ -0,0 +1,85 @@ +package writer + +import ( + "bytes" + pst "github.com/mooijtech/go-pst/v6/pkg" + "github.com/rotisserie/eris" + "io" +) + +// BlockWriter represents a writer for XBlocks and XXBlocks. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#data-tree +type BlockWriter struct { + // FormatType represents the FormatType used while writing. + FormatType pst.FormatType + // Identifiers pointing to B-Tree nodes. + Identifiers []pst.Identifier +} + +// NewBlockWriter creates a new BlockWriter. +func NewBlockWriter(formatType pst.FormatType, identifiers []pst.Identifier) *BlockWriter { + return &BlockWriter{ + FormatType: formatType, + Identifiers: identifiers, + } +} + +// WriteTo writes the blocks (XBlocks and XXBlocks). +func (blockWriter *BlockWriter) WriteTo(writer io.Writer) (int64, error) { + return blockWriter.WriteXBlock(writer) +} + +// WriteXBlock writes the XBlock. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#xblock +func (blockWriter *BlockWriter) WriteXBlock(writer io.Writer) (int64, error) { + // 1+1+2+4+identifiers+padding+blockTrailer + xBlockBuffer := bytes.NewBuffer(make([]byte, 0)) + + // Block type; MUST be set to 0x01 to indicate an XBLOCK or XXBLOCK. + xBlockBuffer.WriteByte(byte(1)) + // MUST be set to 0x01 to indicate an XBLOCK. + xBlockBuffer.WriteByte(byte(1)) + // The count of identifiers in the XBLOCK. + xBlockBuffer.Write(GetUint16(uint16(len(blockWriter.Identifiers)))) + // Total count of bytes of all the external data stored in the data blocks referenced by XBLOCK. + // TODO + // Array of identifiers that reference data blocks. + // The size is equal to the number of entries indicated by cEnt multiplied by the size of a BID + // (8 bytes for Unicode PST files, 4 bytes for ANSI PST files). + for _, identifier := range blockWriter.Identifiers { + switch blockWriter.FormatType { + case pst.FormatTypeUnicode: + xBlockBuffer.Write(GetUint64(uint64(identifier))) + case pst.FormatTypeANSI: + xBlockBuffer.Write(GetUint32(uint32(identifier))) + default: + return 0, pst.ErrFormatTypeUnsupported + } + } + // This field is present if the total size of all the other fields is not a multiple of 64. + // The size of this field is the smallest number of bytes required to make the size of the XBLOCK a multiple of 64. + // TODO - + // A BLOCKTRAILER structure + if _, err := blockWriter.WriteBlockTrailer(xBlockBuffer); err != nil { + return 0, eris.Wrap(err, "failed to write block trailer") + } + + return xBlockBuffer.WriteTo(writer) +} + +// WriteBlockTrailer writes the block trailer. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#blocktrailer +func (blockWriter *BlockWriter) WriteBlockTrailer(writer io.Writer) (int64, error) { + // The amount of data, in bytes, contained within the data section of the block. + // This value does not include the block trailer or any unused bytes that can + // exist after the end of the data and before the start of the block trailer. + // TODO - + // Block signature. See section 5.5 for the algorithm to calculate the block signature. + // TODO - + // 32-bit CRC of the cb bytes of raw data, see section 5.3 for the algorithm to calculate the CRC. + // Note the locations of the dwCRC and bid are differs between the Unicode and ANSI version of this structure. + // TODO - + // The BID (section 2.2.2.2) of the data block. + + return 0, nil +} diff --git a/pkg/writer/btree_writer.go b/pkg/writer/btree_writer.go index 7765fb7..2a34d92 100644 --- a/pkg/writer/btree_writer.go +++ b/pkg/writer/btree_writer.go @@ -24,45 +24,62 @@ import ( ) // BTreeWriter represents a writer for B-Trees. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#btrees type BTreeWriter struct { // FormatType represents the FormatType to use during writing. FormatType pst.FormatType + // BTreeType represents the type of b-tree to write (node or block). + BTreeType pst.BTreeType + // BTreeNodes represents the B-Tree nodes to write. + BTreeNodes []pst.BTreeNode } // NewBTreeWriter creates a new BTreeWriter. -func NewBTreeWriter(formatType pst.FormatType) *BTreeWriter { +func NewBTreeWriter(formatType pst.FormatType, btreeType pst.BTreeType, btreeNodes []pst.Identifier) *BTreeWriter { + // Make writable B-Tree nodes. + var btreeNodes + + for _, btreeNodeIdentifier := range btreeNodes { + + } + return &BTreeWriter{ FormatType: formatType, + BTreeType: btreeType, + BTreeNodes: btreeNodes, } } // WriteTo writes the B-Tree. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#btpage -func (btreeWriter *BTreeWriter) WriteTo(writer io.Writer, btreeType pst.BTreeType, btreeEntries [][]byte, level int) (int64, error) { +func (btreeWriter *BTreeWriter) WriteTo(writer io.Writer) (int64, error) { btree := bytes.NewBuffer(make([]byte, 512)) // Same for Unicode and ANSI. - // Entries - // TODO make a structure for this. + // This section contains entries of the BTree array. + // If "cLevel" is 0, each entry is either of type "BBTENTRY" or "NBTENTRY" based on the "ptype" of the page. // TODO Check maximum b-tree entry size and return error on overflow - for _, btreeEntry := range btreeEntries { - btree.Write(btreeEntry) + for _, btreeEntry := range btreeWriter.BTreeNodes { + if _, err := btreeEntry.WriteTo(btree); err != nil { + return 0, eris.Wrap(err, "failed to write b-tree node") + } } // The number of BTree entries stored in the page data. - btree.WriteByte(byte(len(btreeEntries))) + // The entries depend on the value of this field. + btree.WriteByte(byte(len(btreeWriter.BTreeNodes))) // The maximum number of entries that can fit inside the page data. btree.Write(make([]byte, 1)) // TODO // The size of each BTree entry, in bytes. - if btreeType == pst.BTreeTypeNode && level == 0 { + if btreeWriter.BTreeType == pst.BTreeTypeNode && level == 0 { switch btreeWriter.FormatType { case pst.FormatTypeUnicode: btree.Write([]byte{32}) case pst.FormatTypeANSI: btree.Write([]byte{16}) default: - panic(pst.ErrFormatTypeUnsupported) + return 0, pst.ErrFormatTypeUnsupported } } else { switch btreeWriter.FormatType { @@ -71,21 +88,26 @@ func (btreeWriter *BTreeWriter) WriteTo(writer io.Writer, btreeType pst.BTreeTyp case pst.FormatTypeANSI: btree.Write([]byte{12}) default: - panic(pst.ErrFormatTypeUnsupported) + return 0, pst.ErrFormatTypeUnsupported } } // The depth level of this page. + // Leaf pages have a level of 0, while intermediate pages have a level greater than 0. + // This value determines the type of entries. btree.WriteByte(byte(level)) if btreeWriter.FormatType == pst.FormatTypeUnicode { - // Padding; MUST be set to zero. - // Unicode only. + // Padding that should be set to zero. + // Note that there is no padding in the ANSI version of the structure. btree.Write(make([]byte, 4)) } // Page trailer. - if _, err := btreeWriter.WritePageTrailer(btree); err != nil { + // A PAGETRAILER structure with specific subfield values. + // The "ptype" subfield of "pageTrailer" should be set to "ptypeBBT" for a Block BTree page or "ptypeNBT" for a Node BTree page. + // The other subfields of "pageTrailer" should be set as specified in the documentation. + if _, err := btreeWriter.WritePageTrailer(btree, btreeType); err != nil { return 0, eris.Wrap(err, "failed to write page trailer") } @@ -94,6 +116,25 @@ func (btreeWriter *BTreeWriter) WriteTo(writer io.Writer, btreeType pst.BTreeTyp // WritePageTrailer writes the page tailer of the b-tree. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#pagetrailer -func (btreeWriter *BTreeWriter) WritePageTrailer(writer io.Writer) (int64, error) { +func (btreeWriter *BTreeWriter) WritePageTrailer(writer io.Writer, btreeType pst.BTreeType) (int64, error) { + pageTrailerBuffer := bytes.NewBuffer(make([]byte, 0)) + + // This value indicates the type of data contained within the page. + pageTrailerBuffer.WriteByte(byte(btreeWriter.BTreeType)) + // MUST be set to the same value as ptype. + pageTrailerBuffer.WriteByte(byte(btreeWriter.BTreeType)) + // Page signature. This value depends on the value of the ptype field. + // This value is zero (0x0000) for AMap, PMap, FMap, and FPMap pages. + // For BBT, NBT, and DList pages, a page / block signature is computed (see section 5.5). + // TODO - pageTrailerBuffer.Write() + // 32-bit CRC of the page data, excluding the page trailer. + // See section 5.3 for the CRC algorithm. + // Note the locations of the dwCRC and bid are differs between the Unicode and ANSI version of this structure. + // TODO - pageTrailerBuffer.Write() + // The BID of the page's block. + // AMap, PMap, FMap, and FPMap pages have a special convention where their BID is assigned the same value as their IB (that is, the absolute file offset of the page). + // The bidIndex for other page types are allocated from the special bidNextP counter in the HEADER structure. + // TODO - pageTrailerBuffer.Write() + return 0, nil } diff --git a/pkg/writer/folder_writer.go b/pkg/writer/folder_writer.go index 0763443..a0686a0 100644 --- a/pkg/writer/folder_writer.go +++ b/pkg/writer/folder_writer.go @@ -17,33 +17,104 @@ package writer import ( + "context" + pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" + "golang.org/x/sync/errgroup" "io" + "sync/atomic" ) // FolderWriter represents a writer for folders. type FolderWriter struct { - // Properties represents the FolderProperties. - Properties *properties.Folder - // Messages represents the messages in this folder. - Messages []*MessageWriter + // FormatType represents the FormatType used while writing. + FormatType pst.FormatType + // FolderWriteChannel represents the Go channel for writing sub-folders. + FolderWriteChannel chan *FolderWriter + // MessageWriteChannel represents the Go channel for writing messages to this folder. + MessageWriteChannel chan *MessageWriter // TableContextWriter writes the pst.TableContext of the pst.Folder. TableContextWriter *TableContextWriter + // PropertyWriteChannel represents the Go channel for writing []pst.Property. + PropertyWriteChannel chan *PropertyWriter + // TotalSize represents the total size of the PST file so far. + TotalSize atomic.Int64 } // NewFolderWriter creates a new FolderWriter. -func NewFolderWriter(folderProperties *properties.Folder, messages []*MessageWriter) *FolderWriter { - return &FolderWriter{ - Properties: folderProperties, - Messages: messages, - TableContextWriter: NewTableContextWriter(folderProperties), +func NewFolderWriter(writer io.Writer, writeContext context.Context, writeLimit int, writeGroup *errgroup.Group, formatType pst.FormatType) (*FolderWriter, error) { + folderWriter := &FolderWriter{ + FormatType: formatType, + FolderWriteChannel: make(chan *FolderWriter), + MessageWriteChannel: make(chan *MessageWriter), + TableContextWriter: NewTableContextWriter(writer, writeContext, writeLimit, formatType), + PropertyWriteChannel: make(chan *PropertyWriter), } + + // Start channels. + folderWriteChannelErrGroup, folderWriteChannelContext := folderWriter.StartFolderWriteChannel(writeContext) + messageWriteChannelErrGroup, messageWriteChannelContext := folderWriter.StartMessageWriteChannel(writeContext) + + return folderWriter, subFolderChannel +} + +// SetProperties writes the properties of this folder. +func (folderWriter *FolderWriter) SetProperties(properties *properties.Folder) { + +} + +// AddMessages adds a message to the channel to be written. +func (folderWriter *FolderWriter) AddMessages(messageWriters ...*MessageWriter) { + for _, messageWriter := range messageWriters { + folderWriter.MessageWriteChannel <- messageWriter + } +} + +func (folderWriter *FolderWriter) StartMessageWriteChannel(writeContext context.Context) (*errgroup.Group, context.Context) { + messageWriteChannelErrGroup, messageWriteChannelContext := errgroup.WithContext(writeContext) + + messageWriteChannelErrGroup.Go(func() error { + return nil + }) + + return messageWriteChannelErrGroup, messageWriteChannelContext +} + +// AddFolder queues the folder to be written, picked up by a Go channel. +// This is added to the TableContextWriter, so we can find these folders. +func (folderWriter *FolderWriter) AddFolder(folders ...*FolderWriter) { + for _, folder := range folders { + folderWriter.FolderWriteChannel <- folder + } +} + +// StartFolderWriteChannel listens for sub-folders to write. +// The called is responsible for starting the write channel. +func (folderWriter *FolderWriter) StartFolderWriteChannel(folderChannelContext context.Context) (*errgroup.Group, context.Context) { + folderWriteChannelErrGroup, folderWriteChannelContext := errgroup.WithContext(folderChannelContext) + + folderWriteChannelErrGroup.Go(func() error { + for receivedFolder := range folderWriter.FolderWriteChannel { + writtenSize, err := folderWriter.TableContextWriter.AddFolder(receivedFolder) + + if err != nil { + return eris.Wrap(err, "failed to add folder to Table Context") + } + + // Callback + folderWriter + } + + return nil + }) + + return folderWriteChannelErrGroup, folderWriteChannelContext } // WriteTo writes the folder containing messages. // Returns the amount of bytes written to the output buffer. -// References TODO +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#folders func (folderWriter *FolderWriter) WriteTo(writer io.Writer) (int64, error) { tableContextWrittenSize, err := folderWriter.TableContextWriter.WriteTo(writer) diff --git a/pkg/writer/local_descriptors_writer.go b/pkg/writer/local_descriptors_writer.go index 50504f9..db6cb0e 100644 --- a/pkg/writer/local_descriptors_writer.go +++ b/pkg/writer/local_descriptors_writer.go @@ -16,19 +16,76 @@ package writer -import "io" +import ( + "crypto/rand" + "encoding/binary" + pst "github.com/mooijtech/go-pst/v6/pkg" + "github.com/rotisserie/eris" + "io" +) -// LocalDescriptorsWriter represents a writer for Local Descriptors. -// (B-Tree Nodes pointing to other B-Tree Nodes) +// LocalDescriptorsWriter represents a writer for Local Descriptors (B-Tree Nodes pointing to other B-Tree Nodes). +// The LocalDescriptorsWriter can be used multiple times to create multiple local descriptors. type LocalDescriptorsWriter struct { + // FormatType represents the FormatType used while writing. + FormatType pst.FormatType + // BTreeWriter represents the BTreeWriter. + BTreeWriter *BTreeWriter + // BlockWriter represents the BlocKWriter. + BlockWriter *BlockWriter + // Identifier represents the BTree node pst.Identifier of the Local Descriptor created after WriteTo has been called. + // Set by UpdateIdentifier, called after writing the Local Descriptor WriteTo. + Identifier pst.Identifier } // NewLocalDescriptorsWriter creates a new LocalDescriptorsWriter. -func NewLocalDescriptorsWriter() *LocalDescriptorsWriter { - return &LocalDescriptorsWriter{} +func NewLocalDescriptorsWriter(formatType pst.FormatType, btreeType pst.BTreeType, btreeNodes []pst.Identifier) *LocalDescriptorsWriter { + return &LocalDescriptorsWriter{ + FormatType: formatType, + BTreeWriter: NewBTreeWriter(formatType, btreeType, btreeNodes), + BlockWriter: NewBlockWriter(formatType, btreeNodes), + } } // WriteTo writes the Local Descriptors. func (localDescriptorsWriter *LocalDescriptorsWriter) WriteTo(writer io.Writer) (int64, error) { + // Create B-Tree nodes for the Local Descriptors. + if _, err := localDescriptorsWriter.BTreeWriter.WriteTo(writer); err != nil { + return 0, eris.Wrap(err, "failed to write B-Tree nodes for the Local Descriptors") + } + return 0, nil } + +// GetIdentifier returns the identifier (pst.Identifier) of the written local descriptor. +// This will return an error if called before WriteTo has been called. +// References +func (localDescriptorsWriter *LocalDescriptorsWriter) UpdateIdentifier() (pst.Identifier, error) { + var identifierSize int + + switch localDescriptorsWriter.FormatType { + case pst.FormatTypeUnicode: + identifierSize = 8 + case pst.FormatTypeANSI: + identifierSize = 4 + default: + return 0, pst.ErrFormatTypeUnsupported + } + + identifierBytes := make([]byte, identifierSize) + + if _, err := rand.Read(identifierBytes); err != nil { + return 0, eris.Wrap(err, "failed to read random bytes") + } + + var identifier int64 + + switch localDescriptorsWriter.FormatType { + case pst.FormatTypeUnicode: + identifier = int64(binary.LittleEndian.Uint64(identifierBytes)) + case pst.FormatTypeANSI: + identifier = int64(binary.LittleEndian.Uint32(identifierBytes)) + } + + return pst.Identifier(identifier), nil +} diff --git a/pkg/writer/message_writer.go b/pkg/writer/message_writer.go index 75f3d40..75a5a95 100644 --- a/pkg/writer/message_writer.go +++ b/pkg/writer/message_writer.go @@ -17,23 +17,25 @@ package writer import ( + "context" "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" + "golang.org/x/sync/errgroup" "io" ) // MessageWriter represents a message that can be written to a PST file. type MessageWriter struct { - // Properties represents the properties of a pst.Message. - Properties *properties.Message - // Attachments represents the attachments of a pst.Message. - Attachments []*AttachmentWriter + // PropertyWriter represents the writer for properties to the PropertyContextWriter. + PropertyWriter *PropertyWriter + // AttachmentWriteChannel represents the Go channel for writing attachments. + AttachmentWriteChannel chan *AttachmentWriter // PropertyContextWriter writes the pst.PropertyContext of a pst.Message. PropertyContextWriter *PropertyContextWriter } // NewMessageWriter creates a new MessageWriter. -func NewMessageWriter(properties *properties.Message, attachments []*AttachmentWriter) *MessageWriter { +func NewMessageWriter() *MessageWriter { return &MessageWriter{ Properties: properties, Attachments: attachments, @@ -41,6 +43,26 @@ func NewMessageWriter(properties *properties.Message, attachments []*AttachmentW } } +func (messageWriter *MessageWriter) SetProperties(properties *properties.Message) { + +} + +func (messageWriter *MessageWriter) AddAttachments(attachments ...[]*AttachmentWriter) { + +} + +func (messageWriter *MessageWriter) StartAttachmentWriteChannel(writeContext context.Context) (*errgroup.Group, context.Context) { + attachmentWriteChannelErrGroup, attachmentWriteChannelContext := errgroup.WithContext(writeContext) + + attachmentWriteChannelErrGroup.Go(func() error { + for attachment := range messageWriter.Att + + return nil + }) + + return attachmentWriteChannelErrGroup, attachmentWriteChannelContext +} + // WriteTo writes the message property context. func (messageWriter *MessageWriter) WriteTo(writer io.Writer) (int64, error) { // Write Property Context. diff --git a/pkg/writer/properties_writer.go b/pkg/writer/properties_writer.go deleted file mode 100644 index 46cbf5e..0000000 --- a/pkg/writer/properties_writer.go +++ /dev/null @@ -1,93 +0,0 @@ -package writer - -import ( - "bytes" - "encoding/binary" - "fmt" - pst "github.com/mooijtech/go-pst/v6/pkg" - "github.com/rotisserie/eris" - "google.golang.org/protobuf/proto" - "io" - "reflect" - "strconv" - "strings" -) - -// PropertiesWriter represents a writer for properties. -type PropertiesWriter struct { - // Properties represents the properties to write. - Properties proto.Message -} - -// NewPropertiesWriter creates a new PropertiesWriter. -func NewPropertiesWriter(properties proto.Message) *PropertiesWriter { - return &PropertiesWriter{ - Properties: properties, - } -} - -// Property represents a property that can be written. -type Property struct { - ID pst.Identifier - Type pst.PropertyType - Value bytes.Buffer -} - -// GetProperties returns a list of properties to write. -func (propertiesWriter *PropertiesWriter) GetProperties() ([]Property, error) { - var properties []Property - - propertyTypes := reflect.TypeOf(propertiesWriter.Properties).Elem() - propertyValues := reflect.ValueOf(propertiesWriter.Properties).Elem() - - for i := 0; i < propertyTypes.NumField(); i++ { - if !propertyTypes.Field(i).IsExported() { - continue - } - if propertyValues.Field(i).IsNil() { - continue - } - - tag := strings.ReplaceAll(propertyTypes.Field(i).Tag.Get("msg"), ",omitempty", "") - - if tag == "" { - fmt.Printf("Skipping property without tag: %s\n", propertyTypes.Field(i).Name) - continue - } - - propertyID, err := strconv.Atoi(strings.Split(tag, "-")[0]) - - if err != nil { - return nil, eris.Wrap(err, "failed to convert propertyID to int") - } - - propertyType, err := strconv.Atoi(strings.Split(tag, "-")[1]) - - if err != nil { - return nil, eris.Wrap(err, "failed to convert propertyType to int") - } - - var propertyBuffer bytes.Buffer - - switch propertyValue := propertyValues.Field(i).Elem().Interface().(type) { - case string: - // Binary is intended for fixed-size structures with obvious encodings. - // Strings are not fixed size and do not have an obvious encoding. - if _, err := io.WriteString(&propertyBuffer, propertyValue); err != nil { - return nil, eris.Wrap(err, "failed to write string") - } - default: - if err := binary.Write(&propertyBuffer, binary.LittleEndian, propertyValue); err != nil { - return nil, eris.Wrap(err, "failed to write property") - } - } - - properties = append(properties, Property{ - ID: pst.Identifier(propertyID), - Type: pst.PropertyType(propertyType), - Value: propertyBuffer, - }) - } - - return properties, nil -} diff --git a/pkg/writer/property_context_writer.go b/pkg/writer/property_context_writer.go index fd64039..85c2396 100644 --- a/pkg/writer/property_context_writer.go +++ b/pkg/writer/property_context_writer.go @@ -17,6 +17,7 @@ package writer import ( + "bytes" pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" "google.golang.org/protobuf/proto" @@ -24,27 +25,31 @@ import ( ) // PropertyContextWriter represents a writer for a pst.PropertyContext. -// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#property-context-pc type PropertyContextWriter struct { - // Properties represents the properties in the pst.PropertyContext. - // See properties.Message, properties.Attachment etc. - Properties proto.Message // BTreeOnHeapWriter represents the BTreeOnHeapWriter. BTreeOnHeapWriter *BTreeOnHeapWriter + // PropertiesWriter represents the PropertiesWriter. + PropertiesWriter *PropertyWriter + // LocalDescriptorsWriter represents the LocalDescriptorsWriter. + LocalDescriptorsWriter *LocalDescriptorsWriter } // NewPropertyContextWriter creates a new PropertyContextWriter. -func NewPropertyContextWriter(properties proto.Message) *PropertyContextWriter { +func NewPropertyContextWriter(properties []*proto.Message) *PropertyContextWriter { heapOnNodeWriter := NewHeapOnNodeWriter(pst.SignatureTypePropertyContext) btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) + propertiesWriter := NewPropertyWriter(properties) + localDescriptorsWriter := NewLocalDescriptorsWriter() return &PropertyContextWriter{ - Properties: properties, - BTreeOnHeapWriter: btreeOnHeapWriter, + BTreeOnHeapWriter: btreeOnHeapWriter, + PropertiesWriter: propertiesWriter, + LocalDescriptorsWriter: localDescriptorsWriter, } } // WriteTo writes the pst.PropertyContext. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#property-context-pc func (propertyContextWriter *PropertyContextWriter) WriteTo(writer io.Writer) (int64, error) { btreeOnHeapWrittenSize, err := propertyContextWriter.BTreeOnHeapWriter.WriteTo(writer) @@ -52,5 +57,53 @@ func (propertyContextWriter *PropertyContextWriter) WriteTo(writer io.Writer) (i return 0, eris.Wrap(err, "failed to write Heap-on-Node") } - return btreeOnHeapWrittenSize, nil + propertiesWrittenSize, err := propertyContextWriter.WriteProperties(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write properties") + } + + return btreeOnHeapWrittenSize + propertiesWrittenSize, nil +} + +// WriteProperties writes the properties. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#pc-bth-record +func (propertyContextWriter *PropertyContextWriter) WriteProperties(writer io.Writer) (int64, error) { + properties, err := propertyContextWriter.PropertiesWriter.GetProperties() + + if err != nil { + return 0, eris.Wrap(err, "failed to get properties") + } + + var totalSize int64 + + // Write properties. + for _, property := range properties { + propertyBuffer := bytes.NewBuffer(make([]byte, 8)) + + // Property ID + propertyBuffer.Write(GetUint16(uint16(property.ID))) + // Property Type + propertyBuffer.Write(GetUint16(uint16(property.Type))) + // Value + if property.Value.Len() <= 4 { + if _, err := property.Value.WriteTo(propertyBuffer); err != nil { + return 0, eris.Wrap(err, "failed to write property value") + } + } else if property.Value.Len() <= 3580 { + // HID + } else { + // NID Local Descriptor + } + + written, err := propertyBuffer.WriteTo(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write property") + } + + totalSize += written + } + + return totalSize, nil } diff --git a/pkg/writer/property_writer.go b/pkg/writer/property_writer.go new file mode 100644 index 0000000..7f9b246 --- /dev/null +++ b/pkg/writer/property_writer.go @@ -0,0 +1,143 @@ +package writer + +import ( + "bytes" + "context" + "encoding/binary" + "fmt" + pst "github.com/mooijtech/go-pst/v6/pkg" + "github.com/rotisserie/eris" + "golang.org/x/sync/errgroup" + "google.golang.org/protobuf/proto" + "io" + "reflect" + "strconv" + "strings" +) + +// PropertyWriter represents a writer for properties. +type PropertyWriter struct { + // PropertyWriteChannel represents the Go channel for writing properties. + PropertyWriteChannel chan *proto.Message + // PropertyWriteCallbackChannel is called when a property has been written. + PropertyWriteCallbackChannel chan Property +} + +// NewPropertyWriter creates a new PropertyWriter. +func NewPropertyWriter(propertyWriteCallbackChannel chan Property, propertyWriteChannelContext context.Context) (*PropertyWriter, *errgroup.Group, context.Context) { + propertyWriter := &PropertyWriter{ + PropertyWriteChannel: make(chan *proto.Message), + PropertyWriteCallbackChannel: propertyWriteCallbackChannel, + } + + propertyWriteChannelErrGroup, propertyWriteChannelContext := propertyWriter.StartPropertyWriteChannel(propertyWriteChannelContext) + + return propertyWriter, propertyWriteChannelErrGroup, propertyWriteChannelContext +} + +// AddProperties adds the properties to write. +func (propertyWriter *PropertyWriter) AddProperties(properties []*proto.Message) { + for _, property := range properties { + propertyWriter.PropertyWriteChannel <- property + } +} + +// StartPropertyWriteChannel starts the Go channel for writing properties. +func (propertyWriter *PropertyWriter) StartPropertyWriteChannel(propertyWriteChannelContext context.Context) (*errgroup.Group, context.Context) { + propertyWriteChannelErrGroup, propertyWriteChannelContext := errgroup.WithContext(propertyWriteChannelContext) + + propertyWriteChannelErrGroup.Go(func() error { + for receivedProperties := range propertyWriter.PropertyWriteChannel { + // Create writable property. + writableProperties, err := propertyWriter.GetProperties(receivedProperties) + + if err != nil { + return eris.Wrap(err, "failed to get writable properties") + } + + // Send writable property to callback. + if propertyWriter.PropertyWriteCallbackChannel != nil { + for _, writableProperty := range writableProperties { + propertyWriter.PropertyWriteCallbackChannel <- writableProperty + } + } + } + + return nil + }) + + return propertyWriteChannelErrGroup, propertyWriteChannelContext +} + +// Property represents a property that can be written. +type Property struct { + ID pst.Identifier + Type pst.PropertyType + Value bytes.Buffer +} + +// WriteTo writes the byte representation of the property. +// Used by the PropertyContextWriter. +func (property *Property) WriteTo(writer io.Writer) (int64, error) { + // TODO - + return 0, nil +} + +// GetProperties returns the writable properties. +// Uses reflection to convert a proto.Message (properties.Message, properties.Attachment, etc.) to a list of properties. +func (propertyWriter *PropertyWriter) GetProperties(properties *proto.Message) ([]Property, error) { + var writableProperties []Property + + propertyTypes := reflect.TypeOf(properties).Elem() + propertyValues := reflect.ValueOf(properties).Elem() + + for i := 0; i < propertyTypes.NumField(); i++ { + if !propertyTypes.Field(i).IsExported() || propertyValues.Field(i).IsNil() { + continue + } + + // Get the struct tag which we use to get the property ID and property type. + // These struct tags are generated by cmd/properties/generate.go. + tag := strings.ReplaceAll(propertyTypes.Field(i).Tag.Get("msg"), ",omitempty", "") + + if tag == "" { + fmt.Printf("Skipping property without tag: %s\n", propertyTypes.Field(i).Name) + continue + } + + propertyID, err := strconv.Atoi(strings.Split(tag, "-")[0]) + + if err != nil { + return nil, eris.Wrap(err, "failed to convert propertyID to int") + } + + propertyType, err := strconv.Atoi(strings.Split(tag, "-")[1]) + + if err != nil { + return nil, eris.Wrap(err, "failed to convert propertyType to int") + } + + var propertyBuffer bytes.Buffer + + switch propertyValue := propertyValues.Field(i).Elem().Interface().(type) { + case string: + // Binary is intended for fixed-size structures with obvious encodings. + // Strings are not fixed size and do not have an obvious encoding. + if _, err := io.WriteString(&propertyBuffer, propertyValue); err != nil { + return nil, eris.Wrap(err, "failed to write string") + } + default: + if err := binary.Write(&propertyBuffer, binary.LittleEndian, propertyValue); err != nil { + return nil, eris.Wrap(err, "failed to write property") + } + } + + writableProperties = append(writableProperties, Property{ + ID: pst.Identifier(propertyID), + Type: pst.PropertyType(propertyType), + Value: propertyBuffer, + }) + } + + return writableProperties, nil +} diff --git a/pkg/writer/table_context_writer.go b/pkg/writer/table_context_writer.go index 2250a73..c7b25e2 100644 --- a/pkg/writer/table_context_writer.go +++ b/pkg/writer/table_context_writer.go @@ -19,13 +19,17 @@ package writer import ( "bytes" "cmp" + "context" "encoding/binary" pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" + "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" "io" "math" "slices" + "sync" + "sync/atomic" ) // TableContextWriter represents a writer for a pst.TableContext. @@ -33,30 +37,70 @@ type TableContextWriter struct { // FormatType represents the FormatType. FormatType pst.FormatType // Properties represents the properties to write (properties.Attachment, properties.Folder etc). - Properties proto.Message + Properties []*proto.Message // BTreeOnHeapWriter represents the BTreeOnHeapWriter. BTreeOnHeapWriter *BTreeOnHeapWriter - // PropertiesWriter represents the PropertiesWriter. - PropertiesWriter *PropertiesWriter + // PropertyWriter represents the PropertyWriter. + PropertyWriter *PropertyWriter + // FolderWriteChannel represents a Go channel for writing folders. + FolderWriteChannel chan *FolderWriter + // FolderWritePool represents the pool used when writing. + // Used to limit the running writers. + FolderWritePool sync.Pool + // FolderWaitGroup is used to wait for the writers to complete. + FolderWaitGroup sync.WaitGroup + // TotalSize represents the total size in bytes of the written folders and underlying structures. + TotalSize atomic.Int64 } // NewTableContextWriter creates a new TableContextWriter. -func NewTableContextWriter(formatType pst.FormatType, properties proto.Message) *TableContextWriter { +func NewTableContextWriter(writer io.Writer, writeContext context.Context, writeLimit int, formatType pst.FormatType) *TableContextWriter { heapOnNodeWriter := NewHeapOnNodeWriter(pst.SignatureTypeTableContext) btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) - propertiesWriter := NewPropertiesWriter(properties) + propertyWriter := NewPropertyWriter(properties) - return &TableContextWriter{ + tableContextWriter := &TableContextWriter{ FormatType: formatType, Properties: properties, BTreeOnHeapWriter: btreeOnHeapWriter, - PropertiesWriter: propertiesWriter, + PropertyWriter: propertyWriter, } + + tableContextWriter.StartFolderWriteChannel(writer, writeContext, writeLimit) + + return tableContextWriter +} + +// StartFolderWriteChannel listens for folders to write to the Table Context. +func (tableContextWriter *TableContextWriter) StartFolderWriteChannel(writer io.Writer, writeContext context.Context, writeLimit int) (*errgroup.Group, context.Context) { + errGroup, folderWriteContext := errgroup.WithContext(writeContext) + + errGroup.SetLimit(writeLimit) + errGroup.Go(func() error { + for folder := range tableContextWriter.FolderWriteChannel { + folderWrittenSize, err := folder.WriteTo(writer) + + if err != nil { + return eris.Wrap(err, "failed to write folder") + } + + // Total size is used by the PST header to indicate the total size of the PST file. + tableContextWriter.TotalSize.Add(folderWrittenSize) + } + + return nil + }) + + return errGroup, folderWriteContext +} + +// AddFolder sends the folder to a write channel. +func (tableContextWriter *TableContextWriter) AddFolder(folder *FolderWriter) { + tableContextWriter.FolderWriteChannel <- folder } // WriteTo writes the pst.TableContext. -// References: -// - https://github.com/mooijtech/go-pst/blob/main/docs/README.md#creating-a-tc +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#creating-a-tc func (tableContextWriter *TableContextWriter) WriteTo(writer io.Writer) (int64, error) { btreeOnHeapWrittenSize, err := tableContextWriter.BTreeOnHeapWriter.WriteTo(writer) @@ -64,7 +108,7 @@ func (tableContextWriter *TableContextWriter) WriteTo(writer io.Writer) (int64, return 0, eris.Wrap(err, "failed to write BTree-on-Heap") } - properties, err := tableContextWriter.PropertiesWriter.GetProperties() + properties, err := tableContextWriter.PropertyWriter.GetProperties() if err != nil { return 0, eris.Wrap(err, "failed to get properties") diff --git a/pkg/writer/writer.go b/pkg/writer/writer.go index 19ea9ac..cbe0a27 100644 --- a/pkg/writer/writer.go +++ b/pkg/writer/writer.go @@ -19,8 +19,11 @@ package writer import ( "bytes" + "context" "github.com/mooijtech/go-pst/v6/pkg" + "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" + "golang.org/x/sync/errgroup" "hash/crc32" "io" ) @@ -29,18 +32,34 @@ import ( type Writer struct { // WriteOptions defines options used while writing. WriteOptions WriteOptions - // Folders to write. - Folders []*FolderWriter + // WriteGroup represents the writers running in Goroutines. + WriteGroup *errgroup.Group + // FolderWriteChannel represents a Go channel for writing folders. + FolderWriteChannel chan *FolderWriter } // NewWriter returns a writer for PST files. -func NewWriter(writeOptions WriteOptions) *Writer { - return &Writer{WriteOptions: writeOptions} +func NewWriter(writeGroup *errgroup.Group, writeOptions WriteOptions) *Writer { + return &Writer{ + WriteGroup: writeGroup, + WriteOptions: writeOptions, + FolderWriteChannel: make(chan *FolderWriter), + } } -// AddFolder adds a pst.Folder to write (used by WriteTo). -func (pstWriter *Writer) AddFolder(folder *FolderWriter) { - pstWriter.Folders = append(pstWriter.Folders, folder) +// AddFolders adds a pst.Folder to write (used by WriteTo). +func (pstWriter *Writer) AddFolders(folders ...*FolderWriter) { + for _, folder := range folders { + pstWriter.FolderWriteChannel <- folder + } +} + +// StartFolderWriteChannel starts the Go channel for writing folders. +func (pstWriter *Writer) StartFolderWriteChannel(writeGroup *errgroup.Group, writeGroupCancel context.CancelCauseFunc) { + writeGroup.Go(func() error { + + return nil + }) } // WriteOptions defines the options used during writing. @@ -60,6 +79,27 @@ func NewWriteOptions(formatType pst.FormatType, encryptionType pst.EncryptionTyp } // WriteTo writes the PST file. +// WriteTo follows the path to root folder (fixed pst.Identifier, pst.IdentifierRootFolder) then to the pst.TableContext of the root folder. +// Once there, we can get the child folders ([]pst.Identifier, see FolderWriter), each folder can contain messages (see MessageWriter). +// Each message uses the pst.BTreeOnHeapHeader to construct a pst.HeapOnNode (this is where the data is). +// +// Extending the pst.HeapOnNode (where the data is) we can also use Local Descriptors (extend where this data is): +// pst.LocalDescriptor (see LocalDescriptorsWriter) are B-Tree nodes pointing to other B-Tree nodes. +// These local descriptors also have the pst.HeapOnNode structure which can be built upon (explained below). +// Local Descriptors are used to store more data in the pst.HeapOnNode structure (B-Tree with the nodes containing the data). +// XBlocks and XXBlocks include an array of []pst.Identifier pointing to B-Tree nodes, it is the format used to store data (see BlockWriter). +// This structure is used by the Local Descriptors. +// +// Each pst.HeapOnNode can contain either a pst.TableContext or pst.PropertyContext: +// pst.TableContext (see TableContextWriter): +// The pst.TableContext contains a Row Matrix structure to store data, used by folders (to find data such as the folder identifiers ([]pst.Identifier)). +// The pst.TableContext is column structured with data exceeding 8 bytes moving to different B-Tree nodes: +// pst.HeapOnNode which is <= 3580 bytes. +// pst.LocalDescriptor which is > 3580 bytes. +// pst.PropertyContext (see PropertyContextWriter): +// The pst.PropertyContext contains a list of properties ([]pst.Property) of the message, we can write this with PropertyWriter. +// +// Combining these structures we make up a PST file to write. func (pstWriter *Writer) WriteTo(writer io.Writer) (int64, error) { var totalSize int64 @@ -75,13 +115,15 @@ func (pstWriter *Writer) WriteTo(writer io.Writer) (int64, error) { } // Write PST header. - // TODO - Root B-Trees headerWrittenSize, err := pstWriter.WriteHeader(writer, totalSize, 0, 0) if err != nil { return 0, eris.Wrap(err, "failed to write header") } + // Write the root folder. + rootFolder := NewFolderWriter(pstWriter.WriteOptions.FormatType, &properties.Folder{Name: "root"}, nil) + return totalSize + headerWrittenSize, nil } diff --git a/pkg/writer/writer_test.go b/pkg/writer/writer_test.go index 524b5dc..e4541f7 100644 --- a/pkg/writer/writer_test.go +++ b/pkg/writer/writer_test.go @@ -17,6 +17,7 @@ package writer import ( + "context" "github.com/mooijtech/go-pst/v6/pkg" "github.com/mooijtech/go-pst/v6/pkg/properties" "google.golang.org/protobuf/proto" @@ -26,32 +27,53 @@ import ( // TestWritePSTFile writes a new PST file. func TestWritePSTFile(t *testing.T) { + // Output file. outputFile, err := os.Create("1337.pst") if err != nil { t.Fatalf("Failed to create output file: %+v", err) } - writeOptions := NewWriteOptions(pst.FormatTypeUnicode, pst.EncryptionTypePermute) + // TODO - Unsupported Unicode4k, note that go-pst does not write OST files (I also don't have a test OST). + formatType := pst.FormatTypeUnicode + encryptionType := pst.EncryptionTypePermute + + // Define writer. + writeContext, writeCancel := context.WithCancel(context.Background()) + writeOptions := NewWriteOptions(formatType, encryptionType) writer := NewWriter(writeOptions) // Create messages to write. - messageProperties := &properties.Message{ + var messageProperties []*properties.Message + + messageProperties = append(messageProperties, &properties.Message{ Subject: proto.String("Hello world!"), From: proto.String("info@mooijtech.com"), Body: proto.String("go-pst now supports writing PST files."), - } - attachmentProperties := &properties.Attachment{ + }) + + // Attachment properties. + var attachmentProperties []*properties.Attachment + + attachmentProperties = append(attachmentProperties, &properties.Attachment{ AttachFilename: proto.String("nudes.png"), AttachLongFilename: proto.String("nudes.png"), - } + }) + + // Message attachments. messageAttachments := []*AttachmentWriter{NewAttachmentWriter(attachmentProperties)} + // Message message := NewMessageWriter(messageProperties, messageAttachments) - folderProperties := &properties.Folder{Name: "root"} - rootFolder := NewFolderWriter(folderProperties, []*MessageWriter{message}) + // Folder + rootFolder, err := NewFolderWriter(outputFile, context.Background(), -1, formatType) + + if err != nil { + t.Fatalf("Failed to create folder writer: %+v", err) + } + // Writer writer.AddFolder(rootFolder) if _, err := writer.WriteTo(outputFile); err != nil { @@ -64,7 +86,7 @@ func TestWriteTableContext(t *testing.T) { AttachLongFilename: proto.String("nudes.png"), } - tableContextWriter := NewTableContextWriter(&attachmentProperties) + tableContextWriter := NewTableContextWriter(pst.FormatTypeUnicode, &attachmentProperties) if _, err := tableContextWriter.WriteTo(os.Stdout); err != nil { t.Fatalf("Failed to write Table Context: %+v", err) From 67a48e19474a54c2b2ec14c1e912b08d6b24826a Mon Sep 17 00:00:00 2001 From: Marten Mooij Date: Tue, 5 Sep 2023 21:54:51 +0200 Subject: [PATCH 07/12] Bump to Go 1.21, write identifiers, more channels --- cmd/properties/generate.go | 4 + go.mod | 3 +- go.sum | 2 + pkg/btree.go | 25 ++++++ pkg/writer/attachment_writer.go | 13 +-- pkg/writer/folder_writer.go | 94 +++++++++++++------- pkg/writer/message_writer.go | 60 +++++++++++-- pkg/writer/name_to_id_map_writer.go | 21 +++++ pkg/writer/property_context_writer.go | 64 +++++++++++--- pkg/writer/property_writer.go | 50 ++++++----- pkg/writer/table_context_writer.go | 6 +- pkg/writer/writer.go | 69 ++++++++------- pkg/writer/writer_test.go | 118 ++++++++++++++++++-------- 13 files changed, 390 insertions(+), 139 deletions(-) create mode 100644 pkg/writer/name_to_id_map_writer.go diff --git a/cmd/properties/generate.go b/cmd/properties/generate.go index 2d80aca..631ac46 100644 --- a/cmd/properties/generate.go +++ b/cmd/properties/generate.go @@ -107,6 +107,10 @@ func main() { } else if err := propertyMap.Close(); err != nil { panic(errors.WithStack(err)) } + + // TODO - Validate properties exist, parse DOCX in the same way: + // TODO - [MS-OXCMSG]: Message and Attachment Object Protocol + // TODO - [MS-OXCFOLD]: Folder Object Protocol and } // download the latest version of [MS-OXPROPS].docx and returns the downloaded file. diff --git a/go.mod b/go.mod index ecd805e..95b3002 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/mooijtech/go-pst/v6 -go 1.20 +go 1.21 require ( github.com/emersion/go-message v0.16.0 @@ -15,6 +15,7 @@ require ( ) require ( + github.com/dustin/go-humanize v1.0.1 // indirect github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 // indirect github.com/libp2p/go-sockaddr v0.1.1 // indirect github.com/philhofer/fwd v1.1.2 // indirect diff --git a/go.sum b/go.sum index 7de4db4..0f6c30d 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,6 @@ github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/emersion/go-message v0.16.0 h1:uZLz8ClLv3V5fSFF/fFdW9jXjrZkXIpE1Fn8fKx7pO4= github.com/emersion/go-message v0.16.0/go.mod h1:pDJDgf/xeUIF+eicT6B/hPX/ZbEorKkUMPOxrPVG2eQ= github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 h1:IbFBtwoTQyw0fIM5xv1HF+Y+3ZijDR839WMulgxCcUY= diff --git a/pkg/btree.go b/pkg/btree.go index e9cb36c..36e0e18 100644 --- a/pkg/btree.go +++ b/pkg/btree.go @@ -18,6 +18,7 @@ package pst import ( "bytes" + "crypto/rand" "encoding/binary" "github.com/mooijtech/go-pst/v6/pkg/writer" "github.com/pkg/errors" @@ -302,6 +303,30 @@ func GetIdentifierSize(formatType FormatType) uint8 { // TODO - Document the int types per use case and use separate types. type Identifier int64 +// NewIdentifier creates a new identifier. +// Used by the writer so the B-Tree node can be identified. +func NewIdentifier(formatType FormatType) (Identifier, error) { + var identifierSize int + + switch formatType { + case FormatTypeUnicode: + identifierSize = 8 + case FormatTypeANSI: + identifierSize = 4 + default: + // TODO - Support FormatTypeUnicode4k + return 0, ErrFormatTypeUnsupported + } + + identifierBytes := make([]byte, identifierSize) + + if _, err := rand.Read(identifierBytes); err != nil { + return 0, eris.Wrap(err, "failed to read random bytes using crypto/rand") + } + + return Identifier(binary.LittleEndian.Uint64(identifierBytes)), nil +} + // Constants defining the special b-tree node identifiers. const ( IdentifierRootFolder Identifier = 290 diff --git a/pkg/writer/attachment_writer.go b/pkg/writer/attachment_writer.go index 8ec30d8..6216482 100644 --- a/pkg/writer/attachment_writer.go +++ b/pkg/writer/attachment_writer.go @@ -17,8 +17,8 @@ package writer import ( - "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" + "google.golang.org/protobuf/proto" "io" ) @@ -29,10 +29,13 @@ type AttachmentWriter struct { } // NewAttachmentWriter creates a new AttachmentWriter. -func NewAttachmentWriter(properties []*properties.Attachment) *AttachmentWriter { - return &AttachmentWriter{ - PropertyContextWriter: NewPropertyContextWriter(properties), - } +func NewAttachmentWriter() *AttachmentWriter { + return &AttachmentWriter{} +} + +// AddProperties adds the properties of the attachment (properties.Attachment). +func (attachmentWriter *AttachmentWriter) AddProperties(properties ...proto.Message) { + attachmentWriter.PropertyContextWriter.AddProperties(properties...) } // WriteTo writes the attachment. diff --git a/pkg/writer/folder_writer.go b/pkg/writer/folder_writer.go index a0686a0..fbdca89 100644 --- a/pkg/writer/folder_writer.go +++ b/pkg/writer/folder_writer.go @@ -17,17 +17,18 @@ package writer import ( - "context" pst "github.com/mooijtech/go-pst/v6/pkg" - "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" + "google.golang.org/protobuf/proto" "io" "sync/atomic" ) // FolderWriter represents a writer for folders. type FolderWriter struct { + // Writer represents the io.Writer to write to. + Writer io.Writer // FormatType represents the FormatType used while writing. FormatType pst.FormatType // FolderWriteChannel represents the Go channel for writing sub-folders. @@ -40,28 +41,52 @@ type FolderWriter struct { PropertyWriteChannel chan *PropertyWriter // TotalSize represents the total size of the PST file so far. TotalSize atomic.Int64 + // Identifier represents the identifier of this folder. + Identifier pst.Identifier } // NewFolderWriter creates a new FolderWriter. -func NewFolderWriter(writer io.Writer, writeContext context.Context, writeLimit int, writeGroup *errgroup.Group, formatType pst.FormatType) (*FolderWriter, error) { +func NewFolderWriter(writer io.Writer, writeGroup *errgroup.Group, formatType pst.FormatType) *FolderWriter { folderWriter := &FolderWriter{ + Writer: writer, FormatType: formatType, FolderWriteChannel: make(chan *FolderWriter), MessageWriteChannel: make(chan *MessageWriter), - TableContextWriter: NewTableContextWriter(writer, writeContext, writeLimit, formatType), + TableContextWriter: NewTableContextWriter(writer, writeGroup, formatType), PropertyWriteChannel: make(chan *PropertyWriter), } - // Start channels. - folderWriteChannelErrGroup, folderWriteChannelContext := folderWriter.StartFolderWriteChannel(writeContext) - messageWriteChannelErrGroup, messageWriteChannelContext := folderWriter.StartMessageWriteChannel(writeContext) + // Start channels for writing folders and messages. + folderWriter.StartFolderWriteChannel(writeGroup) + folderWriter.StartMessageWriteChannel(writeGroup) - return folderWriter, subFolderChannel + return folderWriter } -// SetProperties writes the properties of this folder. -func (folderWriter *FolderWriter) SetProperties(properties *properties.Folder) { +// SetIdentifier sets the identifier of the folder used when saving to B-Trees. +// This is mainly used for the pst.IdentifierRootFolder. +// Usually the identifier is automatically set by UpdateIdentifier which is called after WriteTo +func (folderWriter *FolderWriter) SetIdentifier(identifier pst.Identifier) { + folderWriter.Identifier = identifier +} + +// UpdateIdentifier is called after WriteTo so this folder can be identified in the B-Tree. +func (folderWriter *FolderWriter) UpdateIdentifier() error { + identifier, err := pst.NewIdentifier(folderWriter.FormatType) + + if err != nil { + return eris.Wrap(err, "failed to create identifier") + } + + folderWriter.Identifier = identifier + return nil +} + +// AddProperties writes the properties of this folder. +// TODO - Extend properties.Folder to include everything in [MS-OXCFOLD]: Folder Object Protocol. +func (folderWriter *FolderWriter) AddProperties(properties ...proto.Message) { + folderWriter.TableContextWriter.AddProperties(properties...) } // AddMessages adds a message to the channel to be written. @@ -71,18 +96,30 @@ func (folderWriter *FolderWriter) AddMessages(messageWriters ...*MessageWriter) } } -func (folderWriter *FolderWriter) StartMessageWriteChannel(writeContext context.Context) (*errgroup.Group, context.Context) { - messageWriteChannelErrGroup, messageWriteChannelContext := errgroup.WithContext(writeContext) +// StartMessageWriteChannel receives messages to write. +func (folderWriter *FolderWriter) StartMessageWriteChannel(writeGroup *errgroup.Group) { + writeGroup.Go(func() error { + var totalSize int64 + + for receivedMessage := range folderWriter.MessageWriteChannel { + // Write the message. + messageWrittenSize, err := receivedMessage.WriteTo(folderWriter.Writer) + + if err != nil { + return eris.Wrap(err, "failed to write message") + } + + totalSize += messageWrittenSize + } + + folderWriter.TotalSize.Add(totalSize) - messageWriteChannelErrGroup.Go(func() error { return nil }) - - return messageWriteChannelErrGroup, messageWriteChannelContext } // AddFolder queues the folder to be written, picked up by a Go channel. -// This is added to the TableContextWriter, so we can find these folders. +// The folders are added to the TableContextWriter. func (folderWriter *FolderWriter) AddFolder(folders ...*FolderWriter) { for _, folder := range folders { folderWriter.FolderWriteChannel <- folder @@ -91,43 +128,40 @@ func (folderWriter *FolderWriter) AddFolder(folders ...*FolderWriter) { // StartFolderWriteChannel listens for sub-folders to write. // The called is responsible for starting the write channel. -func (folderWriter *FolderWriter) StartFolderWriteChannel(folderChannelContext context.Context) (*errgroup.Group, context.Context) { - folderWriteChannelErrGroup, folderWriteChannelContext := errgroup.WithContext(folderChannelContext) - - folderWriteChannelErrGroup.Go(func() error { +func (folderWriter *FolderWriter) StartFolderWriteChannel(writeGroup *errgroup.Group) { + writeGroup.Go(func() error { for receivedFolder := range folderWriter.FolderWriteChannel { - writtenSize, err := folderWriter.TableContextWriter.AddFolder(receivedFolder) - - if err != nil { - return eris.Wrap(err, "failed to add folder to Table Context") - } - - // Callback - folderWriter + // Add folder to TableContextWriter write queue. + folderWriter.TableContextWriter.AddFolder(receivedFolder) } return nil }) - - return folderWriteChannelErrGroup, folderWriteChannelContext } // WriteTo writes the folder containing messages. // Returns the amount of bytes written to the output buffer. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#folders func (folderWriter *FolderWriter) WriteTo(writer io.Writer) (int64, error) { + // Write TableContext. tableContextWrittenSize, err := folderWriter.TableContextWriter.WriteTo(writer) if err != nil { return 0, eris.Wrap(err, "failed to write Table Context") } + // Write messages. messagesWrittenSize, err := folderWriter.WriteMessages(writer) if err != nil { return 0, eris.Wrap(err, "failed to write messages") } + // Make this written folder findable in the B-Tree. + if err := folderWriter.UpdateIdentifier(); err != nil { + return 0, eris.Wrap(err, "failed to update identifier") + } + return tableContextWrittenSize + messagesWrittenSize, nil } diff --git a/pkg/writer/message_writer.go b/pkg/writer/message_writer.go index 75a5a95..0958719 100644 --- a/pkg/writer/message_writer.go +++ b/pkg/writer/message_writer.go @@ -18,36 +18,69 @@ package writer import ( "context" + pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" + "google.golang.org/protobuf/proto" "io" ) // MessageWriter represents a message that can be written to a PST file. type MessageWriter struct { + // FormatType represents the FormatType used while writing. + FormatType pst.FormatType // PropertyWriter represents the writer for properties to the PropertyContextWriter. PropertyWriter *PropertyWriter // AttachmentWriteChannel represents the Go channel for writing attachments. AttachmentWriteChannel chan *AttachmentWriter // PropertyContextWriter writes the pst.PropertyContext of a pst.Message. PropertyContextWriter *PropertyContextWriter + // MessageWriteChannel represents the Go channel used to process writing messages. + MessageWriteChannel chan *MessageWriter + // TODO - Do we need this? + //MessageWriteCallback represents the callback called for each written message. + //MessageWriteCallback chan * + // Identifier represents the identifier of this message, which is used in the B-Tree. + Identifier pst.Identifier } +//type MessageWriteCallback func() + // NewMessageWriter creates a new MessageWriter. -func NewMessageWriter() *MessageWriter { +func NewMessageWriter(formatType pst.FormatType, writeGroup *errgroup.Group) *MessageWriter { + propertyWriteCallbackChannel := make(chan Property) + return &MessageWriter{ - Properties: properties, - Attachments: attachments, - PropertyContextWriter: NewPropertyContextWriter(properties), + FormatType: formatType, + PropertyWriter: NewPropertyWriter(writeGroup, propertyWriteCallbackChannel), + PropertyContextWriter: NewPropertyContextWriter(writeGroup), } + + propertyWriteCallbackChannel := NewMessageCallbackHandler() +} + +// MessageCallbackHandler writes the received messages. +type MessageCallbackHandler struct { + MessageWriter *MessageWriter +} + +// NewMessageCallbackHandler creates a new MessageCallbackHandler. +func NewMessageCallbackHandler() *MessageCallbackHandler { + return &MessageCallbackHandler{} +} + +func (messageCallbackHandler *MessageCallbackHandler) Handle(message *properties.Message) { + messageCallbackHandler.MessageWriter.AddRawProperties(message) } -func (messageWriter *MessageWriter) SetProperties(properties *properties.Message) { +// AddProperties add the message properties (properties.Message). +// The messages are sent to a Go channel for processing. +func (messageWriter *MessageWriter) AddProperties(properties ...proto.Message) { } -func (messageWriter *MessageWriter) AddAttachments(attachments ...[]*AttachmentWriter) { +func (messageWriter *MessageWriter) AddAttachments(attachments ...*AttachmentWriter) { } @@ -63,6 +96,16 @@ func (messageWriter *MessageWriter) StartAttachmentWriteChannel(writeContext con return attachmentWriteChannelErrGroup, attachmentWriteChannelContext } +func (messageWriter *MessageWriter) UpdateIdentifier() error { + identifier, err := pst.NewIdentifier(messageWriter.FormatType) + + if err != nil { + return eris.Wrap(err, "failed to create identifier") + } + + messageWriter.Identifier = identifier +} + // WriteTo writes the message property context. func (messageWriter *MessageWriter) WriteTo(writer io.Writer) (int64, error) { // Write Property Context. @@ -85,5 +128,10 @@ func (messageWriter *MessageWriter) WriteTo(writer io.Writer) (int64, error) { attachmentsWrittenSize += written } + // Make this message findable in the B-Tree. + if err := messageWriter.UpdateIdentifier(); err != nil { + return 0, eris.Wrap(err, "failed to update identifier") + } + return propertyContextWrittenSize + attachmentsWrittenSize, nil } diff --git a/pkg/writer/name_to_id_map_writer.go b/pkg/writer/name_to_id_map_writer.go new file mode 100644 index 0000000..fb3244d --- /dev/null +++ b/pkg/writer/name_to_id_map_writer.go @@ -0,0 +1,21 @@ +package writer + +import "io" + +// NameToIDMapWriter defines a writer for the Name-to-ID-Map. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#name-to-id-map +type NameToIDMapWriter struct { + PropertyContextWriter *PropertyContextWriter +} + +// NewNameToIDMapWriter creates a new NameToIDMapWriter. +func NewNameToIDMapWriter() *NameToIDMapWriter { + return &NameToIDMapWriter{ + PropertyContextWriter: NewPropertyContextWriter(), + } +} + +func (nameToIDMapWriter *NameToIDMapWriter) WriteTo(writer io.Writer) (int64, error) { + // The minimum requirement for the Name-to-ID Map is a PC node with a single property PidTagNameidBucketCount set to a value of 251 (0xFB) + return nameToIDMapWriter.PropertyContextWriter. +} \ No newline at end of file diff --git a/pkg/writer/property_context_writer.go b/pkg/writer/property_context_writer.go index 85c2396..051b7b8 100644 --- a/pkg/writer/property_context_writer.go +++ b/pkg/writer/property_context_writer.go @@ -20,34 +20,78 @@ import ( "bytes" pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" + "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" "io" + "log/slog" + "sync/atomic" ) // PropertyContextWriter represents a writer for a pst.PropertyContext. type PropertyContextWriter struct { + // Writer represents the io.Writer used when writing. + Writer io.Writer // BTreeOnHeapWriter represents the BTreeOnHeapWriter. BTreeOnHeapWriter *BTreeOnHeapWriter - // PropertiesWriter represents the PropertiesWriter. - PropertiesWriter *PropertyWriter + // PropertyWriter represents the PropertyWriter. + PropertyWriter *PropertyWriter + // PropertyWriteCallbackChannel represents the callback channel for writable properties. + PropertyWriteCallbackChannel chan Property // LocalDescriptorsWriter represents the LocalDescriptorsWriter. LocalDescriptorsWriter *LocalDescriptorsWriter + // WriteGroup represents Goroutines running writers. + WriteGroup *errgroup.Group + // TotalSize represents the total byte size written. + // TODO - Don't use atomic, pass int64 to callback per processed? + TotalSize atomic.Int64 } // NewPropertyContextWriter creates a new PropertyContextWriter. -func NewPropertyContextWriter(properties []*proto.Message) *PropertyContextWriter { +func NewPropertyContextWriter(formatType pst.FormatType, btreeType pst.BTreeType, btreeNodes []pst.Identifier, writeGroup *errgroup.Group) *PropertyContextWriter { heapOnNodeWriter := NewHeapOnNodeWriter(pst.SignatureTypePropertyContext) btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) - propertiesWriter := NewPropertyWriter(properties) - localDescriptorsWriter := NewLocalDescriptorsWriter() + propertyWriteCallbackChannel := make(chan Property) + propertyWriter := NewPropertyWriter(writeGroup, propertyWriteCallbackChannel) + localDescriptorsWriter := NewLocalDescriptorsWriter(formatType, btreeType, btreeNodes) + + propertyContextWriter := &PropertyContextWriter{ + BTreeOnHeapWriter: btreeOnHeapWriter, + PropertyWriter: propertyWriter, + PropertyWriteCallbackChannel: propertyWriteCallbackChannel, + LocalDescriptorsWriter: localDescriptorsWriter, + WriteGroup: writeGroup, + } + + // Start Go channel for the property write callback. + go propertyContextWriter.StartWriteCallbackHandler(propertyWriteCallbackChannel) + + return propertyContextWriter +} + +// StartWriteCallbackHandler handles writing a received writable Property. +func (propertyContextWriter *PropertyContextWriter) StartWriteCallbackHandler(writeCallbackChannel chan Property) { + for property := range writeCallbackChannel { + propertyContextWriter.WriteGroup.Go(func() error { + slog.Debug("Writing property...", "identifier", property.ID) + + // Write the property. + if _, err := property.WriteTo(propertyContextWriter.Writer); err != nil { + return eris.Wrap(err, "failed to write property") + } - return &PropertyContextWriter{ - BTreeOnHeapWriter: btreeOnHeapWriter, - PropertiesWriter: propertiesWriter, - LocalDescriptorsWriter: localDescriptorsWriter, + return nil + }) } } +func (propertyContextWriter *PropertyContextWriter) AddProperties(properties ...proto.Message) { + propertyContextWriter.PropertyWriter.AddProperties(properties...) +} + +func (propertyContextWriter *PropertyContextWriter) AddRawProperty(property Property) { + +} + // WriteTo writes the pst.PropertyContext. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#property-context-pc func (propertyContextWriter *PropertyContextWriter) WriteTo(writer io.Writer) (int64, error) { @@ -69,7 +113,7 @@ func (propertyContextWriter *PropertyContextWriter) WriteTo(writer io.Writer) (i // WriteProperties writes the properties. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#pc-bth-record func (propertyContextWriter *PropertyContextWriter) WriteProperties(writer io.Writer) (int64, error) { - properties, err := propertyContextWriter.PropertiesWriter.GetProperties() + properties, err := propertyContextWriter.PropertyWriter.GetProperties() if err != nil { return 0, eris.Wrap(err, "failed to get properties") diff --git a/pkg/writer/property_writer.go b/pkg/writer/property_writer.go index 7f9b246..5096eea 100644 --- a/pkg/writer/property_writer.go +++ b/pkg/writer/property_writer.go @@ -2,7 +2,6 @@ package writer import ( "bytes" - "context" "encoding/binary" "fmt" pst "github.com/mooijtech/go-pst/v6/pkg" @@ -18,55 +17,64 @@ import ( // PropertyWriter represents a writer for properties. type PropertyWriter struct { // PropertyWriteChannel represents the Go channel for writing properties. - PropertyWriteChannel chan *proto.Message + PropertyWriteChannel chan proto.Message // PropertyWriteCallbackChannel is called when a property has been written. PropertyWriteCallbackChannel chan Property } // NewPropertyWriter creates a new PropertyWriter. -func NewPropertyWriter(propertyWriteCallbackChannel chan Property, propertyWriteChannelContext context.Context) (*PropertyWriter, *errgroup.Group, context.Context) { +// propertyWriteCallbackChannel is not required. +func NewPropertyWriter(writeGroup *errgroup.Group, propertyWriteCallbackChannel chan Property) *PropertyWriter { propertyWriter := &PropertyWriter{ - PropertyWriteChannel: make(chan *proto.Message), + PropertyWriteChannel: make(chan proto.Message), PropertyWriteCallbackChannel: propertyWriteCallbackChannel, } - propertyWriteChannelErrGroup, propertyWriteChannelContext := propertyWriter.StartPropertyWriteChannel(propertyWriteChannelContext) + // Start the property write channel. + if propertyWriteCallbackChannel == nil { + // TODO - Remove this. + fmt.Printf("Skipping propertyWriteCallbackChannel") + } + + go propertyWriter.StartPropertyWriteChannel(writeGroup) - return propertyWriter, propertyWriteChannelErrGroup, propertyWriteChannelContext + return propertyWriter } -// AddProperties adds the properties to write. -func (propertyWriter *PropertyWriter) AddProperties(properties []*proto.Message) { +//// SetProperties sets the properties the properties to write. +//func (propertyWriter *PropertyWriter) SetProperties(properties proto.Message) { +// propertyWriter.PropertyWriteChannel <- properties +//} + +// AddProperties sends the properties to the write queue. +func (propertyWriter *PropertyWriter) AddProperties(properties ...proto.Message) { for _, property := range properties { propertyWriter.PropertyWriteChannel <- property } } // StartPropertyWriteChannel starts the Go channel for writing properties. -func (propertyWriter *PropertyWriter) StartPropertyWriteChannel(propertyWriteChannelContext context.Context) (*errgroup.Group, context.Context) { - propertyWriteChannelErrGroup, propertyWriteChannelContext := errgroup.WithContext(propertyWriteChannelContext) - - propertyWriteChannelErrGroup.Go(func() error { - for receivedProperties := range propertyWriter.PropertyWriteChannel { - // Create writable property. +func (propertyWriter *PropertyWriter) StartPropertyWriteChannel(writeGroup *errgroup.Group) { + for receivedProperties := range propertyWriter.PropertyWriteChannel { + writeGroup.Go(func() error { + // Create writable byte representation of the property. writableProperties, err := propertyWriter.GetProperties(receivedProperties) if err != nil { return eris.Wrap(err, "failed to get writable properties") } - // Send writable property to callback. + // Send writable byte representation Property to the callback, + // in the callback the Property is added to the PropertyContextWriter. if propertyWriter.PropertyWriteCallbackChannel != nil { for _, writableProperty := range writableProperties { propertyWriter.PropertyWriteCallbackChannel <- writableProperty } } - } - - return nil - }) - return propertyWriteChannelErrGroup, propertyWriteChannelContext + return nil + }) + } } // Property represents a property that can be written. @@ -85,7 +93,7 @@ func (property *Property) WriteTo(writer io.Writer) (int64, error) { // GetProperties returns the writable properties. // Uses reflection to convert a proto.Message (properties.Message, properties.Attachment, etc.) to a list of properties. -func (propertyWriter *PropertyWriter) GetProperties(properties *proto.Message) ([]Property, error) { +func (propertyWriter *PropertyWriter) GetProperties(properties proto.Message) ([]Property, error) { var writableProperties []Property propertyTypes := reflect.TypeOf(properties).Elem() diff --git a/pkg/writer/table_context_writer.go b/pkg/writer/table_context_writer.go index c7b25e2..147dedd 100644 --- a/pkg/writer/table_context_writer.go +++ b/pkg/writer/table_context_writer.go @@ -54,7 +54,7 @@ type TableContextWriter struct { } // NewTableContextWriter creates a new TableContextWriter. -func NewTableContextWriter(writer io.Writer, writeContext context.Context, writeLimit int, formatType pst.FormatType) *TableContextWriter { +func NewTableContextWriter(writer io.Writer, writeGroup *errgroup.Group, formatType pst.FormatType) *TableContextWriter { heapOnNodeWriter := NewHeapOnNodeWriter(pst.SignatureTypeTableContext) btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) propertyWriter := NewPropertyWriter(properties) @@ -99,6 +99,10 @@ func (tableContextWriter *TableContextWriter) AddFolder(folder *FolderWriter) { tableContextWriter.FolderWriteChannel <- folder } +func (tableContextWriter *TableContextWriter) AddProperties(properties ...proto.Message) { + tableContextWriter.PropertyWriter.AddProperties(properties...) +} + // WriteTo writes the pst.TableContext. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#creating-a-tc func (tableContextWriter *TableContextWriter) WriteTo(writer io.Writer) (int64, error) { diff --git a/pkg/writer/writer.go b/pkg/writer/writer.go index cbe0a27..ebcbf83 100644 --- a/pkg/writer/writer.go +++ b/pkg/writer/writer.go @@ -19,35 +19,46 @@ package writer import ( "bytes" - "context" "github.com/mooijtech/go-pst/v6/pkg" - "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" "hash/crc32" "io" + "sync/atomic" ) // Writer writes PST files. type Writer struct { - // WriteOptions defines options used while writing. - WriteOptions WriteOptions + // Writer represents the io.Writer to write to. + Writer io.Writer // WriteGroup represents the writers running in Goroutines. WriteGroup *errgroup.Group + // WriteOptions defines options used while writing. + WriteOptions WriteOptions // FolderWriteChannel represents a Go channel for writing folders. FolderWriteChannel chan *FolderWriter + // TotalSize represents the total bytes written. + // TODO - Don't use atomic? + TotalSize atomic.Int64 } // NewWriter returns a writer for PST files. -func NewWriter(writeGroup *errgroup.Group, writeOptions WriteOptions) *Writer { - return &Writer{ +func NewWriter(writer io.Writer, writeGroup *errgroup.Group, writeOptions WriteOptions) *Writer { + pstWriter := &Writer{ + Writer: writer, WriteGroup: writeGroup, WriteOptions: writeOptions, FolderWriteChannel: make(chan *FolderWriter), } + + // Start write channel. + go pstWriter.StartFolderWriteChannel(writeGroup) + + return pstWriter } // AddFolders adds a pst.Folder to write (used by WriteTo). +// Must contain at least a root folder (pst.IdentifierRootFolder). func (pstWriter *Writer) AddFolders(folders ...*FolderWriter) { for _, folder := range folders { pstWriter.FolderWriteChannel <- folder @@ -55,11 +66,20 @@ func (pstWriter *Writer) AddFolders(folders ...*FolderWriter) { } // StartFolderWriteChannel starts the Go channel for writing folders. -func (pstWriter *Writer) StartFolderWriteChannel(writeGroup *errgroup.Group, writeGroupCancel context.CancelCauseFunc) { - writeGroup.Go(func() error { +func (pstWriter *Writer) StartFolderWriteChannel(writeGroup *errgroup.Group) { + for folder := range pstWriter.FolderWriteChannel { + writeGroup.Go(func() error { + folderWrittenSize, err := folder.WriteTo(pstWriter.Writer) - return nil - }) + if err != nil { + return eris.Wrap(err, "failed to write folder") + } + + pstWriter.TotalSize.Add(folderWrittenSize) + + return nil + }) + } } // WriteOptions defines the options used during writing. @@ -101,36 +121,27 @@ func NewWriteOptions(formatType pst.FormatType, encryptionType pst.EncryptionTyp // // Combining these structures we make up a PST file to write. func (pstWriter *Writer) WriteTo(writer io.Writer) (int64, error) { - var totalSize int64 + totalSize := pstWriter.TotalSize.Load() - // Write folders. - for _, folderWriter := range pstWriter.Folders { - written, err := folderWriter.WriteTo(writer) - - if err != nil { - return 0, eris.Wrap(err, "failed to write folder") - } - - totalSize += written + // Wait for channels to finish. + if err := pstWriter.WriteGroup.Wait(); err != nil { + return 0, eris.Wrap(err, "writer failed") } // Write PST header. - headerWrittenSize, err := pstWriter.WriteHeader(writer, totalSize, 0, 0) + // TODO - Root b-tree nodes. + headerWrittenSize, err := pstWriter.WriteHeader(writer, pst.IdentifierRootFolder, pst.IdentifierRootFolder) if err != nil { return 0, eris.Wrap(err, "failed to write header") } - // Write the root folder. - rootFolder := NewFolderWriter(pstWriter.WriteOptions.FormatType, &properties.Folder{Name: "root"}, nil) - - return totalSize + headerWrittenSize, nil + return headerWrittenSize + totalSize, nil } // WriteHeader writes the PST header. -// totalSize is the total size of the PST file excluding the header. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#header-1 -func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNodeBTree pst.Identifier, rootBlockBTree pst.Identifier) (int64, error) { +func (pstWriter *Writer) WriteHeader(writer io.Writer, rootNodeBTree pst.Identifier, rootBlockBTree pst.Identifier) (int64, error) { var headerSize int switch pstWriter.WriteOptions.FormatType { @@ -204,7 +215,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode } // Header root - if _, err := pstWriter.WriteHeaderRoot(header, totalSize, rootNodeBTree, rootBlockBTree); err != nil { + if _, err := pstWriter.WriteHeaderRoot(header, rootNodeBTree, rootBlockBTree); err != nil { return 0, eris.Wrap(err, "failed to write header root") } @@ -256,7 +267,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // WriteHeaderRoot writes the header root. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#root -func (pstWriter *Writer) WriteHeaderRoot(writer io.Writer, totalSize int64, rootNodeBTree pst.Identifier, rootBlockBTree pst.Identifier) (int64, error) { +func (pstWriter *Writer) WriteHeaderRoot(writer io.Writer, rootNodeBTree pst.Identifier, rootBlockBTree pst.Identifier) (int64, error) { var headerSize int switch pstWriter.WriteOptions.FormatType { diff --git a/pkg/writer/writer_test.go b/pkg/writer/writer_test.go index e4541f7..88bd935 100644 --- a/pkg/writer/writer_test.go +++ b/pkg/writer/writer_test.go @@ -18,15 +18,24 @@ package writer import ( "context" + "fmt" + "github.com/dustin/go-humanize" "github.com/mooijtech/go-pst/v6/pkg" "github.com/mooijtech/go-pst/v6/pkg/properties" + "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" + "log/slog" "os" "testing" + "time" ) // TestWritePSTFile writes a new PST file. func TestWritePSTFile(t *testing.T) { + slog.Info("Starting go-pst...") + + startTime := time.Now() + // Output file. outputFile, err := os.Create("1337.pst") @@ -34,61 +43,98 @@ func TestWritePSTFile(t *testing.T) { t.Fatalf("Failed to create output file: %+v", err) } - // TODO - Unsupported Unicode4k, note that go-pst does not write OST files (I also don't have a test OST). + // TODO - Unsupported Unicode4k (test OST). formatType := pst.FormatTypeUnicode encryptionType := pst.EncryptionTypePermute - // Define writer. - writeContext, writeCancel := context.WithCancel(context.Background()) + // Setup Goroutines for the writers. + writeCancelContext, writeCancelFunc := context.WithCancel(context.Background()) + writeGroup, _ := errgroup.WithContext(writeCancelContext) + + defer writeCancelFunc() + + // Root writer which starts everything. writeOptions := NewWriteOptions(formatType, encryptionType) - writer := NewWriter(writeOptions) + writer := NewWriter(outputFile, writeGroup, writeOptions) - // Create messages to write. - var messageProperties []*properties.Message + // Root folder which can contain sub-folders with messages and attachments. + rootFolder := NewFolderWriter(outputFile, writeGroup, formatType) - messageProperties = append(messageProperties, &properties.Message{ - Subject: proto.String("Hello world!"), - From: proto.String("info@mooijtech.com"), - Body: proto.String("go-pst now supports writing PST files."), + if err != nil { + t.Fatalf("Failed to create folder writer: %+v", err) + } + + rootFolder.SetIdentifier(pst.IdentifierRootFolder) // Other folders automatically update their identifier. + rootFolder.AddProperties(&properties.Folder{ + Name: "IdentifierRootFolder", }) - // Attachment properties. - var attachmentProperties []*properties.Attachment + // Add sub-folders. + for i := 0; i < 6; i++ { + subFolder := NewFolderWriter(outputFile, writeGroup, formatType) - attachmentProperties = append(attachmentProperties, &properties.Attachment{ - AttachFilename: proto.String("nudes.png"), - AttachLongFilename: proto.String("nudes.png"), - }) + subFolder.AddProperties(&properties.Folder{ + Name: fmt.Sprintf("Sub-folder #%d", i), + }) - // Message attachments. - messageAttachments := []*AttachmentWriter{NewAttachmentWriter(attachmentProperties)} + // Add messages to the sub-folder. + message := NewMessageWriter(formatType, writeGroup) - // Message - message := NewMessageWriter(messageProperties, messageAttachments) + message.AddProperties(&properties.Message{ + Subject: proto.String("Goodbye, world!"), + }) - // Folder - rootFolder, err := NewFolderWriter(outputFile, context.Background(), -1, formatType) + // Add attachments to message. + for x := 0; x < 9; x++ { + attachment := NewAttachmentWriter() - if err != nil { - t.Fatalf("Failed to create folder writer: %+v", err) + attachment.AddProperties(&properties.Attachment{ + AttachFilename: proto.String(fmt.Sprintf("nudes%d.png", x)), + AttachLongFilename: proto.String(fmt.Sprintf("nudes%d.png", x)), + }) + + message.AddAttachments(attachment) + } + + // Add sub-folders with messages containing attachments to root folder. + rootFolder.AddFolder(subFolder) } - // Writer - writer.AddFolder(rootFolder) + // Writer which starts everything (has the PST file header). + writer.AddFolders(rootFolder) + + // WriteTo writes the PST file. + // WriteTo follows the path to root folder (fixed pst.Identifier, pst.IdentifierRootFolder) then to the pst.TableContext of the root folder. + // Once there, we can get the child folders ([]pst.Identifier, see FolderWriter), each folder can contain messages (see MessageWriter). + // Each message uses the pst.BTreeOnHeapHeader to construct a pst.HeapOnNode (this is where the data is). + // + // Extending the pst.HeapOnNode (where the data is) we can also use Local Descriptors (extend where this data is): + // pst.LocalDescriptor (see LocalDescriptorsWriter) are B-Tree nodes pointing to other B-Tree nodes. + // These local descriptors also have the pst.HeapOnNode structure which can be built upon (explained below). + // Local Descriptors are used to store more data in the pst.HeapOnNode structure (B-Tree with the nodes containing the data). + // XBlocks and XXBlocks include an array of []pst.Identifier pointing to B-Tree nodes, it is the format used to store data (see BlockWriter). + // This structure is used by the Local Descriptors. + // + // Each pst.HeapOnNode can contain either a pst.TableContext or pst.PropertyContext: + // pst.TableContext (see TableContextWriter): + // The pst.TableContext contains a Row Matrix structure to store data, used by folders (to find data such as the folder identifiers ([]pst.Identifier)). + // The pst.TableContext is column structured with data exceeding 8 bytes moving to different B-Tree nodes: + // pst.HeapOnNode which is <= 3580 bytes. + // pst.LocalDescriptor which is > 3580 bytes. + // pst.PropertyContext (see PropertyContextWriter): + // The pst.PropertyContext contains a list of properties ([]pst.Property) of the message, we can write this with PropertyWriter. + // + // Combining these structures we make up a PST file to write. + bytesWritten, err := writer.WriteTo(outputFile) - if _, err := writer.WriteTo(outputFile); err != nil { + if err != nil { t.Fatalf("Failed to write PST file: %+v", err) } -} -func TestWriteTableContext(t *testing.T) { - attachmentProperties := properties.Attachment{ - AttachLongFilename: proto.String("nudes.png"), + // Wait for writers to finish. + if err := writeGroup.Wait(); err != nil { + t.Fatalf("Failed to write PST file: %+v", err) } - tableContextWriter := NewTableContextWriter(pst.FormatTypeUnicode, &attachmentProperties) - - if _, err := tableContextWriter.WriteTo(os.Stdout); err != nil { - t.Fatalf("Failed to write Table Context: %+v", err) - } + fmt.Printf("Wrote %s in %s", humanize.Bytes(uint64(bytesWritten)), humanize.Time(time.Now().Add(-time.Since(startTime)))) } From b04bf21b9f567f7c7eb84fe14f780e2a8a50ffce Mon Sep 17 00:00:00 2001 From: Marten Mooij Date: Wed, 6 Sep 2023 00:46:07 +0200 Subject: [PATCH 08/12] Merge writer to pst package --- examples/reader.go | 1 + .../writer_test.go => examples/writer.go | 34 +-- go.mod | 3 +- go.sum | 5 + pkg/{writer => }/attachment_writer.go | 23 +- pkg/{writer => }/block_writer.go | 22 +- pkg/btree.go | 27 ++- pkg/{writer => }/btree_on_heap_writer.go | 5 +- pkg/btree_writer.go | 209 ++++++++++++++++++ pkg/{writer => }/folder_writer.go | 86 +++---- pkg/{writer => }/heap_on_node_writer.go | 7 +- pkg/{writer => }/local_descriptors_writer.go | 79 ++++--- pkg/{writer => }/message_store_writer.go | 2 +- pkg/{writer => }/message_writer.go | 50 +++-- pkg/{writer => }/name_to_id_map_writer.go | 2 +- pkg/{writer => }/property_context_writer.go | 122 +++++----- pkg/{writer => }/property_writer.go | 16 +- pkg/{writer => }/table_context_writer.go | 11 +- pkg/{writer => }/utils.go | 2 +- pkg/{writer => }/writer.go | 161 +++++++++----- pkg/writer/btree_writer.go | 140 ------------ pkg/writer_test.go | 26 +++ 22 files changed, 572 insertions(+), 461 deletions(-) create mode 100644 examples/reader.go rename pkg/writer/writer_test.go => examples/writer.go (81%) rename pkg/{writer => }/attachment_writer.go (58%) rename pkg/{writer => }/block_writer.go (87%) rename pkg/{writer => }/btree_on_heap_writer.go (96%) create mode 100644 pkg/btree_writer.go rename pkg/{writer => }/folder_writer.go (67%) rename pkg/{writer => }/heap_on_node_writer.go (95%) rename pkg/{writer => }/local_descriptors_writer.go (51%) rename pkg/{writer => }/message_store_writer.go (98%) rename pkg/{writer => }/message_writer.go (76%) rename pkg/{writer => }/name_to_id_map_writer.go (97%) rename pkg/{writer => }/property_context_writer.go (54%) rename pkg/{writer => }/property_writer.go (91%) rename pkg/{writer => }/table_context_writer.go (96%) rename pkg/{writer => }/utils.go (98%) rename pkg/{writer => }/writer.go (66%) delete mode 100644 pkg/writer/btree_writer.go create mode 100644 pkg/writer_test.go diff --git a/examples/reader.go b/examples/reader.go new file mode 100644 index 0000000..06ab7d0 --- /dev/null +++ b/examples/reader.go @@ -0,0 +1 @@ +package main diff --git a/pkg/writer/writer_test.go b/examples/writer.go similarity index 81% rename from pkg/writer/writer_test.go rename to examples/writer.go index 88bd935..8301d30 100644 --- a/pkg/writer/writer_test.go +++ b/examples/writer.go @@ -1,43 +1,29 @@ -// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). -// -// Copyright 2023 Marten Mooij -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package writer +package main import ( - "context" + "flag" "fmt" "github.com/dustin/go-humanize" - "github.com/mooijtech/go-pst/v6/pkg" + pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/mooijtech/go-pst/v6/pkg/properties" "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" "log/slog" "os" - "testing" "time" ) -// TestWritePSTFile writes a new PST file. -func TestWritePSTFile(t *testing.T) { +func main() { + outputName := *flag.String("output", "1337.pst", "Specifies the output path of the PST file.") + + flag.Parse() + slog.Info("Starting go-pst...") startTime := time.Now() // Output file. - outputFile, err := os.Create("1337.pst") + outputFile, err := os.Create(outputName) if err != nil { t.Fatalf("Failed to create output file: %+v", err) @@ -64,7 +50,7 @@ func TestWritePSTFile(t *testing.T) { t.Fatalf("Failed to create folder writer: %+v", err) } - rootFolder.SetIdentifier(pst.IdentifierRootFolder) // Other folders automatically update their identifier. + rootFolder.SetIdentifier(pst.IdentifierRootFolder) rootFolder.AddProperties(&properties.Folder{ Name: "IdentifierRootFolder", }) diff --git a/go.mod b/go.mod index 95b3002..c335588 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/mooijtech/go-pst/v6 go 1.21 require ( + github.com/dustin/go-humanize v1.0.1 github.com/emersion/go-message v0.16.0 github.com/godzie44/go-uring v0.0.0-20220926161041-69611e8b13d5 github.com/pkg/errors v0.9.1 @@ -10,12 +11,12 @@ require ( github.com/tidwall/btree v1.6.0 github.com/tinylib/msgp v1.1.8 golang.org/x/net v0.10.0 + golang.org/x/sync v0.1.0 golang.org/x/text v0.10.0 google.golang.org/protobuf v1.30.0 ) require ( - github.com/dustin/go-humanize v1.0.1 // indirect github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 // indirect github.com/libp2p/go-sockaddr v0.1.1 // indirect github.com/philhofer/fwd v1.1.2 // indirect diff --git a/go.sum b/go.sum index 0f6c30d..3bf0e93 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,5 @@ github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/emersion/go-message v0.16.0 h1:uZLz8ClLv3V5fSFF/fFdW9jXjrZkXIpE1Fn8fKx7pO4= @@ -17,9 +18,11 @@ github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rotisserie/eris v0.5.4 h1:Il6IvLdAapsMhvuOahHWiBnl1G++Q0/L5UIkI5mARSk= github.com/rotisserie/eris v0.5.4/go.mod h1:Z/kgYTJiJtocxCbFfvRmO+QejApzG6zpyky9G1A4g9s= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= @@ -37,6 +40,7 @@ golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -67,3 +71,4 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/writer/attachment_writer.go b/pkg/attachment_writer.go similarity index 58% rename from pkg/writer/attachment_writer.go rename to pkg/attachment_writer.go index 6216482..8a70215 100644 --- a/pkg/writer/attachment_writer.go +++ b/pkg/attachment_writer.go @@ -14,10 +14,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -package writer +package pst import ( + "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" + "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" "io" ) @@ -26,16 +28,25 @@ import ( type AttachmentWriter struct { // PropertyContextWriter represents the PropertyContextWriter. PropertyContextWriter *PropertyContextWriter + // AttachmentWriteChannel represents the Go channel for writing attachments. + AttachmentWriteChannel chan *properties.Attachment } // NewAttachmentWriter creates a new AttachmentWriter. -func NewAttachmentWriter() *AttachmentWriter { - return &AttachmentWriter{} +func NewAttachmentWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType, btreeType BTreeType) *AttachmentWriter { + propertyWriteCallbackChannel := make(chan WriteCallbackResponse) + propertyContextWriter := NewPropertyContextWriter(writer, writeGroup, propertyWriteCallbackChannel, formatType, btreeType) + attachmentWriteChannel := make(chan *properties.Attachment) + + return &AttachmentWriter{ + PropertyContextWriter: propertyContextWriter, + AttachmentWriteChannel: attachmentWriteChannel, + } } -// AddProperties adds the properties of the attachment (properties.Attachment). -func (attachmentWriter *AttachmentWriter) AddProperties(properties ...proto.Message) { - attachmentWriter.PropertyContextWriter.AddProperties(properties...) +// AddAttachments adds the properties of the attachment (properties.Attachment). +func (attachmentWriter *AttachmentWriter) AddAttachments(attachments ...proto.Message) { + attachmentWriter.PropertyContextWriter.AddProperties(attachments...) } // WriteTo writes the attachment. diff --git a/pkg/writer/block_writer.go b/pkg/block_writer.go similarity index 87% rename from pkg/writer/block_writer.go rename to pkg/block_writer.go index c2be566..a46b2b3 100644 --- a/pkg/writer/block_writer.go +++ b/pkg/block_writer.go @@ -1,8 +1,7 @@ -package writer +package pst import ( "bytes" - pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" "io" ) @@ -11,16 +10,17 @@ import ( // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#data-tree type BlockWriter struct { // FormatType represents the FormatType used while writing. - FormatType pst.FormatType - // Identifiers pointing to B-Tree nodes. - Identifiers []pst.Identifier + FormatType FormatType + // BlockWriteChannel represents a Go channel used for writing blocks. + BlockWriteChannel chan Identifier + // BlockWriteCallback represents the callback which is called once a block is written. + BlockWriteCallback chan int } // NewBlockWriter creates a new BlockWriter. -func NewBlockWriter(formatType pst.FormatType, identifiers []pst.Identifier) *BlockWriter { +func NewBlockWriter(formatType FormatType) *BlockWriter { return &BlockWriter{ - FormatType: formatType, - Identifiers: identifiers, + FormatType: formatType, } } @@ -48,12 +48,12 @@ func (blockWriter *BlockWriter) WriteXBlock(writer io.Writer) (int64, error) { // (8 bytes for Unicode PST files, 4 bytes for ANSI PST files). for _, identifier := range blockWriter.Identifiers { switch blockWriter.FormatType { - case pst.FormatTypeUnicode: + case FormatTypeUnicode: xBlockBuffer.Write(GetUint64(uint64(identifier))) - case pst.FormatTypeANSI: + case FormatTypeANSI: xBlockBuffer.Write(GetUint32(uint32(identifier))) default: - return 0, pst.ErrFormatTypeUnsupported + return 0, ErrFormatTypeUnsupported } } // This field is present if the total size of all the other fields is not a multiple of 64. diff --git a/pkg/btree.go b/pkg/btree.go index 36e0e18..7f8689c 100644 --- a/pkg/btree.go +++ b/pkg/btree.go @@ -20,7 +20,6 @@ import ( "bytes" "crypto/rand" "encoding/binary" - "github.com/mooijtech/go-pst/v6/pkg/writer" "github.com/pkg/errors" "github.com/rotisserie/eris" "io" @@ -329,9 +328,20 @@ func NewIdentifier(formatType FormatType) (Identifier, error) { // Constants defining the special b-tree node identifiers. const ( - IdentifierRootFolder Identifier = 290 - IdentifierMessageStore Identifier = 33 - IdentifierNameToIDMap Identifier = 97 + IdentifierRootFolder Identifier = 290 + IdentifierMessageStore Identifier = 33 + IdentifierNameToIDMap Identifier = 97 + IdentifierNormalFolderTemplate Identifier = 161 + IdentifierSearchFolderTemplate Identifier = 193 + IdentifierSearchManagementQueue Identifier = 481 + IdentifierSearchActivityList Identifier = 513 + IdentifierReserved1 Identifier = 577 + IdentifierSearchDomainObject Identifier = 609 + IdentifierSearchGathererQueue Identifier = 641 + IdentifierSearchGathererDescriptor Identifier = 673 + IdentifierReserved2 Identifier = 737 + IdentifierReserved3 Identifier = 769 + IdentifierSearchGathererFolderQueue Identifier = 801 ) // GetType returns the IdentifierType of this Identifier. @@ -343,13 +353,18 @@ func (identifier Identifier) GetType() IdentifierType { return IdentifierType(identifier & 0x1F) } +// WriteTo writes the byte representation of the identifier. +func (identifier Identifier) WriteTo(writer io.Writer, formatType FormatType) (int, error) { + return writer.Write(identifier.Bytes(formatType)) +} + // Bytes returns the byte representation of the pst.Identifier. func (identifier Identifier) Bytes(formatType FormatType) []byte { switch formatType { case FormatTypeUnicode: - return writer.GetUint64(uint64(identifier)) + return GetUint64(uint64(identifier)) case FormatTypeANSI: - return writer.GetUint32(uint32(identifier)) + return GetUint32(uint32(identifier)) default: // TODO - Support Unicode4k panic(ErrFormatTypeUnsupported) diff --git a/pkg/writer/btree_on_heap_writer.go b/pkg/btree_on_heap_writer.go similarity index 96% rename from pkg/writer/btree_on_heap_writer.go rename to pkg/btree_on_heap_writer.go index 3df74d5..6a70745 100644 --- a/pkg/writer/btree_on_heap_writer.go +++ b/pkg/btree_on_heap_writer.go @@ -14,11 +14,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -package writer +package pst import ( "bytes" - pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" "io" ) @@ -62,7 +61,7 @@ func (btreeOnHeapWriter *BTreeOnHeapWriter) WriteHeader(writer io.Writer) (int64 header := bytes.NewBuffer(make([]byte, 8)) // MUST be bTypeBTH. - header.WriteByte(byte(pst.SignatureTypeBTreeOnHeap)) + header.WriteByte(byte(SignatureTypeBTreeOnHeap)) // Size of the BTree Key value, in bytes. // This value MUST be set to 2, 4, 8, or 16. header.Write([]byte{8}) diff --git a/pkg/btree_writer.go b/pkg/btree_writer.go new file mode 100644 index 0000000..8a484c4 --- /dev/null +++ b/pkg/btree_writer.go @@ -0,0 +1,209 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package pst + +import ( + "bytes" + "github.com/rotisserie/eris" + "golang.org/x/sync/errgroup" + "io" +) + +// BTreeWriter represents a writer for B-Trees. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#btrees +type BTreeWriter struct { + // Writer represents the io.Writer which is used during writing. + Writer io.Writer + // WriteGroup represents writer running in Goroutines. + WriteGroup *errgroup.Group + // FormatType represents the FormatType to use during writing. + FormatType FormatType + // BTreeType represents the type of b-tree to write (node or block). + BTreeType BTreeType + // BTreeWriteChannel represents a Go channel for writing B-Tree nodes. + BTreeWriteChannel chan BTreeNode + // BTreeWriteCallback represents the callback which is called once a B-Tree node is written. + BTreeWriteCallback chan WriteCallbackResponse + // Identifier represents the identifier of the written B-Tree node so that it can be found in the B-Tree. + Identifier Identifier +} + +// NewBTreeWriter creates a new BTreeWriter. +func NewBTreeWriter(writer io.Writer, writeGroup *errgroup.Group, btreeWriteCallback chan WriteCallbackResponse, formatType FormatType, btreeType BTreeType) *BTreeWriter { + btreeWriteChannel := make(chan BTreeNode) + + btreeWriter := &BTreeWriter{ + Writer: writer, + WriteGroup: writeGroup, + FormatType: formatType, + BTreeType: btreeType, + BTreeWriteChannel: btreeWriteChannel, + BTreeWriteCallback: btreeWriteCallback, + } + + // Start the Go channel for writing B-Tree nodes. + go btreeWriter.StartBTreeNodeWriteChannel(btreeWriteChannel) + + return btreeWriter +} + +// UpdateIdentifier is called after WriteTo so that this B-Tree node can be found in the B-Tree. +func (btreeWriter *BTreeWriter) UpdateIdentifier() error { + identifier, err := NewIdentifier(btreeWriter.FormatType) + + if err != nil { + return eris.Wrap(err, "failed to create identifier") + } + + btreeWriter.Identifier = identifier + + return nil +} + +// AddBTreeNodes adds the B-Trees nodes to the write queue. +// Processed by StartBTreeNodeWriteChannel. +func (btreeWriter *BTreeWriter) AddBTreeNodes(btreeNodes ...BTreeNode) { + for _, btreeNode := range btreeNodes { + btreeWriter.BTreeWriteChannel <- btreeNode + } +} + +// StartBTreeNodeWriteChannel writes B-Tree nodes using Goroutines. +func (btreeWriter *BTreeWriter) StartBTreeNodeWriteChannel(btreeNodeWriteChannel chan BTreeNode) { + for btreeNode := range btreeNodeWriteChannel { + btreeWriter.WriteGroup.Go(func() error { + // Write the B-Tree node. + written, err := btreeNode.WriteTo(btreeWriter.Writer) + + if err != nil { + return eris.Wrap(err, "failed to write B-Tree node") + } + + // Callback, used to calculate the total size. + // "Share memory by communicating; don't communicate by sharing memory." + btreeWriter.BTreeWriteCallback <- NewWriteCallbackResponse(written) + + return nil + }) + } +} + +// WriteTo writes the B-Tree. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#btpage +func (btreeWriter *BTreeWriter) WriteTo(writer io.Writer, btreeNodes [][]byte, btreeNodeLevel int) (int64, error) { + btree := bytes.NewBuffer(make([]byte, 512)) // Same for Unicode and ANSI. + + // This section contains entries of the BTree array. + // The node if either a branch or leaf node depending on the node level. + for _, btreeNode := range btreeNodes { + if _, err := btree.Write(btreeNode); err != nil { + return 0, eris.Wrap(err, "failed to write B-Tree node") + } + } + + // The number of BTree entries stored in the page data. + // The entries depend on the value of this field. + btree.WriteByte(byte(len(btreeNodes))) + + // The maximum number of entries that can fit inside the page data. + btree.Write(make([]byte, 1)) // TODO + + // The size of each BTree entry, in bytes. + if btreeWriter.BTreeType == BTreeTypeNode && btreeNodeLevel == 0 { + switch btreeWriter.FormatType { + case FormatTypeUnicode: + btree.Write([]byte{32}) + case FormatTypeANSI: + btree.Write([]byte{16}) + default: + return 0, ErrFormatTypeUnsupported + } + } else { + switch btreeWriter.FormatType { + case FormatTypeUnicode: + btree.Write([]byte{24}) + case FormatTypeANSI: + btree.Write([]byte{12}) + default: + return 0, ErrFormatTypeUnsupported + } + } + + // The depth level of this page. + // Leaf nodes have a level of 0, while branch nodes have a level greater than 0. + // This value determines the type of B-Tree nodes (branch or leaf). + btree.WriteByte(byte(btreeNodeLevel)) + + // Padding that should be set to zero. + // Note that there is no padding in the ANSI version of the structure. + if btreeWriter.FormatType == FormatTypeUnicode { + btree.Write(make([]byte, 4)) + } + + // Page trailer. + // A PageTrailer structure with specific subfield values. + // The "ptype" subfield of "pageTrailer" should be set to "ptypeBBT" for a Block BTree page or "ptypeNBT" for a Node BTree page. + // The other subfields of "pageTrailer" should be set as specified in the documentation. + if _, err := btreeWriter.WritePageTrailer(btree, btreeWriter.BTreeType); err != nil { + return 0, eris.Wrap(err, "failed to write page trailer") + } + + return btree.WriteTo(writer) +} + +// WritePageTrailer writes the page tailer of the b-tree. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#pagetrailer +func (btreeWriter *BTreeWriter) WritePageTrailer(writer io.Writer, btreeType BTreeType, btreeFileOffset int64, btreeNodeIdentifier Identifier) (int64, error) { + pageTrailerBuffer := bytes.NewBuffer(make([]byte, 0)) + + // This value indicates if we are writing a node or block B-Tree. + pageTrailerBuffer.WriteByte(byte(btreeWriter.BTreeType)) + + // MUST be set to the same value as previous BTreeType. + pageTrailerBuffer.WriteByte(byte(btreeWriter.BTreeType)) + + // Page signature. + if _, err := btreeWriter.WriteBlockSignature(pageTrailerBuffer, btreeFileOffset, btreeNodeIdentifier); err != nil { + return 0, eris.Wrap(err, "failed to write page signature") + } + + // 32-bit CRC of the page data, excluding the page trailer. + // See section 5.3 for the CRC algorithm. + // TODO - Check if Microsoft uses a custom CRC. + // Note the locations of the dwCRC and bid are differs between the Unicode and ANSI version of this structure. + // TODO - pageTrailerBuffer.Write() + + // Write the identifier. + pageTrailerBuffer.Write(btreeNodeIdentifier.Bytes(btreeWriter.FormatType)) + + // The bidIndex for other page types are allocated from the special bidNextP counter in the HEADER structure. + // TODO - pageTrailerBuffer.Write() + + return 0, nil +} + +// WriteBlockSignature writes the block signature. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#block-signature +func (btreeWriter *BTreeWriter) WriteBlockSignature(writer io.Writer, fileOffset int64, identifier Identifier) (int, error) { + // A WORD is a 16-bit unsigned integer. + // A DWORD is a 32-bit unsigned integer. + // The signature is calculated by first obtaining the DWORD XOR result between the absolute file offset of the block and its identifier. + fileOffset ^= int64(identifier) + + // The WORD signature is then obtained by obtaining the XOR result between the higher and lower 16 bits of the DWORD obtained previously. + return writer.Write(GetUint16(uint16(fileOffset>>16) ^ uint16(fileOffset))) +} diff --git a/pkg/writer/folder_writer.go b/pkg/folder_writer.go similarity index 67% rename from pkg/writer/folder_writer.go rename to pkg/folder_writer.go index fbdca89..a3a0766 100644 --- a/pkg/writer/folder_writer.go +++ b/pkg/folder_writer.go @@ -14,15 +14,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -package writer +package pst import ( - pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" "io" - "sync/atomic" ) // FolderWriter represents a writer for folders. @@ -30,49 +28,50 @@ type FolderWriter struct { // Writer represents the io.Writer to write to. Writer io.Writer // FormatType represents the FormatType used while writing. - FormatType pst.FormatType + FormatType FormatType // FolderWriteChannel represents the Go channel for writing sub-folders. FolderWriteChannel chan *FolderWriter - // MessageWriteChannel represents the Go channel for writing messages to this folder. - MessageWriteChannel chan *MessageWriter + // FolderWriteCallback represents the callback which is called after writing a folder. + FolderWriteCallback chan WriteCallbackResponse + // MessageWriter represents the writer for messages. + MessageWriter *MessageWriter // TableContextWriter writes the pst.TableContext of the pst.Folder. TableContextWriter *TableContextWriter + // PropertyWriter represents the writer for properties. + PropertyWriter *PropertyWriter // PropertyWriteChannel represents the Go channel for writing []pst.Property. - PropertyWriteChannel chan *PropertyWriter - // TotalSize represents the total size of the PST file so far. - TotalSize atomic.Int64 + //PropertyWriteChannel chan *PropertyWriter // Identifier represents the identifier of this folder. - Identifier pst.Identifier + Identifier Identifier } // NewFolderWriter creates a new FolderWriter. -func NewFolderWriter(writer io.Writer, writeGroup *errgroup.Group, formatType pst.FormatType) *FolderWriter { +func NewFolderWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType) *FolderWriter { folderWriter := &FolderWriter{ - Writer: writer, - FormatType: formatType, - FolderWriteChannel: make(chan *FolderWriter), - MessageWriteChannel: make(chan *MessageWriter), - TableContextWriter: NewTableContextWriter(writer, writeGroup, formatType), - PropertyWriteChannel: make(chan *PropertyWriter), + Writer: writer, + FormatType: formatType, + MessageWriter: NewMessageWriter(writeGroup, formatType), + TableContextWriter: NewTableContextWriter(writer, writeGroup, formatType), } // Start channels for writing folders and messages. - folderWriter.StartFolderWriteChannel(writeGroup) - folderWriter.StartMessageWriteChannel(writeGroup) + go folderWriter.StartFolderWriteChannel(writeGroup) + go folderWriter.StartMessageWriteChannel(writeGroup) return folderWriter } -// SetIdentifier sets the identifier of the folder used when saving to B-Trees. +// SetIdentifier sets the identifier of the folder. // This is mainly used for the pst.IdentifierRootFolder. -// Usually the identifier is automatically set by UpdateIdentifier which is called after WriteTo -func (folderWriter *FolderWriter) SetIdentifier(identifier pst.Identifier) { +// Usually the identifier is automatically set by UpdateIdentifier after a WriteTo call. +func (folderWriter *FolderWriter) SetIdentifier(identifier Identifier) { folderWriter.Identifier = identifier } -// UpdateIdentifier is called after WriteTo so this folder can be identified in the B-Tree. +// UpdateIdentifier sets the identifier of the folder, so it can be identified in the B-Tree. +// Called after WriteTo. func (folderWriter *FolderWriter) UpdateIdentifier() error { - identifier, err := pst.NewIdentifier(folderWriter.FormatType) + identifier, err := NewIdentifier(folderWriter.FormatType) if err != nil { return eris.Wrap(err, "failed to create identifier") @@ -90,32 +89,8 @@ func (folderWriter *FolderWriter) AddProperties(properties ...proto.Message) { } // AddMessages adds a message to the channel to be written. -func (folderWriter *FolderWriter) AddMessages(messageWriters ...*MessageWriter) { - for _, messageWriter := range messageWriters { - folderWriter.MessageWriteChannel <- messageWriter - } -} - -// StartMessageWriteChannel receives messages to write. -func (folderWriter *FolderWriter) StartMessageWriteChannel(writeGroup *errgroup.Group) { - writeGroup.Go(func() error { - var totalSize int64 - - for receivedMessage := range folderWriter.MessageWriteChannel { - // Write the message. - messageWrittenSize, err := receivedMessage.WriteTo(folderWriter.Writer) - - if err != nil { - return eris.Wrap(err, "failed to write message") - } - - totalSize += messageWrittenSize - } - - folderWriter.TotalSize.Add(totalSize) - - return nil - }) +func (folderWriter *FolderWriter) AddMessages(messages ...proto.Message) { + folderWriter.MessageWriter.AddProperties(messages...) } // AddFolder queues the folder to be written, picked up by a Go channel. @@ -129,14 +104,15 @@ func (folderWriter *FolderWriter) AddFolder(folders ...*FolderWriter) { // StartFolderWriteChannel listens for sub-folders to write. // The called is responsible for starting the write channel. func (folderWriter *FolderWriter) StartFolderWriteChannel(writeGroup *errgroup.Group) { - writeGroup.Go(func() error { - for receivedFolder := range folderWriter.FolderWriteChannel { + for receivedFolder := range folderWriter.FolderWriteChannel { + // Listen for folders to write. + writeGroup.Go(func() error { // Add folder to TableContextWriter write queue. folderWriter.TableContextWriter.AddFolder(receivedFolder) - } - return nil - }) + return nil + }) + } } // WriteTo writes the folder containing messages. diff --git a/pkg/writer/heap_on_node_writer.go b/pkg/heap_on_node_writer.go similarity index 95% rename from pkg/writer/heap_on_node_writer.go rename to pkg/heap_on_node_writer.go index be815ae..6867cf5 100644 --- a/pkg/writer/heap_on_node_writer.go +++ b/pkg/heap_on_node_writer.go @@ -14,11 +14,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -package writer +package pst import ( "bytes" - pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" "io" ) @@ -26,11 +25,11 @@ import ( // HeapOnNodeWriter represents a writer for pst.HeapOnNode. type HeapOnNodeWriter struct { // SignatureType represents the higher level data structure of this Heap-on-Node. - SignatureType pst.SignatureType + SignatureType SignatureType } // NewHeapOnNodeWriter creates a new HeapOnNodeWriter. -func NewHeapOnNodeWriter(signatureType pst.SignatureType) *HeapOnNodeWriter { +func NewHeapOnNodeWriter(signatureType SignatureType) *HeapOnNodeWriter { return &HeapOnNodeWriter{ SignatureType: signatureType, } diff --git a/pkg/writer/local_descriptors_writer.go b/pkg/local_descriptors_writer.go similarity index 51% rename from pkg/writer/local_descriptors_writer.go rename to pkg/local_descriptors_writer.go index db6cb0e..c1205f0 100644 --- a/pkg/writer/local_descriptors_writer.go +++ b/pkg/local_descriptors_writer.go @@ -14,78 +14,77 @@ // See the License for the specific language governing permissions and // limitations under the License. -package writer +package pst import ( - "crypto/rand" - "encoding/binary" - pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" + "golang.org/x/sync/errgroup" "io" ) // LocalDescriptorsWriter represents a writer for Local Descriptors (B-Tree Nodes pointing to other B-Tree Nodes). // The LocalDescriptorsWriter can be used multiple times to create multiple local descriptors. type LocalDescriptorsWriter struct { + // Writer represents the io.Writer used while writing. + Writer io.Writer + // WriteGroup represents writers running in Goroutines. + WriteGroup *errgroup.Group // FormatType represents the FormatType used while writing. - FormatType pst.FormatType + FormatType FormatType // BTreeWriter represents the BTreeWriter. BTreeWriter *BTreeWriter // BlockWriter represents the BlocKWriter. BlockWriter *BlockWriter // Identifier represents the BTree node pst.Identifier of the Local Descriptor created after WriteTo has been called. - // Set by UpdateIdentifier, called after writing the Local Descriptor WriteTo. - Identifier pst.Identifier + // Set by UpdateIdentifier, called after writing the Local Descriptor using WriteTo. + Identifier Identifier } // NewLocalDescriptorsWriter creates a new LocalDescriptorsWriter. -func NewLocalDescriptorsWriter(formatType pst.FormatType, btreeType pst.BTreeType, btreeNodes []pst.Identifier) *LocalDescriptorsWriter { +func NewLocalDescriptorsWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType, btreeType BTreeType) *LocalDescriptorsWriter { + btreeWriteCallback := make(chan WriteCallbackResponse) + btreeWriter := NewBTreeWriter(writer, writeGroup, btreeWriteCallback, formatType, btreeType) + blockWriter := NewBlockWriter(formatType) + return &LocalDescriptorsWriter{ + Writer: writer, + WriteGroup: writeGroup, FormatType: formatType, - BTreeWriter: NewBTreeWriter(formatType, btreeType, btreeNodes), - BlockWriter: NewBlockWriter(formatType, btreeNodes), + BTreeWriter: btreeWriter, + BlockWriter: blockWriter, } } +// AddBTreeNodes adds B-Tree nodes to the Local Descriptor. +func (localDescriptorsWriter *LocalDescriptorsWriter) AddBTreeNodes(btreeNode ...BTreeNode) { + localDescriptorsWriter.BTreeWriter.AddBTreeNodes(btreeNode...) +} + +// AddProperty adds a Property to the Local Descriptors. +func (localDescriptorsWriter *LocalDescriptorsWriter) AddProperty(property Property) { + // Create a B-Tree node for this property. +} + // WriteTo writes the Local Descriptors. func (localDescriptorsWriter *LocalDescriptorsWriter) WriteTo(writer io.Writer) (int64, error) { - // Create B-Tree nodes for the Local Descriptors. - if _, err := localDescriptorsWriter.BTreeWriter.WriteTo(writer); err != nil { - return 0, eris.Wrap(err, "failed to write B-Tree nodes for the Local Descriptors") + // Set the Local Descriptors identifier. + if err := localDescriptorsWriter.UpdateIdentifier(); err != nil { + return 0, eris.Wrap(err, "failed to update identifier") } return 0, nil } -// GetIdentifier returns the identifier (pst.Identifier) of the written local descriptor. -// This will return an error if called before WriteTo has been called. -// References -func (localDescriptorsWriter *LocalDescriptorsWriter) UpdateIdentifier() (pst.Identifier, error) { - var identifierSize int +// UpdateIdentifier sets the identifier of the local descriptors so it can be found in the B-Tree. +// Called after WriteTo. +func (localDescriptorsWriter *LocalDescriptorsWriter) UpdateIdentifier() error { + identifier, err := NewIdentifier(localDescriptorsWriter.FormatType) - switch localDescriptorsWriter.FormatType { - case pst.FormatTypeUnicode: - identifierSize = 8 - case pst.FormatTypeANSI: - identifierSize = 4 - default: - return 0, pst.ErrFormatTypeUnsupported + if err != nil { + return eris.Wrap(err, "failed to create identifier") } - identifierBytes := make([]byte, identifierSize) - - if _, err := rand.Read(identifierBytes); err != nil { - return 0, eris.Wrap(err, "failed to read random bytes") - } - - var identifier int64 - - switch localDescriptorsWriter.FormatType { - case pst.FormatTypeUnicode: - identifier = int64(binary.LittleEndian.Uint64(identifierBytes)) - case pst.FormatTypeANSI: - identifier = int64(binary.LittleEndian.Uint32(identifierBytes)) - } + localDescriptorsWriter.Identifier = identifier - return pst.Identifier(identifier), nil + return nil } diff --git a/pkg/writer/message_store_writer.go b/pkg/message_store_writer.go similarity index 98% rename from pkg/writer/message_store_writer.go rename to pkg/message_store_writer.go index 114b8f5..6d4b38b 100644 --- a/pkg/writer/message_store_writer.go +++ b/pkg/message_store_writer.go @@ -14,7 +14,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package writer +package pst import ( "io" diff --git a/pkg/writer/message_writer.go b/pkg/message_writer.go similarity index 76% rename from pkg/writer/message_writer.go rename to pkg/message_writer.go index 0958719..d83beaa 100644 --- a/pkg/writer/message_writer.go +++ b/pkg/message_writer.go @@ -14,12 +14,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -package writer +package pst import ( "context" - pst "github.com/mooijtech/go-pst/v6/pkg" - "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" @@ -28,12 +26,14 @@ import ( // MessageWriter represents a message that can be written to a PST file. type MessageWriter struct { + // Writer represents the io.Writer used while writing. + Writer io.Writer // FormatType represents the FormatType used while writing. - FormatType pst.FormatType + FormatType FormatType // PropertyWriter represents the writer for properties to the PropertyContextWriter. PropertyWriter *PropertyWriter - // AttachmentWriteChannel represents the Go channel for writing attachments. - AttachmentWriteChannel chan *AttachmentWriter + // AttachmentWriter represents a writer for attachments. + AttachmentWriter *AttachmentWriter // PropertyContextWriter writes the pst.PropertyContext of a pst.Message. PropertyContextWriter *PropertyContextWriter // MessageWriteChannel represents the Go channel used to process writing messages. @@ -42,36 +42,44 @@ type MessageWriter struct { //MessageWriteCallback represents the callback called for each written message. //MessageWriteCallback chan * // Identifier represents the identifier of this message, which is used in the B-Tree. - Identifier pst.Identifier + Identifier Identifier } //type MessageWriteCallback func() // NewMessageWriter creates a new MessageWriter. -func NewMessageWriter(formatType pst.FormatType, writeGroup *errgroup.Group) *MessageWriter { +func NewMessageWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType) *MessageWriter { propertyWriteCallbackChannel := make(chan Property) return &MessageWriter{ - FormatType: formatType, - PropertyWriter: NewPropertyWriter(writeGroup, propertyWriteCallbackChannel), + Writer: writer, + FormatType: formatType, + PropertyWriter: NewPropertyWriter(writeGroup, propertyWriteCallbackChannel), PropertyContextWriter: NewPropertyContextWriter(writeGroup), } propertyWriteCallbackChannel := NewMessageCallbackHandler() } -// MessageCallbackHandler writes the received messages. -type MessageCallbackHandler struct { - MessageWriter *MessageWriter -} +// StartMessageWriteChannel receives messages to write. +func (messageWriter *MessageWriter) StartMessageWriteChannel(writeGroup *errgroup.Group) { + writeGroup.Go(func() error { + // Listen for messages to write. + for receivedMessage := range messageWriter.MessageWriteChannel { + // Write the message. + messageWrittenSize, err := receivedMessage.WriteTo(messageWriter.Writer) -// NewMessageCallbackHandler creates a new MessageCallbackHandler. -func NewMessageCallbackHandler() *MessageCallbackHandler { - return &MessageCallbackHandler{} -} + if err != nil { + return eris.Wrap(err, "failed to write message") + } + + totalSize += messageWrittenSize + } -func (messageCallbackHandler *MessageCallbackHandler) Handle(message *properties.Message) { - messageCallbackHandler.MessageWriter.AddRawProperties(message) + folderWriter.TotalSize.Add(totalSize) + + return nil + }) } // AddProperties add the message properties (properties.Message). @@ -97,7 +105,7 @@ func (messageWriter *MessageWriter) StartAttachmentWriteChannel(writeContext con } func (messageWriter *MessageWriter) UpdateIdentifier() error { - identifier, err := pst.NewIdentifier(messageWriter.FormatType) + identifier, err := NewIdentifier(messageWriter.FormatType) if err != nil { return eris.Wrap(err, "failed to create identifier") diff --git a/pkg/writer/name_to_id_map_writer.go b/pkg/name_to_id_map_writer.go similarity index 97% rename from pkg/writer/name_to_id_map_writer.go rename to pkg/name_to_id_map_writer.go index fb3244d..f2d8f32 100644 --- a/pkg/writer/name_to_id_map_writer.go +++ b/pkg/name_to_id_map_writer.go @@ -1,4 +1,4 @@ -package writer +package pst import "io" diff --git a/pkg/writer/property_context_writer.go b/pkg/property_context_writer.go similarity index 54% rename from pkg/writer/property_context_writer.go rename to pkg/property_context_writer.go index 051b7b8..c6ab22e 100644 --- a/pkg/writer/property_context_writer.go +++ b/pkg/property_context_writer.go @@ -14,84 +14,83 @@ // See the License for the specific language governing permissions and // limitations under the License. -package writer +package pst import ( "bytes" - pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" "io" "log/slog" - "sync/atomic" ) // PropertyContextWriter represents a writer for a pst.PropertyContext. type PropertyContextWriter struct { // Writer represents the io.Writer used when writing. Writer io.Writer + // WriteGroup represents Goroutines running writers. + WriteGroup *errgroup.Group // BTreeOnHeapWriter represents the BTreeOnHeapWriter. BTreeOnHeapWriter *BTreeOnHeapWriter // PropertyWriter represents the PropertyWriter. PropertyWriter *PropertyWriter // PropertyWriteCallbackChannel represents the callback channel for writable properties. - PropertyWriteCallbackChannel chan Property + PropertyWriteCallbackChannel chan WriteCallbackResponse // LocalDescriptorsWriter represents the LocalDescriptorsWriter. LocalDescriptorsWriter *LocalDescriptorsWriter - // WriteGroup represents Goroutines running writers. - WriteGroup *errgroup.Group - // TotalSize represents the total byte size written. - // TODO - Don't use atomic, pass int64 to callback per processed? - TotalSize atomic.Int64 } // NewPropertyContextWriter creates a new PropertyContextWriter. -func NewPropertyContextWriter(formatType pst.FormatType, btreeType pst.BTreeType, btreeNodes []pst.Identifier, writeGroup *errgroup.Group) *PropertyContextWriter { - heapOnNodeWriter := NewHeapOnNodeWriter(pst.SignatureTypePropertyContext) +func NewPropertyContextWriter(writer io.Writer, writeGroup *errgroup.Group, propertyWriteCallbackChannel chan WriteCallbackResponse, formatType FormatType, btreeType BTreeType) *PropertyContextWriter { + heapOnNodeWriter := NewHeapOnNodeWriter(SignatureTypePropertyContext) btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) - propertyWriteCallbackChannel := make(chan Property) - propertyWriter := NewPropertyWriter(writeGroup, propertyWriteCallbackChannel) - localDescriptorsWriter := NewLocalDescriptorsWriter(formatType, btreeType, btreeNodes) + propertyWriteChannel := make(chan Property) + propertyWriter := NewPropertyWriter(writeGroup, propertyWriteChannel) + localDescriptorsWriter := NewLocalDescriptorsWriter(writer, writeGroup, formatType, btreeType) propertyContextWriter := &PropertyContextWriter{ + Writer: writer, + WriteGroup: writeGroup, BTreeOnHeapWriter: btreeOnHeapWriter, PropertyWriter: propertyWriter, PropertyWriteCallbackChannel: propertyWriteCallbackChannel, LocalDescriptorsWriter: localDescriptorsWriter, - WriteGroup: writeGroup, } - // Start Go channel for the property write callback. - go propertyContextWriter.StartWriteCallbackHandler(propertyWriteCallbackChannel) + // Start the write channel. + go propertyContextWriter.StartWriteChannel(propertyWriteChannel) return propertyContextWriter } -// StartWriteCallbackHandler handles writing a received writable Property. -func (propertyContextWriter *PropertyContextWriter) StartWriteCallbackHandler(writeCallbackChannel chan Property) { - for property := range writeCallbackChannel { +// AddProperties adds the properties to the write queue. +// Writable properties are returned to the StartWriteCallbackChannel. +func (propertyContextWriter *PropertyContextWriter) AddProperties(properties ...proto.Message) { + propertyContextWriter.PropertyWriter.AddProperties(properties...) +} + +// StartWriteChannel handles writing a received writable Property. +func (propertyContextWriter *PropertyContextWriter) StartWriteChannel(writeChannel chan Property) { + for property := range writeChannel { propertyContextWriter.WriteGroup.Go(func() error { + // Write the property. slog.Debug("Writing property...", "identifier", property.ID) - // Write the property. - if _, err := property.WriteTo(propertyContextWriter.Writer); err != nil { + written, err := property.WriteTo(propertyContextWriter.Writer) + + if err != nil { return eris.Wrap(err, "failed to write property") } + // Callback amount of bytes written. + propertyContextWriter.PropertyWriteCallbackChannel <- NewWriteCallbackResponse(written) + return nil }) } } -func (propertyContextWriter *PropertyContextWriter) AddProperties(properties ...proto.Message) { - propertyContextWriter.PropertyWriter.AddProperties(properties...) -} - -func (propertyContextWriter *PropertyContextWriter) AddRawProperty(property Property) { - -} - // WriteTo writes the pst.PropertyContext. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#property-context-pc func (propertyContextWriter *PropertyContextWriter) WriteTo(writer io.Writer) (int64, error) { @@ -101,53 +100,36 @@ func (propertyContextWriter *PropertyContextWriter) WriteTo(writer io.Writer) (i return 0, eris.Wrap(err, "failed to write Heap-on-Node") } - propertiesWrittenSize, err := propertyContextWriter.WriteProperties(writer) + // Wait for the properties to be written. + var totalSize int64 - if err != nil { - return 0, eris.Wrap(err, "failed to write properties") + for writeCallbackResponse := range propertyContextWriter.PropertyWriteCallbackChannel { + totalSize += writeCallbackResponse.Written } - return btreeOnHeapWrittenSize + propertiesWrittenSize, nil + return btreeOnHeapWrittenSize + totalSize, nil } -// WriteProperties writes the properties. +// WriteProperty writes the property. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#pc-bth-record -func (propertyContextWriter *PropertyContextWriter) WriteProperties(writer io.Writer) (int64, error) { - properties, err := propertyContextWriter.PropertyWriter.GetProperties() - - if err != nil { - return 0, eris.Wrap(err, "failed to get properties") - } - - var totalSize int64 - - // Write properties. - for _, property := range properties { - propertyBuffer := bytes.NewBuffer(make([]byte, 8)) - - // Property ID - propertyBuffer.Write(GetUint16(uint16(property.ID))) - // Property Type - propertyBuffer.Write(GetUint16(uint16(property.Type))) - // Value - if property.Value.Len() <= 4 { - if _, err := property.Value.WriteTo(propertyBuffer); err != nil { - return 0, eris.Wrap(err, "failed to write property value") - } - } else if property.Value.Len() <= 3580 { - // HID - } else { - // NID Local Descriptor +func (propertyContextWriter *PropertyContextWriter) WriteProperty(writer io.Writer, property Property) (int64, error) { + propertyBuffer := bytes.NewBuffer(make([]byte, 8)) + + // Property ID + propertyBuffer.Write(GetUint16(uint16(property.ID))) + // Property Type + propertyBuffer.Write(GetUint16(uint16(property.Type))) + // Value + if property.Value.Len() <= 4 { + if _, err := property.Value.WriteTo(propertyBuffer); err != nil { + return 0, eris.Wrap(err, "failed to write property value") } - - written, err := propertyBuffer.WriteTo(writer) - - if err != nil { - return 0, eris.Wrap(err, "failed to write property") - } - - totalSize += written + } else if property.Value.Len() <= 3580 { + // HID + } else { + // NID Local Descriptor + propertyContextWriter.LocalDescriptorsWriter.AddProperty() } - return totalSize, nil + return propertyBuffer.WriteTo(writer) } diff --git a/pkg/writer/property_writer.go b/pkg/property_writer.go similarity index 91% rename from pkg/writer/property_writer.go rename to pkg/property_writer.go index 5096eea..c575b80 100644 --- a/pkg/writer/property_writer.go +++ b/pkg/property_writer.go @@ -1,10 +1,9 @@ -package writer +package pst import ( "bytes" "encoding/binary" "fmt" - pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" @@ -41,11 +40,6 @@ func NewPropertyWriter(writeGroup *errgroup.Group, propertyWriteCallbackChannel return propertyWriter } -//// SetProperties sets the properties the properties to write. -//func (propertyWriter *PropertyWriter) SetProperties(properties proto.Message) { -// propertyWriter.PropertyWriteChannel <- properties -//} - // AddProperties sends the properties to the write queue. func (propertyWriter *PropertyWriter) AddProperties(properties ...proto.Message) { for _, property := range properties { @@ -79,8 +73,8 @@ func (propertyWriter *PropertyWriter) StartPropertyWriteChannel(writeGroup *errg // Property represents a property that can be written. type Property struct { - ID pst.Identifier - Type pst.PropertyType + ID Identifier + Type PropertyType Value bytes.Buffer } @@ -141,8 +135,8 @@ func (propertyWriter *PropertyWriter) GetProperties(properties proto.Message) ([ } writableProperties = append(writableProperties, Property{ - ID: pst.Identifier(propertyID), - Type: pst.PropertyType(propertyType), + ID: Identifier(propertyID), + Type: PropertyType(propertyType), Value: propertyBuffer, }) } diff --git a/pkg/writer/table_context_writer.go b/pkg/table_context_writer.go similarity index 96% rename from pkg/writer/table_context_writer.go rename to pkg/table_context_writer.go index 147dedd..4b09cdc 100644 --- a/pkg/writer/table_context_writer.go +++ b/pkg/table_context_writer.go @@ -14,14 +14,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -package writer +package pst import ( "bytes" "cmp" "context" "encoding/binary" - pst "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" @@ -35,7 +34,7 @@ import ( // TableContextWriter represents a writer for a pst.TableContext. type TableContextWriter struct { // FormatType represents the FormatType. - FormatType pst.FormatType + FormatType FormatType // Properties represents the properties to write (properties.Attachment, properties.Folder etc). Properties []*proto.Message // BTreeOnHeapWriter represents the BTreeOnHeapWriter. @@ -54,8 +53,8 @@ type TableContextWriter struct { } // NewTableContextWriter creates a new TableContextWriter. -func NewTableContextWriter(writer io.Writer, writeGroup *errgroup.Group, formatType pst.FormatType) *TableContextWriter { - heapOnNodeWriter := NewHeapOnNodeWriter(pst.SignatureTypeTableContext) +func NewTableContextWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType) *TableContextWriter { + heapOnNodeWriter := NewHeapOnNodeWriter(SignatureTypeTableContext) btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) propertyWriter := NewPropertyWriter(properties) @@ -146,7 +145,7 @@ func (tableContextWriter *TableContextWriter) WriteHeader(writer io.Writer, prop header := bytes.NewBuffer(make([]byte, 22+(8*len(columnDescriptors)))) // MUST be set to bTypeTC. - header.Write([]byte{byte(pst.SignatureTypeTableContext)}) + header.Write([]byte{byte(SignatureTypeTableContext)}) // Column count. header.WriteByte(byte(len(columnDescriptors))) diff --git a/pkg/writer/utils.go b/pkg/utils.go similarity index 98% rename from pkg/writer/utils.go rename to pkg/utils.go index 29d1f4c..3c2599f 100644 --- a/pkg/writer/utils.go +++ b/pkg/utils.go @@ -14,7 +14,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package writer +package pst import "encoding/binary" diff --git a/pkg/writer/writer.go b/pkg/writer.go similarity index 66% rename from pkg/writer/writer.go rename to pkg/writer.go index ebcbf83..72fda35 100644 --- a/pkg/writer/writer.go +++ b/pkg/writer.go @@ -14,32 +14,28 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Package writer implements writing PST files. -package writer +package pst import ( "bytes" - "github.com/mooijtech/go-pst/v6/pkg" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" "hash/crc32" "io" - "sync/atomic" ) // Writer writes PST files. type Writer struct { - // Writer represents the io.Writer to write to. + // Writer represents the io.Writer used while writing. Writer io.Writer // WriteGroup represents the writers running in Goroutines. WriteGroup *errgroup.Group - // WriteOptions defines options used while writing. + // WriteOptions represents options used while writing. WriteOptions WriteOptions - // FolderWriteChannel represents a Go channel for writing folders. + // FolderWriteChannel represents a Go channel queue for writing folders. FolderWriteChannel chan *FolderWriter - // TotalSize represents the total bytes written. - // TODO - Don't use atomic? - TotalSize atomic.Int64 + // FolderWriteCallback represents a Go channel callback for when a folder is written. + FolderWriteCallback chan WriteCallbackResponse } // NewWriter returns a writer for PST files. @@ -57,7 +53,37 @@ func NewWriter(writer io.Writer, writeGroup *errgroup.Group, writeOptions WriteO return pstWriter } -// AddFolders adds a pst.Folder to write (used by WriteTo). +// WriteOptions defines the options used during writing. +type WriteOptions struct { + // FormatType represents ANSI or Unicode. + FormatType FormatType + // EncryptionType represents the encryption type. + EncryptionType EncryptionType +} + +// NewWriteOptions creates a new WriteOptions used during writing PST files. +func NewWriteOptions(formatType FormatType, encryptionType EncryptionType) WriteOptions { + return WriteOptions{ + FormatType: formatType, + EncryptionType: encryptionType, + } +} + +// WriteCallbackResponse represents a response of a completed write. +type WriteCallbackResponse struct { + // Written represents the amount of bytes written. + Written int64 + // Errors are already returned by calling Wait on the writeGroup (errgroup.Group). +} + +// NewWriteCallbackResponse creates a new WriteCallbackResponse. +func NewWriteCallbackResponse(written int64) WriteCallbackResponse { + return WriteCallbackResponse{ + Written: written, + } +} + +// AddFolders adds a pst.Folder to write. // Must contain at least a root folder (pst.IdentifierRootFolder). func (pstWriter *Writer) AddFolders(folders ...*FolderWriter) { for _, folder := range folders { @@ -67,37 +93,23 @@ func (pstWriter *Writer) AddFolders(folders ...*FolderWriter) { // StartFolderWriteChannel starts the Go channel for writing folders. func (pstWriter *Writer) StartFolderWriteChannel(writeGroup *errgroup.Group) { + // Listen for folders to write. for folder := range pstWriter.FolderWriteChannel { writeGroup.Go(func() error { + // Write the folder. folderWrittenSize, err := folder.WriteTo(pstWriter.Writer) if err != nil { return eris.Wrap(err, "failed to write folder") } - pstWriter.TotalSize.Add(folderWrittenSize) + pstWriter.FolderWriteCallback <- NewWriteCallbackResponse(folderWrittenSize) return nil }) } } -// WriteOptions defines the options used during writing. -type WriteOptions struct { - // FormatType represents ANSI or Unicode. - FormatType pst.FormatType - // EncryptionType represents the encryption type. - EncryptionType pst.EncryptionType -} - -// NewWriteOptions creates a new WriteOptions used during writing PST files. -func NewWriteOptions(formatType pst.FormatType, encryptionType pst.EncryptionType) WriteOptions { - return WriteOptions{ - FormatType: formatType, - EncryptionType: encryptionType, - } -} - // WriteTo writes the PST file. // WriteTo follows the path to root folder (fixed pst.Identifier, pst.IdentifierRootFolder) then to the pst.TableContext of the root folder. // Once there, we can get the child folders ([]pst.Identifier, see FolderWriter), each folder can contain messages (see MessageWriter). @@ -121,7 +133,12 @@ func NewWriteOptions(formatType pst.FormatType, encryptionType pst.EncryptionTyp // // Combining these structures we make up a PST file to write. func (pstWriter *Writer) WriteTo(writer io.Writer) (int64, error) { - totalSize := pstWriter.TotalSize.Load() + var totalSize int64 + + // Wait for responses that all folders are written. + for writeCallbackResponse := range pstWriter.FolderWriteCallback { + totalSize += writeCallbackResponse.Written + } // Wait for channels to finish. if err := pstWriter.WriteGroup.Wait(); err != nil { @@ -129,8 +146,7 @@ func (pstWriter *Writer) WriteTo(writer io.Writer) (int64, error) { } // Write PST header. - // TODO - Root b-tree nodes. - headerWrittenSize, err := pstWriter.WriteHeader(writer, pst.IdentifierRootFolder, pst.IdentifierRootFolder) + headerWrittenSize, err := pstWriter.WriteHeader(writer, totalSize, IdentifierRootFolder, IdentifierRootFolder) if err != nil { return 0, eris.Wrap(err, "failed to write header") @@ -141,20 +157,20 @@ func (pstWriter *Writer) WriteTo(writer io.Writer) (int64, error) { // WriteHeader writes the PST header. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#header-1 -func (pstWriter *Writer) WriteHeader(writer io.Writer, rootNodeBTree pst.Identifier, rootBlockBTree pst.Identifier) (int64, error) { +func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNodeBTree Identifier, rootBlockBTree Identifier) (int64, error) { var headerSize int switch pstWriter.WriteOptions.FormatType { - case pst.FormatTypeUnicode: + case FormatTypeUnicode: // 4+4+2+2+2+1+1+4+4+8+8+4+128+8+ROOT+4+128+128+1+1+2+8+4+3+1+32 // Header + header root headerSize = 492 + 72 - case pst.FormatTypeANSI: + case FormatTypeANSI: // 4+4+2+2+2+1+1+4+4+4+4+4+128+ROOT+128+128+1+1+2+8+4+3+1+32 // Header + header root headerSize = 472 + 40 default: - panic(pst.ErrFormatTypeUnsupported) + panic(ErrFormatTypeUnsupported) } header := bytes.NewBuffer(make([]byte, headerSize)) @@ -165,14 +181,14 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, rootNodeBTree pst.Identif // File format version switch pstWriter.WriteOptions.FormatType { - case pst.FormatTypeUnicode: + case FormatTypeUnicode: // MUST be greater than 23 if the file is a Unicode PST file. header.Write([]byte{30}) - case pst.FormatTypeANSI: + case FormatTypeANSI: // This value MUST be 14 or 15 if the file is an ANSI PST file. header.Write([]byte{15}) default: - panic(pst.ErrFormatTypeUnsupported) + panic(ErrFormatTypeUnsupported) } header.Write([]byte{19}) // Client file format version. @@ -181,47 +197,49 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, rootNodeBTree pst.Identif header.Write(make([]byte, 4)) // Reserved1 header.Write(make([]byte, 4)) // Reserved2 - if pstWriter.WriteOptions.FormatType == pst.FormatTypeUnicode { + if pstWriter.WriteOptions.FormatType == FormatTypeUnicode { // Padding (bidUnused) for Unicode. header.Write(make([]byte, 8)) } - if pstWriter.WriteOptions.FormatType == pst.FormatTypeANSI { + if pstWriter.WriteOptions.FormatType == FormatTypeANSI { // Next BID (bidNextB) for ANSI only. // go-pst does not read this. header.Write(make([]byte, 4)) } - // Next page BID (bidNextP) + // Next identifier (bidNextP). + // This can be used to increment a value for generating identifiers used by B-Tree nodes. + // I assume it's faster to generate an identifier with crypto/rand instead of having to read and update this value. // go-pst does not read this. - if pstWriter.WriteOptions.FormatType == pst.FormatTypeUnicode { + if pstWriter.WriteOptions.FormatType == FormatTypeUnicode { header.Write(make([]byte, 8)) } - if pstWriter.WriteOptions.FormatType == pst.FormatTypeANSI { + if pstWriter.WriteOptions.FormatType == FormatTypeANSI { header.Write(make([]byte, 4)) } - // This is a monotonically-increasing value that is modified every time the PST file's HEADER structure is modified. - // The function of this value is to provide a unique value, and to ensure that the HEADER CRCs are different after each header modification. + // This is a monotonically-increasing value that is modified every time the PST header structure is modified. + // The function of this value is to provide a unique value which ensures that the header CRCs are different after each header modification. header.Write([]byte{1, 3, 3, 7}) - // rgnid - // go-pst does not read this. + // Special Internal B-Tree nodes. + // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#special-internal-nids header.Write(make([]byte, 128)) - if pstWriter.WriteOptions.FormatType == pst.FormatTypeUnicode { + if pstWriter.WriteOptions.FormatType == FormatTypeUnicode { // Unused space; MUST be set to zero. Unicode PST file format only. // (qwUnused) header.Write(make([]byte, 8)) } // Header root - if _, err := pstWriter.WriteHeaderRoot(header, rootNodeBTree, rootBlockBTree); err != nil { + if _, err := pstWriter.WriteHeaderRoot(header, totalSize, rootNodeBTree, rootBlockBTree); err != nil { return 0, eris.Wrap(err, "failed to write header root") } // Unused alignment bytes; MUST be set to zero. // Unicode PST file format only. - if pstWriter.WriteOptions.FormatType == pst.FormatTypeUnicode { + if pstWriter.WriteOptions.FormatType == FormatTypeUnicode { header.Write(make([]byte, 4)) } @@ -237,7 +255,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, rootNodeBTree pst.Identif // rgbReserved header.Write(make([]byte, 2)) - if pstWriter.WriteOptions.FormatType == pst.FormatTypeUnicode { + if pstWriter.WriteOptions.FormatType == FormatTypeUnicode { // Next BID. go-pst does not read this value (bidNextB) header.Write(make([]byte, 8)) @@ -246,7 +264,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, rootNodeBTree pst.Identif header.Write([]byte{byte(crc32.ChecksumIEEE(header.Bytes()[4 : 4+516]))}) } - if pstWriter.WriteOptions.FormatType == pst.FormatTypeANSI { + if pstWriter.WriteOptions.FormatType == FormatTypeANSI { header.Write(make([]byte, 8)) // ullReserved header.Write(make([]byte, 4)) // dwReserved } @@ -265,20 +283,43 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, rootNodeBTree pst.Identif return header.WriteTo(writer) } +// WriteInternalBTreeNodes writes the special internal B-Tree nodes. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#special-internal-nids +func (btreeWriter *BTreeWriter) WriteInternalBTreeNodes(writer io.Writer) (int64, error) { + internalIdentifiersBuffer := bytes.NewBuffer(make([]byte, 32*GetIdentifierSize(btreeWriter.FormatType))) + + internalIdentifiersBuffer.Write(IdentifierMessageStore.Bytes(btreeWriter.FormatType)) + internalIdentifiersBuffer.Write(IdentifierNameToIDMap.Bytes(btreeWriter.FormatType)) + internalIdentifiersBuffer.Write(IdentifierNormalFolderTemplate.Bytes(btreeWriter.FormatType)) + internalIdentifiersBuffer.Write(IdentifierSearchFolderTemplate.Bytes(btreeWriter.FormatType)) + internalIdentifiersBuffer.Write(IdentifierRootFolder.Bytes(btreeWriter.FormatType)) + internalIdentifiersBuffer.Write(IdentifierSearchManagementQueue.Bytes(btreeWriter.FormatType)) + internalIdentifiersBuffer.Write(IdentifierSearchActivityList.Bytes(btreeWriter.FormatType)) + internalIdentifiersBuffer.Write(IdentifierReserved1.Bytes(btreeWriter.FormatType)) + internalIdentifiersBuffer.Write(IdentifierSearchDomainObject.Bytes(btreeWriter.FormatType)) + internalIdentifiersBuffer.Write(IdentifierSearchGathererQueue.Bytes(btreeWriter.FormatType)) + internalIdentifiersBuffer.Write(IdentifierSearchGathererDescriptor.Bytes(btreeWriter.FormatType)) + internalIdentifiersBuffer.Write(IdentifierReserved2.Bytes(btreeWriter.FormatType)) + internalIdentifiersBuffer.Write(IdentifierReserved3.Bytes(btreeWriter.FormatType)) + internalIdentifiersBuffer.Write(IdentifierSearchGathererFolderQueue.Bytes(btreeWriter.FormatType)) + + return internalIdentifiersBuffer.WriteTo(writer) +} + // WriteHeaderRoot writes the header root. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#root -func (pstWriter *Writer) WriteHeaderRoot(writer io.Writer, rootNodeBTree pst.Identifier, rootBlockBTree pst.Identifier) (int64, error) { +func (pstWriter *Writer) WriteHeaderRoot(writer io.Writer, totalSize int64, rootNodeBTree Identifier, rootBlockBTree Identifier) (int64, error) { var headerSize int switch pstWriter.WriteOptions.FormatType { - case pst.FormatTypeUnicode: + case FormatTypeUnicode: // 4+8+8+8+8+16+16+1+1+2 headerSize = 72 - case pst.FormatTypeANSI: + case FormatTypeANSI: // 4+4+4+4+4+8+8+1+1+2 headerSize = 40 default: - panic(pst.ErrFormatTypeUnsupported) + return 0, ErrFormatTypeUnsupported } header := bytes.NewBuffer(make([]byte, headerSize)) @@ -286,7 +327,7 @@ func (pstWriter *Writer) WriteHeaderRoot(writer io.Writer, rootNodeBTree pst.Ide header.Write(make([]byte, 4)) // dwReserved switch pstWriter.WriteOptions.FormatType { - case pst.FormatTypeUnicode: + case FormatTypeUnicode: // The size of the PST file, in bytes. (ibFileEof) header.Write(GetUint64(uint64(totalSize))) // An IB structure (section 2.2.2.3) that contains the absolute file offset to the last AMap page of the PST file. @@ -301,7 +342,7 @@ func (pstWriter *Writer) WriteHeaderRoot(writer io.Writer, rootNodeBTree pst.Ide header.Write(append(GetUint64(uint64(rootBlockBTree)), make([]byte, 8)...)) // Indicates whether the AMaps in this PST file are valid (0 = INVALID_AMAP). header.Write([]byte{0}) - case pst.FormatTypeANSI: + case FormatTypeANSI: // The size of the PST file, in bytes. (ibFileEof) header.Write(GetUint32(uint32(totalSize))) // An IB structure (section 2.2.2.3) that contains the absolute file offset to the last AMap page of the PST file. @@ -317,14 +358,14 @@ func (pstWriter *Writer) WriteHeaderRoot(writer io.Writer, rootNodeBTree pst.Ide // Indicates whether the AMaps in this PST file are valid (0 = INVALID_AMAP). header.Write([]byte{0}) default: - panic(pst.ErrFormatTypeUnsupported) + return 0, ErrFormatTypeUnsupported } header.Write(make([]byte, 1)) // bReserved header.Write(make([]byte, 2)) // wReserved if header.Len() != headerSize { - panic("header root size mismatch") + return 0, eris.New("header root size mismatch") } return header.WriteTo(writer) diff --git a/pkg/writer/btree_writer.go b/pkg/writer/btree_writer.go deleted file mode 100644 index 2a34d92..0000000 --- a/pkg/writer/btree_writer.go +++ /dev/null @@ -1,140 +0,0 @@ -// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). -// -// Copyright 2023 Marten Mooij -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package writer - -import ( - "bytes" - pst "github.com/mooijtech/go-pst/v6/pkg" - "github.com/rotisserie/eris" - "io" -) - -// BTreeWriter represents a writer for B-Trees. -// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#btrees -type BTreeWriter struct { - // FormatType represents the FormatType to use during writing. - FormatType pst.FormatType - // BTreeType represents the type of b-tree to write (node or block). - BTreeType pst.BTreeType - // BTreeNodes represents the B-Tree nodes to write. - BTreeNodes []pst.BTreeNode -} - -// NewBTreeWriter creates a new BTreeWriter. -func NewBTreeWriter(formatType pst.FormatType, btreeType pst.BTreeType, btreeNodes []pst.Identifier) *BTreeWriter { - // Make writable B-Tree nodes. - var btreeNodes - - for _, btreeNodeIdentifier := range btreeNodes { - - } - - return &BTreeWriter{ - FormatType: formatType, - BTreeType: btreeType, - BTreeNodes: btreeNodes, - } -} - -// WriteTo writes the B-Tree. -// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#btpage -func (btreeWriter *BTreeWriter) WriteTo(writer io.Writer) (int64, error) { - btree := bytes.NewBuffer(make([]byte, 512)) // Same for Unicode and ANSI. - - // This section contains entries of the BTree array. - // If "cLevel" is 0, each entry is either of type "BBTENTRY" or "NBTENTRY" based on the "ptype" of the page. - // TODO Check maximum b-tree entry size and return error on overflow - for _, btreeEntry := range btreeWriter.BTreeNodes { - if _, err := btreeEntry.WriteTo(btree); err != nil { - return 0, eris.Wrap(err, "failed to write b-tree node") - } - } - - // The number of BTree entries stored in the page data. - // The entries depend on the value of this field. - btree.WriteByte(byte(len(btreeWriter.BTreeNodes))) - - // The maximum number of entries that can fit inside the page data. - btree.Write(make([]byte, 1)) // TODO - - // The size of each BTree entry, in bytes. - if btreeWriter.BTreeType == pst.BTreeTypeNode && level == 0 { - switch btreeWriter.FormatType { - case pst.FormatTypeUnicode: - btree.Write([]byte{32}) - case pst.FormatTypeANSI: - btree.Write([]byte{16}) - default: - return 0, pst.ErrFormatTypeUnsupported - } - } else { - switch btreeWriter.FormatType { - case pst.FormatTypeUnicode: - btree.Write([]byte{24}) - case pst.FormatTypeANSI: - btree.Write([]byte{12}) - default: - return 0, pst.ErrFormatTypeUnsupported - } - } - - // The depth level of this page. - // Leaf pages have a level of 0, while intermediate pages have a level greater than 0. - // This value determines the type of entries. - btree.WriteByte(byte(level)) - - if btreeWriter.FormatType == pst.FormatTypeUnicode { - // Padding that should be set to zero. - // Note that there is no padding in the ANSI version of the structure. - btree.Write(make([]byte, 4)) - } - - // Page trailer. - // A PAGETRAILER structure with specific subfield values. - // The "ptype" subfield of "pageTrailer" should be set to "ptypeBBT" for a Block BTree page or "ptypeNBT" for a Node BTree page. - // The other subfields of "pageTrailer" should be set as specified in the documentation. - if _, err := btreeWriter.WritePageTrailer(btree, btreeType); err != nil { - return 0, eris.Wrap(err, "failed to write page trailer") - } - - return btree.WriteTo(writer) -} - -// WritePageTrailer writes the page tailer of the b-tree. -// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#pagetrailer -func (btreeWriter *BTreeWriter) WritePageTrailer(writer io.Writer, btreeType pst.BTreeType) (int64, error) { - pageTrailerBuffer := bytes.NewBuffer(make([]byte, 0)) - - // This value indicates the type of data contained within the page. - pageTrailerBuffer.WriteByte(byte(btreeWriter.BTreeType)) - // MUST be set to the same value as ptype. - pageTrailerBuffer.WriteByte(byte(btreeWriter.BTreeType)) - // Page signature. This value depends on the value of the ptype field. - // This value is zero (0x0000) for AMap, PMap, FMap, and FPMap pages. - // For BBT, NBT, and DList pages, a page / block signature is computed (see section 5.5). - // TODO - pageTrailerBuffer.Write() - // 32-bit CRC of the page data, excluding the page trailer. - // See section 5.3 for the CRC algorithm. - // Note the locations of the dwCRC and bid are differs between the Unicode and ANSI version of this structure. - // TODO - pageTrailerBuffer.Write() - // The BID of the page's block. - // AMap, PMap, FMap, and FPMap pages have a special convention where their BID is assigned the same value as their IB (that is, the absolute file offset of the page). - // The bidIndex for other page types are allocated from the special bidNextP counter in the HEADER structure. - // TODO - pageTrailerBuffer.Write() - - return 0, nil -} diff --git a/pkg/writer_test.go b/pkg/writer_test.go new file mode 100644 index 0000000..671d5d4 --- /dev/null +++ b/pkg/writer_test.go @@ -0,0 +1,26 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package pst + +import ( + "testing" +) + +// TestWritePSTFile writes a new PST file. +func TestWritePSTFile(t *testing.T) { + +} From 0a946bc400b5f86f94a169be0bf9cccfbf1031f0 Mon Sep 17 00:00:00 2001 From: Marten Mooij Date: Wed, 6 Sep 2023 22:06:58 +0200 Subject: [PATCH 09/12] Create chaos (use io.WriteSeeker, more channels) --- cmd/properties/generate.go | 1 + pkg/writer_test.go => cmd/reader.go | 9 +- cmd/writer.go | 147 ++++++++++++++++ examples/reader.go | 1 - examples/writer.go | 126 -------------- go.mod | 1 + go.sum | 8 + pkg/attachment_writer.go | 11 +- pkg/block_writer.go | 3 +- pkg/btree.go | 7 +- pkg/btree_writer.go | 188 +++++++++++--------- pkg/doc.go | 1 + pkg/doc_test.go | 144 ---------------- pkg/folder.go | 61 ++++--- pkg/folder_writer.go | 126 +++++++------- pkg/local_descriptors_writer.go | 34 ++-- pkg/message.go | 1 - pkg/message_writer.go | 80 +++++---- pkg/property.go | 36 +++- pkg/property_context_writer.go | 60 +++---- pkg/property_writer.go | 94 +++++----- pkg/table_context_writer.go | 257 +++++++++++++++------------- pkg/writer.go | 184 +++++++++----------- 23 files changed, 771 insertions(+), 809 deletions(-) rename pkg/writer_test.go => cmd/reader.go (85%) create mode 100644 cmd/writer.go delete mode 100644 examples/reader.go delete mode 100644 examples/writer.go delete mode 100644 pkg/doc_test.go diff --git a/cmd/properties/generate.go b/cmd/properties/generate.go index 631ac46..ebe9903 100644 --- a/cmd/properties/generate.go +++ b/cmd/properties/generate.go @@ -111,6 +111,7 @@ func main() { // TODO - Validate properties exist, parse DOCX in the same way: // TODO - [MS-OXCMSG]: Message and Attachment Object Protocol // TODO - [MS-OXCFOLD]: Folder Object Protocol and + // TODO - Extend properties.Folder to include everything in [MS-OXCFOLD]: Folder Object Protocol. } // download the latest version of [MS-OXPROPS].docx and returns the downloaded file. diff --git a/pkg/writer_test.go b/cmd/reader.go similarity index 85% rename from pkg/writer_test.go rename to cmd/reader.go index 671d5d4..8e1bc2a 100644 --- a/pkg/writer_test.go +++ b/cmd/reader.go @@ -14,13 +14,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package pst +package main -import ( - "testing" -) - -// TestWritePSTFile writes a new PST file. -func TestWritePSTFile(t *testing.T) { +func main() { } diff --git a/cmd/writer.go b/cmd/writer.go new file mode 100644 index 0000000..c987520 --- /dev/null +++ b/cmd/writer.go @@ -0,0 +1,147 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "context" + "flag" + "fmt" + "github.com/dustin/go-humanize" + "github.com/mooijtech/concurrent-writer/concurrent" + pst "github.com/mooijtech/go-pst/v6/pkg" + "github.com/mooijtech/go-pst/v6/pkg/properties" + "golang.org/x/sync/errgroup" + "google.golang.org/protobuf/proto" + "log/slog" + "os" + "time" +) + +func main() { + // Command-line flags. + outputName := *flag.String("output", "1337.pst", "output path of the PST file") + + flag.Parse() + + slog.Info("Starting go-pst writer...") + + startTime := time.Now() + + // Output PST file. + outputFile, err := os.Create(outputName) + + if err != nil { + panic(fmt.Sprintf("Failed to create output file: %+v", err)) + } + + // 4KiB is the default I/O buffer size on Linux. + // Ideally all writes should be aligned on this boundary (FormatTypeUnicode4k). + // We could also add support for Linux I/O URing (https://en.wikipedia.org/wiki/Io_uring). + // You can use your own io.WriteSeeker. + concurrentWriter := concurrent.NewWriterAutoFlush(outputFile, 4096, 0.75) + + // Write options. + formatType := pst.FormatTypeUnicode4k + encryptionType := pst.EncryptionTypePermute + writeOptions := pst.NewWriteOptions(formatType, encryptionType) + + // Write group for Goroutines. + writeCancelContext, writeCancelFunc := context.WithCancel(context.Background()) + writeGroup, _ := errgroup.WithContext(writeCancelContext) + + defer writeCancelFunc() + + // Writer. + writer, err := pst.NewWriter(concurrentWriter, writeGroup, writeOptions) + + if err != nil { + panic(fmt.Sprintf("Failed to create writer: %+v", err)) + } + + // Write folders. + + rootFolder := writer.AddRootFolder() + + // Create sub-folders. + writer.Add + + folderWriteCallback := make(chan int64) + folderWriter, err := pst.NewFolderWriter(concurrentWriter, writeGroup, formatType, folderWriteCallback) + + if err != nil { + panic(fmt.Sprintf("Failed to create FolderWriter: %+v", err)) + } + + rootFolder := writer.AddRootFolder() + + // Add sub-folders. + for i := 0; i < 6; i++ { + subFolder, err := pst.NewFolderWriter(outputFile, writeGroup, formatType) + + if err != nil { + panic(fmt.Sprintf("Failed to create FolderWriter: %+v", err)) + } + + subFolderProperties := &properties.Folder{ + Name: fmt.Sprintf("Sub-folder #%d", i), + } + + if err := subFolder.Add(subFolderProperties); err != nil { + panic(fmt.Sprintf("Failed to add folder: %+v", err)) + } + + // Add messages to the sub-folder. + message := NewMessageWriter(formatType, writeGroup) + + message.AddProperties(&properties.Message{ + Subject: proto.String("Goodbye, world!"), + }) + + // Add attachments to message. + for x := 0; x < 9; x++ { + attachment := NewAttachmentWriter() + + attachment.AddProperties(&properties.Attachment{ + AttachFilename: proto.String(fmt.Sprintf("nudes%d.png", x)), + AttachLongFilename: proto.String(fmt.Sprintf("nudes%d.png", x)), + }) + + message.AddAttachments(attachment) + } + + // Add sub-folders with messages containing attachments to root folder. + rootFolder.(subFolder) + } + + // Writer which starts everything (has the PST file header). + writer.AddFolders(rootFolder) + + // See the documentation of WriteTo for the path followed. + bytesWritten, err := writer.WriteTo(outputFile) + + if err != nil { + panic(fmt.Sprintf("Failed to write PST file: %+v", err)) + } + + // Wait for writers to finish. + if err := writeGroup.Wait(); err != nil { + panic(fmt.Sprintf("Failed to write PST file: %+v", err)) + } + + // humanize doesn't currently support Duration. + fmt.Printf("Done! Wrote %s in %s.", humanize.Bytes(uint64(bytesWritten)), humanize.Time(time.Now().Add(-time.Since(startTime)))) +} diff --git a/examples/reader.go b/examples/reader.go deleted file mode 100644 index 06ab7d0..0000000 --- a/examples/reader.go +++ /dev/null @@ -1 +0,0 @@ -package main diff --git a/examples/writer.go b/examples/writer.go deleted file mode 100644 index 8301d30..0000000 --- a/examples/writer.go +++ /dev/null @@ -1,126 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "github.com/dustin/go-humanize" - pst "github.com/mooijtech/go-pst/v6/pkg" - "github.com/mooijtech/go-pst/v6/pkg/properties" - "golang.org/x/sync/errgroup" - "google.golang.org/protobuf/proto" - "log/slog" - "os" - "time" -) - -func main() { - outputName := *flag.String("output", "1337.pst", "Specifies the output path of the PST file.") - - flag.Parse() - - slog.Info("Starting go-pst...") - - startTime := time.Now() - - // Output file. - outputFile, err := os.Create(outputName) - - if err != nil { - t.Fatalf("Failed to create output file: %+v", err) - } - - // TODO - Unsupported Unicode4k (test OST). - formatType := pst.FormatTypeUnicode - encryptionType := pst.EncryptionTypePermute - - // Setup Goroutines for the writers. - writeCancelContext, writeCancelFunc := context.WithCancel(context.Background()) - writeGroup, _ := errgroup.WithContext(writeCancelContext) - - defer writeCancelFunc() - - // Root writer which starts everything. - writeOptions := NewWriteOptions(formatType, encryptionType) - writer := NewWriter(outputFile, writeGroup, writeOptions) - - // Root folder which can contain sub-folders with messages and attachments. - rootFolder := NewFolderWriter(outputFile, writeGroup, formatType) - - if err != nil { - t.Fatalf("Failed to create folder writer: %+v", err) - } - - rootFolder.SetIdentifier(pst.IdentifierRootFolder) - rootFolder.AddProperties(&properties.Folder{ - Name: "IdentifierRootFolder", - }) - - // Add sub-folders. - for i := 0; i < 6; i++ { - subFolder := NewFolderWriter(outputFile, writeGroup, formatType) - - subFolder.AddProperties(&properties.Folder{ - Name: fmt.Sprintf("Sub-folder #%d", i), - }) - - // Add messages to the sub-folder. - message := NewMessageWriter(formatType, writeGroup) - - message.AddProperties(&properties.Message{ - Subject: proto.String("Goodbye, world!"), - }) - - // Add attachments to message. - for x := 0; x < 9; x++ { - attachment := NewAttachmentWriter() - - attachment.AddProperties(&properties.Attachment{ - AttachFilename: proto.String(fmt.Sprintf("nudes%d.png", x)), - AttachLongFilename: proto.String(fmt.Sprintf("nudes%d.png", x)), - }) - - message.AddAttachments(attachment) - } - - // Add sub-folders with messages containing attachments to root folder. - rootFolder.AddFolder(subFolder) - } - - // Writer which starts everything (has the PST file header). - writer.AddFolders(rootFolder) - - // WriteTo writes the PST file. - // WriteTo follows the path to root folder (fixed pst.Identifier, pst.IdentifierRootFolder) then to the pst.TableContext of the root folder. - // Once there, we can get the child folders ([]pst.Identifier, see FolderWriter), each folder can contain messages (see MessageWriter). - // Each message uses the pst.BTreeOnHeapHeader to construct a pst.HeapOnNode (this is where the data is). - // - // Extending the pst.HeapOnNode (where the data is) we can also use Local Descriptors (extend where this data is): - // pst.LocalDescriptor (see LocalDescriptorsWriter) are B-Tree nodes pointing to other B-Tree nodes. - // These local descriptors also have the pst.HeapOnNode structure which can be built upon (explained below). - // Local Descriptors are used to store more data in the pst.HeapOnNode structure (B-Tree with the nodes containing the data). - // XBlocks and XXBlocks include an array of []pst.Identifier pointing to B-Tree nodes, it is the format used to store data (see BlockWriter). - // This structure is used by the Local Descriptors. - // - // Each pst.HeapOnNode can contain either a pst.TableContext or pst.PropertyContext: - // pst.TableContext (see TableContextWriter): - // The pst.TableContext contains a Row Matrix structure to store data, used by folders (to find data such as the folder identifiers ([]pst.Identifier)). - // The pst.TableContext is column structured with data exceeding 8 bytes moving to different B-Tree nodes: - // pst.HeapOnNode which is <= 3580 bytes. - // pst.LocalDescriptor which is > 3580 bytes. - // pst.PropertyContext (see PropertyContextWriter): - // The pst.PropertyContext contains a list of properties ([]pst.Property) of the message, we can write this with PropertyWriter. - // - // Combining these structures we make up a PST file to write. - bytesWritten, err := writer.WriteTo(outputFile) - - if err != nil { - t.Fatalf("Failed to write PST file: %+v", err) - } - - // Wait for writers to finish. - if err := writeGroup.Wait(); err != nil { - t.Fatalf("Failed to write PST file: %+v", err) - } - - fmt.Printf("Wrote %s in %s", humanize.Bytes(uint64(bytesWritten)), humanize.Time(time.Now().Add(-time.Since(startTime)))) -} diff --git a/go.mod b/go.mod index c335588..384e00f 100644 --- a/go.mod +++ b/go.mod @@ -19,6 +19,7 @@ require ( require ( github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 // indirect github.com/libp2p/go-sockaddr v0.1.1 // indirect + github.com/mooijtech/concurrent-writer v0.0.2 github.com/philhofer/fwd v1.1.2 // indirect golang.org/x/sys v0.8.0 // indirect ) diff --git a/go.sum b/go.sum index 3bf0e93..1a40422 100644 --- a/go.sum +++ b/go.sum @@ -6,6 +6,8 @@ github.com/emersion/go-message v0.16.0 h1:uZLz8ClLv3V5fSFF/fFdW9jXjrZkXIpE1Fn8fK github.com/emersion/go-message v0.16.0/go.mod h1:pDJDgf/xeUIF+eicT6B/hPX/ZbEorKkUMPOxrPVG2eQ= github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 h1:IbFBtwoTQyw0fIM5xv1HF+Y+3ZijDR839WMulgxCcUY= github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594/go.mod h1:aqO8z8wPrjkscevZJFVE1wXJrLpC5LtJG7fqLOsPb2U= +github.com/free/concurrent-writer v0.0.0-20171117212831-363b9993c911 h1:k+h1wjFXceEU80h65nRwDGuHsVdwQl8ROlSuKDx7K7o= +github.com/free/concurrent-writer v0.0.0-20171117212831-363b9993c911/go.mod h1:9MCv1n7hVJjG+L8lCycwDYXa/bR8kxWpCCKBi9LZal8= github.com/godzie44/go-uring v0.0.0-20220926161041-69611e8b13d5 h1:5zELAgnSz0gqmr4Q5DWCoOzNHoeBAxVUXB7LS1eG+sw= github.com/godzie44/go-uring v0.0.0-20220926161041-69611e8b13d5/go.mod h1:ermjEDUoT/fS+3Ona5Vd6t6mZkw1eHp99ILO5jGRBkM= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= @@ -13,6 +15,12 @@ github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/libp2p/go-sockaddr v0.1.1 h1:yD80l2ZOdGksnOyHrhxDdTDFrf7Oy+v3FMVArIRgZxQ= github.com/libp2p/go-sockaddr v0.1.1/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= +github.com/mooijtech/concurrent-writer v0.0.0-20230906113656-e7a2b9e30b1e h1:WJBbaPcnRhHvoNm7q90vf+itRSPa5ds3vqKYIZ1GPQI= +github.com/mooijtech/concurrent-writer v0.0.0-20230906113656-e7a2b9e30b1e/go.mod h1:RiS47V/B3fVMTuI7yXUNEQd1j50L8unetdSOVttF+Zs= +github.com/mooijtech/concurrent-writer v0.0.1 h1:tJYQ842QgSgpzbw7INy2h6YBGJ/zINO00GAkyhMw/jk= +github.com/mooijtech/concurrent-writer v0.0.1/go.mod h1:RiS47V/B3fVMTuI7yXUNEQd1j50L8unetdSOVttF+Zs= +github.com/mooijtech/concurrent-writer v0.0.2 h1:ZQ6UF6xkNoN+yN7iDIusEKC/wlme6DDjeYsL/8ryv00= +github.com/mooijtech/concurrent-writer v0.0.2/go.mod h1:RiS47V/B3fVMTuI7yXUNEQd1j50L8unetdSOVttF+Zs= github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= diff --git a/pkg/attachment_writer.go b/pkg/attachment_writer.go index 8a70215..925e7a5 100644 --- a/pkg/attachment_writer.go +++ b/pkg/attachment_writer.go @@ -20,7 +20,6 @@ import ( "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" - "google.golang.org/protobuf/proto" "io" ) @@ -33,9 +32,9 @@ type AttachmentWriter struct { } // NewAttachmentWriter creates a new AttachmentWriter. -func NewAttachmentWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType, btreeType BTreeType) *AttachmentWriter { +func NewAttachmentWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType) *AttachmentWriter { propertyWriteCallbackChannel := make(chan WriteCallbackResponse) - propertyContextWriter := NewPropertyContextWriter(writer, writeGroup, propertyWriteCallbackChannel, formatType, btreeType) + propertyContextWriter := NewPropertyContextWriter(writer, writeGroup, propertyWriteCallbackChannel, formatType, BTreeTypeBlock) attachmentWriteChannel := make(chan *properties.Attachment) return &AttachmentWriter{ @@ -44,8 +43,12 @@ func NewAttachmentWriter(writer io.Writer, writeGroup *errgroup.Group, formatTyp } } +// TODO - Maybe merge to Attachment +type WritableAttachment struct { +} + // AddAttachments adds the properties of the attachment (properties.Attachment). -func (attachmentWriter *AttachmentWriter) AddAttachments(attachments ...proto.Message) { +func (attachmentWriter *AttachmentWriter) Add(attachments ...*WritableAttachment) { attachmentWriter.PropertyContextWriter.AddProperties(attachments...) } diff --git a/pkg/block_writer.go b/pkg/block_writer.go index a46b2b3..e72105a 100644 --- a/pkg/block_writer.go +++ b/pkg/block_writer.go @@ -8,13 +8,14 @@ import ( // BlockWriter represents a writer for XBlocks and XXBlocks. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#data-tree +// LocalDescriptorsWriter is a higher structure above the BlockWriter. type BlockWriter struct { // FormatType represents the FormatType used while writing. FormatType FormatType // BlockWriteChannel represents a Go channel used for writing blocks. BlockWriteChannel chan Identifier // BlockWriteCallback represents the callback which is called once a block is written. - BlockWriteCallback chan int + BlockWriteCallback chan int64 } // NewBlockWriter creates a new BlockWriter. diff --git a/pkg/btree.go b/pkg/btree.go index 7f8689c..72f8b19 100644 --- a/pkg/btree.go +++ b/pkg/btree.go @@ -308,12 +308,14 @@ func NewIdentifier(formatType FormatType) (Identifier, error) { var identifierSize int switch formatType { + case FormatTypeUnicode4k: + // TODO - Check this + identifierSize = 8 case FormatTypeUnicode: identifierSize = 8 case FormatTypeANSI: identifierSize = 4 default: - // TODO - Support FormatTypeUnicode4k return 0, ErrFormatTypeUnsupported } @@ -361,12 +363,11 @@ func (identifier Identifier) WriteTo(writer io.Writer, formatType FormatType) (i // Bytes returns the byte representation of the pst.Identifier. func (identifier Identifier) Bytes(formatType FormatType) []byte { switch formatType { - case FormatTypeUnicode: + case FormatTypeUnicode4k, FormatTypeUnicode: return GetUint64(uint64(identifier)) case FormatTypeANSI: return GetUint32(uint32(identifier)) default: - // TODO - Support Unicode4k panic(ErrFormatTypeUnsupported) } } diff --git a/pkg/btree_writer.go b/pkg/btree_writer.go index 8a484c4..54bf6f3 100644 --- a/pkg/btree_writer.go +++ b/pkg/btree_writer.go @@ -23,9 +23,9 @@ import ( "io" ) -// BTreeWriter represents a writer for B-Trees. +// BTreeNodeWriter represents a writer for B-Tree nodes. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#btrees -type BTreeWriter struct { +type BTreeNodeWriter struct { // Writer represents the io.Writer which is used during writing. Writer io.Writer // WriteGroup represents writer running in Goroutines. @@ -34,35 +34,39 @@ type BTreeWriter struct { FormatType FormatType // BTreeType represents the type of b-tree to write (node or block). BTreeType BTreeType - // BTreeWriteChannel represents a Go channel for writing B-Tree nodes. - BTreeWriteChannel chan BTreeNode - // BTreeWriteCallback represents the callback which is called once a B-Tree node is written. - BTreeWriteCallback chan WriteCallbackResponse + // BTreeNodeWriteChannel represents a Go channel for writing B-Tree nodes. + BTreeNodeWriteChannel chan BTreeNode + // BTreeNodeWriteCallback represents the callback which is called once a B-Tree node is written. + BTreeNodeWriteCallback chan int64 // Identifier represents the identifier of the written B-Tree node so that it can be found in the B-Tree. Identifier Identifier + // LocalDescriptorsWriter represents the LocalDescriptorsWriter. + LocalDescriptorsWriter *LocalDescriptorsWriter } -// NewBTreeWriter creates a new BTreeWriter. -func NewBTreeWriter(writer io.Writer, writeGroup *errgroup.Group, btreeWriteCallback chan WriteCallbackResponse, formatType FormatType, btreeType BTreeType) *BTreeWriter { - btreeWriteChannel := make(chan BTreeNode) - - btreeWriter := &BTreeWriter{ - Writer: writer, - WriteGroup: writeGroup, - FormatType: formatType, - BTreeType: btreeType, - BTreeWriteChannel: btreeWriteChannel, - BTreeWriteCallback: btreeWriteCallback, +// NewBTreeNodeWriter creates a new BTreeNodeWriter. +func NewBTreeNodeWriter(writer io.Writer, writeGroup *errgroup.Group, btreeNodeWriteCallback chan int64, formatType FormatType, btreeType BTreeType) *BTreeNodeWriter { + // btreeNodeWriteChannel is a Go channel which is started below (see StartBTreeNodeWriteChannel). + btreeNodeWriteChannel := make(chan BTreeNode) + + btreeWriter := &BTreeNodeWriter{ + Writer: writer, + WriteGroup: writeGroup, + FormatType: formatType, + BTreeType: btreeType, + BTreeNodeWriteChannel: btreeNodeWriteChannel, + BTreeNodeWriteCallback: btreeNodeWriteCallback, + BlockWriter: NewBlockWriter(formatType), } - // Start the Go channel for writing B-Tree nodes. - go btreeWriter.StartBTreeNodeWriteChannel(btreeWriteChannel) + // Start the Go channel for writing the B-Tree. + btreeWriter.StartBTreeWriteChannel() return btreeWriter } // UpdateIdentifier is called after WriteTo so that this B-Tree node can be found in the B-Tree. -func (btreeWriter *BTreeWriter) UpdateIdentifier() error { +func (btreeWriter *BTreeNodeWriter) UpdateIdentifier() error { identifier, err := NewIdentifier(btreeWriter.FormatType) if err != nil { @@ -76,98 +80,122 @@ func (btreeWriter *BTreeWriter) UpdateIdentifier() error { // AddBTreeNodes adds the B-Trees nodes to the write queue. // Processed by StartBTreeNodeWriteChannel. -func (btreeWriter *BTreeWriter) AddBTreeNodes(btreeNodes ...BTreeNode) { +func (btreeWriter *BTreeNodeWriter) AddBTreeNodes(btreeNodes ...BTreeNode) { + // TODO - Add a node B-Tree node for finding. + // TODO - Add a block B-Tree node pointing to where the data is. + // TODO - NodeBTreeWriter and BlockBTreeWriter for _, btreeNode := range btreeNodes { - btreeWriter.BTreeWriteChannel <- btreeNode + btreeWriter.BTreeNodeWriteChannel <- btreeNode } } -// StartBTreeNodeWriteChannel writes B-Tree nodes using Goroutines. -func (btreeWriter *BTreeWriter) StartBTreeNodeWriteChannel(btreeNodeWriteChannel chan BTreeNode) { - for btreeNode := range btreeNodeWriteChannel { +// StartBTreeNodeWriteChannel writes the B-Tree nodes. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#btpage +func (btreeWriter *BTreeNodeWriter) StartBTreeNodeWriteChannel() { + + // Write B-Tree nodes. + for btreeNode := range btreeWriter.BTreeNodeWriteChannel { btreeWriter.WriteGroup.Go(func() error { // Write the B-Tree node. - written, err := btreeNode.WriteTo(btreeWriter.Writer) + btreeNodeWrittenSize, err := btreeNode.WriteTo(btreeWriter.Writer) if err != nil { return eris.Wrap(err, "failed to write B-Tree node") } - // Callback, used to calculate the total size. - // "Share memory by communicating; don't communicate by sharing memory." - btreeWriter.BTreeWriteCallback <- NewWriteCallbackResponse(written) + // Callback, used to calculate the total PST file size. + btreeWriter.BTreeNodeWriteCallback <- btreeNodeWrittenSize return nil }) } } -// WriteTo writes the B-Tree. +// StartBTreeWriteChannel writes the B-Tree. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#btpage -func (btreeWriter *BTreeWriter) WriteTo(writer io.Writer, btreeNodes [][]byte, btreeNodeLevel int) (int64, error) { - btree := bytes.NewBuffer(make([]byte, 512)) // Same for Unicode and ANSI. +func (btreeWriter *BTreeNodeWriter) StartBTreeWriteChannel() { + btreeWriter.WriteGroup.Go(func() error { + // + var maximumBTreeNodes int64 - // This section contains entries of the BTree array. - // The node if either a branch or leaf node depending on the node level. - for _, btreeNode := range btreeNodes { - if _, err := btree.Write(btreeNode); err != nil { - return 0, eris.Wrap(err, "failed to write B-Tree node") + switch btreeWriter.FormatType { + case FormatTypeUnicode4k, FormatTypeUnicode: + // TODO - This is not correct for branch and leaf. + maximumBTreeNodes = 488 / 8 + case FormatTypeANSI: + maximumBTreeNodes = 496 / 4 + default: + return ErrFormatTypeUnsupported } - } - // The number of BTree entries stored in the page data. - // The entries depend on the value of this field. - btree.WriteByte(byte(len(btreeNodes))) + btree := bytes.NewBuffer(make([]byte, 512)) // Same for Unicode and ANSI. - // The maximum number of entries that can fit inside the page data. - btree.Write(make([]byte, 1)) // TODO + // Wait for B-Tree nodes to write. + // TODO - Check overflow. + for btreeNode := range btreeWriter.BTreeNodeWriteChannel { + btreeNodeWrittenSize, err := btreeNode.WriteTo(btree) - // The size of each BTree entry, in bytes. - if btreeWriter.BTreeType == BTreeTypeNode && btreeNodeLevel == 0 { - switch btreeWriter.FormatType { - case FormatTypeUnicode: - btree.Write([]byte{32}) - case FormatTypeANSI: - btree.Write([]byte{16}) - default: - return 0, ErrFormatTypeUnsupported + if err != nil { + return eris.Wrap(err, "failed to write B-Tree node") + } + + btreeWriter.BTreeNodeWriteCallback <- btreeNodeWrittenSize } - } else { - switch btreeWriter.FormatType { - case FormatTypeUnicode: - btree.Write([]byte{24}) - case FormatTypeANSI: - btree.Write([]byte{12}) - default: - return 0, ErrFormatTypeUnsupported + + // The number of BTree entries stored in the page data. + // The entries depend on the value of this field. + btree.WriteByte(byte(len(btreeNodes))) + + // The maximum number of entries that can fit inside the page data. + btree.Write(make([]byte, 1)) // TODO + + // The size of each BTree entry, in bytes. + if btreeWriter.BTreeType == BTreeTypeNode && btreeNodeLevel == 0 { + switch btreeWriter.FormatType { + case FormatTypeUnicode: + btree.Write([]byte{32}) + case FormatTypeANSI: + btree.Write([]byte{16}) + default: + return 0, ErrFormatTypeUnsupported + } + } else { + switch btreeWriter.FormatType { + case FormatTypeUnicode: + btree.Write([]byte{24}) + case FormatTypeANSI: + btree.Write([]byte{12}) + default: + return 0, ErrFormatTypeUnsupported + } } - } - // The depth level of this page. - // Leaf nodes have a level of 0, while branch nodes have a level greater than 0. - // This value determines the type of B-Tree nodes (branch or leaf). - btree.WriteByte(byte(btreeNodeLevel)) + // The depth level of this page. + // Leaf nodes have a level of 0, while branch nodes have a level greater than 0. + // This value determines the type of B-Tree nodes (branch or leaf). + btree.WriteByte(byte(btreeNodeLevel)) - // Padding that should be set to zero. - // Note that there is no padding in the ANSI version of the structure. - if btreeWriter.FormatType == FormatTypeUnicode { - btree.Write(make([]byte, 4)) - } + // Padding that should be set to zero. + // Note that there is no padding in the ANSI version of the structure. + if btreeWriter.FormatType == FormatTypeUnicode { + btree.Write(make([]byte, 4)) + } - // Page trailer. - // A PageTrailer structure with specific subfield values. - // The "ptype" subfield of "pageTrailer" should be set to "ptypeBBT" for a Block BTree page or "ptypeNBT" for a Node BTree page. - // The other subfields of "pageTrailer" should be set as specified in the documentation. - if _, err := btreeWriter.WritePageTrailer(btree, btreeWriter.BTreeType); err != nil { - return 0, eris.Wrap(err, "failed to write page trailer") - } + // Page trailer. + // A PageTrailer structure with specific subfield values. + // The "ptype" subfield of "pageTrailer" should be set to "ptypeBBT" for a Block BTree page or "ptypeNBT" for a Node BTree page. + // The other subfields of "pageTrailer" should be set as specified in the documentation. + if _, err := btreeWriter.WritePageTrailer(btree, btreeWriter.BTreeType); err != nil { + return 0, eris.Wrap(err, "failed to write page trailer") + } - return btree.WriteTo(writer) + return btree.WriteTo(writer) + }) } // WritePageTrailer writes the page tailer of the b-tree. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#pagetrailer -func (btreeWriter *BTreeWriter) WritePageTrailer(writer io.Writer, btreeType BTreeType, btreeFileOffset int64, btreeNodeIdentifier Identifier) (int64, error) { +func (btreeWriter *BTreeNodeWriter) WritePageTrailer(writer io.Writer, btreeType BTreeType, btreeFileOffset int64, btreeNodeIdentifier Identifier) (int64, error) { pageTrailerBuffer := bytes.NewBuffer(make([]byte, 0)) // This value indicates if we are writing a node or block B-Tree. @@ -198,7 +226,7 @@ func (btreeWriter *BTreeWriter) WritePageTrailer(writer io.Writer, btreeType BTr // WriteBlockSignature writes the block signature. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#block-signature -func (btreeWriter *BTreeWriter) WriteBlockSignature(writer io.Writer, fileOffset int64, identifier Identifier) (int, error) { +func (btreeWriter *BTreeNodeWriter) WriteBlockSignature(writer io.Writer, fileOffset int64, identifier Identifier) (int, error) { // A WORD is a 16-bit unsigned integer. // A DWORD is a 32-bit unsigned integer. // The signature is calculated by first obtaining the DWORD XOR result between the absolute file offset of the block and its identifier. diff --git a/pkg/doc.go b/pkg/doc.go index 009289d..c638b97 100644 --- a/pkg/doc.go +++ b/pkg/doc.go @@ -15,4 +15,5 @@ // limitations under the License. // Package pst implements reading Personal Storage Table (.pst) files. +// See cmd/reader.go and cmd/writer.go package pst diff --git a/pkg/doc_test.go b/pkg/doc_test.go deleted file mode 100644 index 31f9d01..0000000 --- a/pkg/doc_test.go +++ /dev/null @@ -1,144 +0,0 @@ -// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). -// -// Copyright 2023 Marten Mooij -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package pst_test - -import ( - "fmt" - "github.com/mooijtech/go-pst/v6/pkg" - "github.com/mooijtech/go-pst/v6/pkg/properties" - "github.com/rotisserie/eris" - "os" - "testing" - "time" -) - -func TestRead(t *testing.T) { - startTime := time.Now() - - fmt.Println("Initializing...") - - reader, err := os.Open("../data/mcflip.pst") - - if err != nil { - panic(fmt.Sprintf("Failed to open PST file: %+v\n", err)) - } - - pstFile, err := pst.New(reader) - - if err != nil { - panic(fmt.Sprintf("Failed to open PST file: %+v\n", err)) - } - - defer func() { - pstFile.Cleanup() - - if errClosing := reader.Close(); errClosing != nil { - panic(fmt.Sprintf("Failed to close PST file: %+v\n", err)) - } - }() - - // Create attachments directory - if _, err := os.Stat("attachments"); err != nil { - if err := os.Mkdir("attachments", 0755); err != nil { - panic(fmt.Sprintf("Failed to create attachments directory: %+v", err)) - } - } - - // Walk through folders. - if err := pstFile.WalkFolders(func(folder *pst.Folder) error { - fmt.Printf("Walking folder: %s\n", folder.Name) - - messageIterator, err := folder.GetMessageIterator() - - if eris.Is(err, pst.ErrMessagesNotFound) { - // Folder has no messages. - return nil - } else if err != nil { - return err - } - - // Iterate through messages. - for messageIterator.Next() { - message := messageIterator.Value() - - switch messageProperties := message.Properties.(type) { - case *properties.Appointment: - //fmt.Printf("Appointment: %s\n", messageProperties.String()) - case *properties.Contact: - //fmt.Printf("Contact: %s\n", messageProperties.String()) - case *properties.Task: - //fmt.Printf("Task: %s\n", messageProperties.String()) - case *properties.RSS: - //fmt.Printf("RSS: %s\n", messageProperties.String()) - case *properties.AddressBook: - //fmt.Printf("Address book: %s\n", messageProperties.String()) - case *properties.Message: - fmt.Printf("Subject: %s\n", messageProperties.GetSubject()) - case *properties.Note: - //fmt.Printf("Note: %s\n", messageProperties.String()) - default: - fmt.Printf("Unknown message type\n") - } - - attachmentIterator, err := message.GetAttachmentIterator() - - if eris.Is(err, pst.ErrAttachmentsNotFound) { - // This message has no attachments. - continue - } else if err != nil { - return err - } - - // Iterate through attachments. - for attachmentIterator.Next() { - attachment := attachmentIterator.Value() - - var attachmentOutputPath string - - if attachment.GetAttachLongFilename() != "" { - attachmentOutputPath = fmt.Sprintf("attachments/%d-%s", attachment.Identifier, attachment.GetAttachLongFilename()) - } else { - attachmentOutputPath = "attachments/UNKNOWN_testing" - } - - attachmentOutput, err := os.Create(attachmentOutputPath) - - if err != nil { - return err - } - - if _, err := attachment.WriteTo(attachmentOutput); err != nil { - return err - } - - if err := attachmentOutput.Close(); err != nil { - return err - } - } - - if attachmentIterator.Err() != nil { - return attachmentIterator.Err() - } - } - - return messageIterator.Err() - }); err != nil { - panic(fmt.Sprintf("Failed to walk folders: %+v\n", err)) - } - - fmt.Printf("Time: %s\n", time.Since(startTime).String()) -} diff --git a/pkg/folder.go b/pkg/folder.go index a041421..0046fc5 100644 --- a/pkg/folder.go +++ b/pkg/folder.go @@ -17,53 +17,74 @@ package pst import ( + "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" ) // Folder represents a folder. +// The folder is writable using a FolderWriter. type Folder struct { - Identifier Identifier - Name string - HasSubFolders bool - MessageCount int32 - PropertyContext *PropertyContext - File *File + Identifier Identifier + // Properties are populate by the PropertyContext. + // See GetPropertyContext. + Properties *properties.Folder } -// GetRootFolder returns the root folder of the PST file. -func (file *File) GetRootFolder() (Folder, error) { +// NewFolder creates a new Folder with the properties for the FolderWriter. +func NewFolder(properties *properties.Folder) *Folder { + return &Folder{ + // Identifier is set by the FolderWriter, TODO move here? + //Identifier: + Properties: properties, + } +} + +// NewFolderWithIdentifier creates a Folder with the specified identifier for the FolderWriter. +func NewFolderWithIdentifier(identifier Identifier, properties *properties.Folder) *Folder { + return &Folder{ + Identifier: identifier, + Properties: properties, + } +} + +// GetPropertyContext returns the PropertyContext of the Folder. +func (folder *Folder) GetPropertyContext(file *File) (*PropertyContext, error) { rootFolderDataNode, err := file.GetDataBTreeNode(IdentifierRootFolder) if err != nil { - return Folder{}, eris.Wrap(err, "failed to get data b-tree node") + return nil, eris.Wrap(err, "failed to get data b-tree node") } rootFolderHeapOnNode, err := file.GetHeapOnNode(rootFolderDataNode) if err != nil { - return Folder{}, eris.Wrap(err, "failed to get Heap-on-Node") + return nil, eris.Wrap(err, "failed to get Heap-on-Node") } propertyContext, err := file.GetPropertyContext(rootFolderHeapOnNode) if err != nil { - return Folder{}, eris.Wrap(err, "failed to get property context") + return nil, eris.Wrap(err, "failed to get property context") } - return Folder{ - Identifier: IdentifierRootFolder, - Name: "ROOT_FOLDER", - HasSubFolders: true, - MessageCount: 0, - PropertyContext: propertyContext, - File: file, + return propertyContext, nil +} + +// GetRootFolder returns the root folder of the PST file. +func (file *File) GetRootFolder() (*Folder, error) { + return &Folder{ + Identifier: IdentifierRootFolder, + Properties: &properties.Folder{ + // TODO - Extend + Name: "IdentifierRootFolder", + }, }, nil } // GetSubFoldersTableContext returns the TableContext for the sub-folders of this folder. // Note this limits the returned properties to the ones we use in the Folder struct. -func (folder *Folder) GetSubFoldersTableContext() (TableContext, error) { - nodeBTreeNode, err := folder.File.GetNodeBTreeNode(folder.Identifier + 11) // +11 is the identifier of the sub-folders. +func (folder *Folder) GetSubFoldersTableContext(file *File) (TableContext, error) { + nodeBTreeNode, err := file.GetNodeBTreeNode(folder.Identifier + 11) // +11 is the identifier of the sub-folders. if err != nil { return TableContext{}, eris.Wrap(err, "failed to get node b-tree node") diff --git a/pkg/folder_writer.go b/pkg/folder_writer.go index a3a0766..9c13e43 100644 --- a/pkg/folder_writer.go +++ b/pkg/folder_writer.go @@ -17,6 +17,7 @@ package pst import ( + "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" @@ -30,75 +31,96 @@ type FolderWriter struct { // FormatType represents the FormatType used while writing. FormatType FormatType // FolderWriteChannel represents the Go channel for writing sub-folders. - FolderWriteChannel chan *FolderWriter + FolderWriteChannel chan *Folder // FolderWriteCallback represents the callback which is called after writing a folder. - FolderWriteCallback chan WriteCallbackResponse + FolderWriteCallback chan int64 + // FolderTableContextWriter writes the pst.TableContext of the pst.Folder. + // A TableContext has identifiers for finding other folders. + FolderTableContextWriter *TableContextWriter + // PropertyContextWriter represents the writer for properties of this folder (see properties.Folder). + PropertyContextWriter *PropertyContextWriter // MessageWriter represents the writer for messages. MessageWriter *MessageWriter - // TableContextWriter writes the pst.TableContext of the pst.Folder. - TableContextWriter *TableContextWriter - // PropertyWriter represents the writer for properties. - PropertyWriter *PropertyWriter - // PropertyWriteChannel represents the Go channel for writing []pst.Property. - //PropertyWriteChannel chan *PropertyWriter + // MessageWriteCallbackChannel represents the callback which is called after a message has been written. + // The message is then added to the MessageTableContextWriter of this folder. + MessageWriteCallbackChannel chan Identifier + // MessageTableContextWriter represents the message TableContext of the folder (identifiers for messages in the B-Tree). + // Property ID 26610 contains the message property identifier. + MessageTableContextWriter *TableContextWriter // Identifier represents the identifier of this folder. + // The identifier is used to find this folder in the B-Tree. Identifier Identifier } // NewFolderWriter creates a new FolderWriter. -func NewFolderWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType) *FolderWriter { +// folderWriteCallback is used by the caller to calculate the total PST file size written. +func NewFolderWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType, folderWriteCallback chan int64) (*FolderWriter, error) { + // propertyWriteCallback is started (StartFolderWriteChannel) below to send the writable properties to the PropertyContext. + propertyWriteCallback := make(chan int64) + // Adds the message identifiers to the message TableContext of the folder (located at folderIdentifier + 12) + messageWriteCallback := make(chan int64) + + // Create the folder writer. folderWriter := &FolderWriter{ - Writer: writer, - FormatType: formatType, - MessageWriter: NewMessageWriter(writeGroup, formatType), - TableContextWriter: NewTableContextWriter(writer, writeGroup, formatType), + Writer: writer, + FormatType: formatType, + FolderWriteChannel: make(chan *Folder), + FolderWriteCallback: folderWriteCallback, + MessageWriter: NewMessageWriter(writer, writeGroup, messageWriteCallback, formatType), + FolderTableContextWriter: NewTableContextWriter(writer, writeGroup, formatType), + MessageTableContextWriter: NewTableContextWriter(writer, writeGroup, formatType), + PropertyContextWriter: NewPropertyContextWriter(writer, writeGroup, propertyWriteCallback, formatType, BTreeTypeBlock), + Identifier: folderIdentifier, } - // Start channels for writing folders and messages. + // Start channel for writing folders. + // The MessageWriter starts a channel for writing messages. go folderWriter.StartFolderWriteChannel(writeGroup) - go folderWriter.StartMessageWriteChannel(writeGroup) - return folderWriter + return folderWriter, nil } // SetIdentifier sets the identifier of the folder. // This is mainly used for the pst.IdentifierRootFolder. -// Usually the identifier is automatically set by UpdateIdentifier after a WriteTo call. +// Usually the identifier is automatically set by NewFolderWriter. func (folderWriter *FolderWriter) SetIdentifier(identifier Identifier) { folderWriter.Identifier = identifier } -// UpdateIdentifier sets the identifier of the folder, so it can be identified in the B-Tree. -// Called after WriteTo. -func (folderWriter *FolderWriter) UpdateIdentifier() error { - identifier, err := NewIdentifier(folderWriter.FormatType) - - if err != nil { - return eris.Wrap(err, "failed to create identifier") +// Add adds the folder or message to this folder. +func (folderWriter *FolderWriter) Add(protoMessages ...proto.Message) error { + for _, protoMessage := range protoMessages { + switch writableProperties := protoMessage.(type) { + case *properties.Folder: + // Add a folder. + folderWriter.FolderTableContextWriter.Add(writableProperties) + case *properties.Message: + // Add a message. + folderWriter.MessageTableContextWriter.Add(writableProperties) + default: + return eris.New("unsupported properties passed to Add") + } } - folderWriter.Identifier = identifier - return nil } -// AddProperties writes the properties of this folder. -// TODO - Extend properties.Folder to include everything in [MS-OXCFOLD]: Folder Object Protocol. -func (folderWriter *FolderWriter) AddProperties(properties ...proto.Message) { - folderWriter.TableContextWriter.AddProperties(properties...) +// AddFolders adds the Folder to the write queue. +func (folderWriter *FolderWriter) AddFolders(folders ...*Folder) { + for _, folder := range folders { + folderWriter.FolderWriteChannel <- folder + } } -// AddMessages adds a message to the channel to be written. -func (folderWriter *FolderWriter) AddMessages(messages ...proto.Message) { - folderWriter.MessageWriter.AddProperties(messages...) +// AddMessages adds a message to the MessageWriter, picked up by Goroutines. +func (folderWriter *FolderWriter) AddMessages(messages ...*MessageWriter) { + folderWriter.MessageWriter.Add(messages...) + folderWriter.UpdateTableContext(messages) } -// AddFolder queues the folder to be written, picked up by a Go channel. -// The folders are added to the TableContextWriter. -func (folderWriter *FolderWriter) AddFolder(folders ...*FolderWriter) { - for _, folder := range folders { - folderWriter.FolderWriteChannel <- folder - } +// UpdateTableContext updates the TableContext of the folder to reference the message identifiers. +func (folderWriter *FolderWriter) UpdateTableContext(messages ...proto.Message) { + } // StartFolderWriteChannel listens for sub-folders to write. @@ -108,7 +130,7 @@ func (folderWriter *FolderWriter) StartFolderWriteChannel(writeGroup *errgroup.G // Listen for folders to write. writeGroup.Go(func() error { // Add folder to TableContextWriter write queue. - folderWriter.TableContextWriter.AddFolder(receivedFolder) + folderWriter.TableContextWriter.AddFolders(receivedFolder) return nil }) @@ -126,13 +148,6 @@ func (folderWriter *FolderWriter) WriteTo(writer io.Writer) (int64, error) { return 0, eris.Wrap(err, "failed to write Table Context") } - // Write messages. - messagesWrittenSize, err := folderWriter.WriteMessages(writer) - - if err != nil { - return 0, eris.Wrap(err, "failed to write messages") - } - // Make this written folder findable in the B-Tree. if err := folderWriter.UpdateIdentifier(); err != nil { return 0, eris.Wrap(err, "failed to update identifier") @@ -140,20 +155,3 @@ func (folderWriter *FolderWriter) WriteTo(writer io.Writer) (int64, error) { return tableContextWrittenSize + messagesWrittenSize, nil } - -// WriteMessages writes the messages of the folder. -func (folderWriter *FolderWriter) WriteMessages(writer io.Writer) (int64, error) { - var totalSize int64 - - for _, messageWriter := range folderWriter.Messages { - written, err := messageWriter.WriteTo(writer) - - if err != nil { - return 0, eris.Wrap(err, "failed to write message") - } - - totalSize += written - } - - return totalSize, nil -} diff --git a/pkg/local_descriptors_writer.go b/pkg/local_descriptors_writer.go index c1205f0..4085c2a 100644 --- a/pkg/local_descriptors_writer.go +++ b/pkg/local_descriptors_writer.go @@ -23,7 +23,7 @@ import ( ) // LocalDescriptorsWriter represents a writer for Local Descriptors (B-Tree Nodes pointing to other B-Tree Nodes). -// The LocalDescriptorsWriter can be used multiple times to create multiple local descriptors. +// BTreeNodeWriter is a higher structure above the LocalDescriptorsWriter. type LocalDescriptorsWriter struct { // Writer represents the io.Writer used while writing. Writer io.Writer @@ -31,38 +31,39 @@ type LocalDescriptorsWriter struct { WriteGroup *errgroup.Group // FormatType represents the FormatType used while writing. FormatType FormatType - // BTreeWriter represents the BTreeWriter. - BTreeWriter *BTreeWriter - // BlockWriter represents the BlocKWriter. - BlockWriter *BlockWriter // Identifier represents the BTree node pst.Identifier of the Local Descriptor created after WriteTo has been called. // Set by UpdateIdentifier, called after writing the Local Descriptor using WriteTo. Identifier Identifier + // BlockWriter represents the BlockWriter. + BlockWriter *BlockWriter } // NewLocalDescriptorsWriter creates a new LocalDescriptorsWriter. func NewLocalDescriptorsWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType, btreeType BTreeType) *LocalDescriptorsWriter { btreeWriteCallback := make(chan WriteCallbackResponse) - btreeWriter := NewBTreeWriter(writer, writeGroup, btreeWriteCallback, formatType, btreeType) - blockWriter := NewBlockWriter(formatType) + btreeWriter := NewBTreeNodeWriter(writer, writeGroup, btreeWriteCallback, formatType, btreeType) return &LocalDescriptorsWriter{ Writer: writer, WriteGroup: writeGroup, FormatType: formatType, BTreeWriter: btreeWriter, - BlockWriter: blockWriter, } } -// AddBTreeNodes adds B-Tree nodes to the Local Descriptor. -func (localDescriptorsWriter *LocalDescriptorsWriter) AddBTreeNodes(btreeNode ...BTreeNode) { - localDescriptorsWriter.BTreeWriter.AddBTreeNodes(btreeNode...) +// Add adds the LocalDescriptor to the write queue of the LocalDescriptorsWriter. +func (localDescriptorsWriter *LocalDescriptorsWriter) Add(localDescriptors ...LocalDescriptor) { + // TODO - Create node and block B-Tree node. + // TODO - NodeBTreeWriter and BlockBTreeWriter. + //localDescriptorsWriter.NodeBTreeWriter.Add(nodeBTreeNode) + //localDescriptorsWriter.BlockBTreeWriter.Add(blockBTreeNode) } -// AddProperty adds a Property to the Local Descriptors. -func (localDescriptorsWriter *LocalDescriptorsWriter) AddProperty(property Property) { +// AddProperty adds a Property to the write queue of the Local Descriptors. +// Use the callback. +func (localDescriptorsWriter *LocalDescriptorsWriter) AddProperty(property Property) Identifier { // Create a B-Tree node for this property. + // TODO - Write property. } // WriteTo writes the Local Descriptors. @@ -72,6 +73,13 @@ func (localDescriptorsWriter *LocalDescriptorsWriter) WriteTo(writer io.Writer) return 0, eris.Wrap(err, "failed to update identifier") } + // Wait for the B-Trees to be written. + var totalSize int64 + + for written := range localDescriptorsWriter.BTreeWriter.BTreeNodeWriteCallback { + totalSize += written + } + return 0, nil } diff --git a/pkg/message.go b/pkg/message.go index 7fc3128..99449b0 100644 --- a/pkg/message.go +++ b/pkg/message.go @@ -27,7 +27,6 @@ import ( // Message represents a message. type Message struct { - File *File Identifier Identifier PropertyContext *PropertyContext AttachmentTableContext *TableContext diff --git a/pkg/message_writer.go b/pkg/message_writer.go index d83beaa..8399a6e 100644 --- a/pkg/message_writer.go +++ b/pkg/message_writer.go @@ -17,7 +17,6 @@ package pst import ( - "context" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" @@ -30,42 +29,45 @@ type MessageWriter struct { Writer io.Writer // FormatType represents the FormatType used while writing. FormatType FormatType - // PropertyWriter represents the writer for properties to the PropertyContextWriter. - PropertyWriter *PropertyWriter // AttachmentWriter represents a writer for attachments. AttachmentWriter *AttachmentWriter // PropertyContextWriter writes the pst.PropertyContext of a pst.Message. PropertyContextWriter *PropertyContextWriter // MessageWriteChannel represents the Go channel used to process writing messages. - MessageWriteChannel chan *MessageWriter - // TODO - Do we need this? - //MessageWriteCallback represents the callback called for each written message. - //MessageWriteCallback chan * + MessageWriteChannel chan *WritableMessage + // MessageWriteCallback represents the callback called for each written message. + MessageWriteCallback chan WriteCallbackResponse // Identifier represents the identifier of this message, which is used in the B-Tree. Identifier Identifier } -//type MessageWriteCallback func() - // NewMessageWriter creates a new MessageWriter. -func NewMessageWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType) *MessageWriter { - propertyWriteCallbackChannel := make(chan Property) +func NewMessageWriter(writer io.Writer, writeGroup *errgroup.Group, messageWriteCallback chan WriteCallbackResponse, formatType FormatType) *MessageWriter { + // propertyWriteCallbackChannel is used to wait for the PropertyContextWriter to be finished (in WriteTo). + propertyWriteCallbackChannel := make(chan WriteCallbackResponse) - return &MessageWriter{ + messageWriter := &MessageWriter{ Writer: writer, FormatType: formatType, - PropertyWriter: NewPropertyWriter(writeGroup, propertyWriteCallbackChannel), - PropertyContextWriter: NewPropertyContextWriter(writeGroup), + AttachmentWriter: NewAttachmentWriter(writer, writeGroup, formatType), + PropertyContextWriter: NewPropertyContextWriter(writer, writeGroup, propertyWriteCallbackChannel, formatType, BTreeTypeBlock), + MessageWriteCallback: messageWriteCallback, } - propertyWriteCallbackChannel := NewMessageCallbackHandler() + // Attached the folder. + messageWriter.Identifier = folderIdentifier + 12 + + // Start the message write channel which processes writing messages. + go messageWriter.StartMessageWriteChannel(writeGroup) + + return messageWriter } // StartMessageWriteChannel receives messages to write. func (messageWriter *MessageWriter) StartMessageWriteChannel(writeGroup *errgroup.Group) { - writeGroup.Go(func() error { - // Listen for messages to write. - for receivedMessage := range messageWriter.MessageWriteChannel { + // The caller already starts a Goroutine. + for receivedMessage := range messageWriter.MessageWriteChannel { + writeGroup.Go(func() error { // Write the message. messageWrittenSize, err := receivedMessage.WriteTo(messageWriter.Writer) @@ -73,35 +75,31 @@ func (messageWriter *MessageWriter) StartMessageWriteChannel(writeGroup *errgrou return eris.Wrap(err, "failed to write message") } - totalSize += messageWrittenSize - } + // Callback to keep track of the total PST file size. + messageWriter.MessageWriteCallback <- NewWriteCallbackResponse(messageWrittenSize) - folderWriter.TotalSize.Add(totalSize) - - return nil - }) + return nil + }) + } } -// AddProperties add the message properties (properties.Message). -// The messages are sent to a Go channel for processing. -func (messageWriter *MessageWriter) AddProperties(properties ...proto.Message) { - +// WritableMessage represents a writable message. +// TODO - Maybe merge to Message. +type WritableMessage struct { + Identifier Identifier + Properties proto.Message } -func (messageWriter *MessageWriter) AddAttachments(attachments ...*AttachmentWriter) { - +// Add adds the WritableMessage to the write queue. +func (messageWriter *MessageWriter) Add(messages ...*WritableMessage) { + for _, message := range messages { + messageWriter.MessageWriteChannel <- message + } } -func (messageWriter *MessageWriter) StartAttachmentWriteChannel(writeContext context.Context) (*errgroup.Group, context.Context) { - attachmentWriteChannelErrGroup, attachmentWriteChannelContext := errgroup.WithContext(writeContext) - - attachmentWriteChannelErrGroup.Go(func() error { - for attachment := range messageWriter.Att - - return nil - }) - - return attachmentWriteChannelErrGroup, attachmentWriteChannelContext +// AddAttachments adds WritableAttachment to the write queue. +func (messageWriter *MessageWriter) AddAttachments(attachments ...*WritableAttachment) { + messageWriter.AttachmentWriter.Add(attachments...) } func (messageWriter *MessageWriter) UpdateIdentifier() error { @@ -123,7 +121,7 @@ func (messageWriter *MessageWriter) WriteTo(writer io.Writer) (int64, error) { return 0, eris.Wrap(err, "failed to write Property Context") } - // Write attachments. + // Wait for attachments to write. var attachmentsWrittenSize int64 for _, attachmentWriter := range messageWriter.Attachments { diff --git a/pkg/property.go b/pkg/property.go index a140b81..4dc0a9a 100644 --- a/pkg/property.go +++ b/pkg/property.go @@ -16,22 +16,44 @@ package pst -// Property represents a property in the PropertyContext or TableContext. -// See PropertyReader. +import ( + "bytes" + "io" +) + +// Property represents a property in the TableContext or PropertyContext. +// See PropertyReader, PropertyWriter. type Property struct { - ID uint16 - Type PropertyType - HNID Identifier - // Data is only used for small values. + Identifier Identifier + Type PropertyType + HNID Identifier + // Value is only used for small values. // <= 8 bytes for the Table Context. // <= 4 bytes for the Property Context. // Other values will use the HNID. - Data []byte + Value bytes.Buffer +} + +// WriteTo writes the byte representation of the Property. +func (property *Property) WriteTo(writer io.Writer, formatType FormatType) (int64, error) { + identifierSize := int(GetIdentifierSize(formatType)) + propertyBuffer := bytes.NewBuffer(make([]byte, identifierSize+2+identifierSize+property.Value.Len())) + + propertyBuffer.Write(property.Identifier.Bytes(formatType)) + propertyBuffer.Write(property.Type.Bytes()) + propertyBuffer.Write(property.HNID.Bytes(formatType)) + propertyBuffer.Write(property.Value.Bytes()) + + return propertyBuffer.WriteTo(writer) } // PropertyType represents the data type of the property. type PropertyType uint16 +func (propertyType PropertyType) Bytes() []byte { + return GetUint16(uint16(propertyType)) +} + // Constants defining the property types. // // References "Property types". diff --git a/pkg/property_context_writer.go b/pkg/property_context_writer.go index c6ab22e..f03f871 100644 --- a/pkg/property_context_writer.go +++ b/pkg/property_context_writer.go @@ -22,13 +22,14 @@ import ( "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" "io" - "log/slog" ) // PropertyContextWriter represents a writer for a pst.PropertyContext. type PropertyContextWriter struct { // Writer represents the io.Writer used when writing. Writer io.Writer + // FormatType represents the FormatType used while writing. + FormatType FormatType // WriteGroup represents Goroutines running writers. WriteGroup *errgroup.Group // BTreeOnHeapWriter represents the BTreeOnHeapWriter. @@ -36,21 +37,24 @@ type PropertyContextWriter struct { // PropertyWriter represents the PropertyWriter. PropertyWriter *PropertyWriter // PropertyWriteCallbackChannel represents the callback channel for writable properties. - PropertyWriteCallbackChannel chan WriteCallbackResponse + PropertyWriteCallbackChannel chan int64 // LocalDescriptorsWriter represents the LocalDescriptorsWriter. LocalDescriptorsWriter *LocalDescriptorsWriter } // NewPropertyContextWriter creates a new PropertyContextWriter. -func NewPropertyContextWriter(writer io.Writer, writeGroup *errgroup.Group, propertyWriteCallbackChannel chan WriteCallbackResponse, formatType FormatType, btreeType BTreeType) *PropertyContextWriter { +func NewPropertyContextWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType) *PropertyContextWriter { heapOnNodeWriter := NewHeapOnNodeWriter(SignatureTypePropertyContext) btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) - propertyWriteChannel := make(chan Property) - propertyWriter := NewPropertyWriter(writeGroup, propertyWriteChannel) - localDescriptorsWriter := NewLocalDescriptorsWriter(writer, writeGroup, formatType, btreeType) + // propertyWriteCallbackChannel returns the written byte size, used to wait for properties to be written. + propertyWriteCallbackChannel := make(chan int64) + // propertyWriter starts a Go channel for writing properties. + propertyWriter := NewPropertyWriter(writer, writeGroup, propertyWriteCallbackChannel, formatType) + localDescriptorsWriter := NewLocalDescriptorsWriter(writer, writeGroup, formatType) propertyContextWriter := &PropertyContextWriter{ Writer: writer, + FormatType: formatType, WriteGroup: writeGroup, BTreeOnHeapWriter: btreeOnHeapWriter, PropertyWriter: propertyWriter, @@ -58,37 +62,13 @@ func NewPropertyContextWriter(writer io.Writer, writeGroup *errgroup.Group, prop LocalDescriptorsWriter: localDescriptorsWriter, } - // Start the write channel. - go propertyContextWriter.StartWriteChannel(propertyWriteChannel) - return propertyContextWriter } -// AddProperties adds the properties to the write queue. -// Writable properties are returned to the StartWriteCallbackChannel. -func (propertyContextWriter *PropertyContextWriter) AddProperties(properties ...proto.Message) { - propertyContextWriter.PropertyWriter.AddProperties(properties...) -} - -// StartWriteChannel handles writing a received writable Property. -func (propertyContextWriter *PropertyContextWriter) StartWriteChannel(writeChannel chan Property) { - for property := range writeChannel { - propertyContextWriter.WriteGroup.Go(func() error { - // Write the property. - slog.Debug("Writing property...", "identifier", property.ID) - - written, err := property.WriteTo(propertyContextWriter.Writer) - - if err != nil { - return eris.Wrap(err, "failed to write property") - } - - // Callback amount of bytes written. - propertyContextWriter.PropertyWriteCallbackChannel <- NewWriteCallbackResponse(written) - - return nil - }) - } +// Add adds the properties (properties.Message, properties.Attachment, etc.) to the write queue. +// Writable properties (Property) are returned to the PropertyWriteCallbackChannel. +func (propertyContextWriter *PropertyContextWriter) Add(properties ...proto.Message) { + propertyContextWriter.PropertyWriter.Add(properties...) } // WriteTo writes the pst.PropertyContext. @@ -101,10 +81,12 @@ func (propertyContextWriter *PropertyContextWriter) WriteTo(writer io.Writer) (i } // Wait for the properties to be written. + // TODO - Wait + // TODO - Write to the structures directly, remove WriteTo altogether. var totalSize int64 - for writeCallbackResponse := range propertyContextWriter.PropertyWriteCallbackChannel { - totalSize += writeCallbackResponse.Written + for writtenSize := range propertyContextWriter.PropertyWriteCallbackChannel { + totalSize += writtenSize } return btreeOnHeapWrittenSize + totalSize, nil @@ -116,7 +98,7 @@ func (propertyContextWriter *PropertyContextWriter) WriteProperty(writer io.Writ propertyBuffer := bytes.NewBuffer(make([]byte, 8)) // Property ID - propertyBuffer.Write(GetUint16(uint16(property.ID))) + propertyBuffer.Write(GetUint16(uint16(property.Identifier))) // Property Type propertyBuffer.Write(GetUint16(uint16(property.Type))) // Value @@ -128,7 +110,9 @@ func (propertyContextWriter *PropertyContextWriter) WriteProperty(writer io.Writ // HID } else { // NID Local Descriptor - propertyContextWriter.LocalDescriptorsWriter.AddProperty() + localDescriptorIdentifier := propertyContextWriter.LocalDescriptorsWriter.AddProperty(property) + + propertyBuffer.Write(localDescriptorIdentifier.Bytes(propertyContextWriter.FormatType)) } return propertyBuffer.WriteTo(writer) diff --git a/pkg/property_writer.go b/pkg/property_writer.go index c575b80..a51711c 100644 --- a/pkg/property_writer.go +++ b/pkg/property_writer.go @@ -4,7 +4,9 @@ import ( "bytes" "encoding/binary" "fmt" + "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" + "github.com/tinylib/msgp/msgp" "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" "io" @@ -14,56 +16,63 @@ import ( ) // PropertyWriter represents a writer for properties. +// The PropertyContext should be used as a higher structure which manages this PropertyWriter. type PropertyWriter struct { + // Writer represents the concurrent writer used while writing. + Writer io.Writer + // WriteGroup represents the writers running in Goroutines. + WriteGroup *errgroup.Group // PropertyWriteChannel represents the Go channel for writing properties. PropertyWriteChannel chan proto.Message // PropertyWriteCallbackChannel is called when a property has been written. PropertyWriteCallbackChannel chan Property + // FormatType represents the FormatType used while writing. + FormatType FormatType + // PropertyCount represents the amount of properties this PropertyWriter will write. + PropertyCount int } // NewPropertyWriter creates a new PropertyWriter. -// propertyWriteCallbackChannel is not required. -func NewPropertyWriter(writeGroup *errgroup.Group, propertyWriteCallbackChannel chan Property) *PropertyWriter { +// propertyWriteCallbackChannel is started by the caller. +func NewPropertyWriter(writer io.Writer, writeGroup *errgroup.Group, propertyWriteCallbackChannel chan Property, formatType FormatType) *PropertyWriter { propertyWriter := &PropertyWriter{ + Writer: writer, + WriteGroup: writeGroup, PropertyWriteChannel: make(chan proto.Message), PropertyWriteCallbackChannel: propertyWriteCallbackChannel, + FormatType: formatType, } // Start the property write channel. - if propertyWriteCallbackChannel == nil { - // TODO - Remove this. - fmt.Printf("Skipping propertyWriteCallbackChannel") - } - - go propertyWriter.StartPropertyWriteChannel(writeGroup) + go propertyWriter.StartPropertyWriteChannel() return propertyWriter } -// AddProperties sends the properties to the write queue. -func (propertyWriter *PropertyWriter) AddProperties(properties ...proto.Message) { +// Add sends the properties to the write queue, picked up by Goroutines. +// Properties will be written to the PropertyWriteCallbackChannel (see StartPropertyWriteChannel). +func (propertyWriter *PropertyWriter) Add(properties ...proto.Message) { for _, property := range properties { propertyWriter.PropertyWriteChannel <- property + propertyWriter.PropertyCount++ } } // StartPropertyWriteChannel starts the Go channel for writing properties. -func (propertyWriter *PropertyWriter) StartPropertyWriteChannel(writeGroup *errgroup.Group) { +func (propertyWriter *PropertyWriter) StartPropertyWriteChannel() { + // The caller is already in a Goroutine. for receivedProperties := range propertyWriter.PropertyWriteChannel { - writeGroup.Go(func() error { - // Create writable byte representation of the property. + propertyWriter.WriteGroup.Go(func() error { + // Create writable byte representation of the properties. writableProperties, err := propertyWriter.GetProperties(receivedProperties) if err != nil { return eris.Wrap(err, "failed to get writable properties") } - // Send writable byte representation Property to the callback, - // in the callback the Property is added to the PropertyContextWriter. - if propertyWriter.PropertyWriteCallbackChannel != nil { - for _, writableProperty := range writableProperties { - propertyWriter.PropertyWriteCallbackChannel <- writableProperty - } + // Callback, the PropertyContext handles writing this to the correct place. + for _, writableProperty := range writableProperties { + propertyWriter.PropertyWriteCallbackChannel <- writableProperty } return nil @@ -71,27 +80,30 @@ func (propertyWriter *PropertyWriter) StartPropertyWriteChannel(writeGroup *errg } } -// Property represents a property that can be written. -type Property struct { - ID Identifier - Type PropertyType - Value bytes.Buffer -} +// GetProperties returns the writable properties. +// This code is a hot-path, do not use reflection here. +// Instead, we use code-generated setters thanks to https://github.com/tinylib/msgp (deserialize into structs). +func (propertyWriter *PropertyWriter) GetProperties(protoMessage proto.Message) ([]Property, error) { + var totalSize int -// WriteTo writes the byte representation of the property. -// Used by the PropertyContextWriter. -func (property *Property) WriteTo(writer io.Writer) (int64, error) { + totalSize += int(GetIdentifierSize(propertyWriter.FormatType)) // TODO - - return 0, nil -} -// GetProperties returns the writable properties. -// Uses reflection to convert a proto.Message (properties.Message, properties.Attachment, etc.) to a list of properties. -func (propertyWriter *PropertyWriter) GetProperties(properties proto.Message) ([]Property, error) { - var writableProperties []Property + messagePackBuffer := bytes.NewBuffer(make([]byte, totalSize)) + messagePackWriter := msgp.NewWriterSize(messagePackBuffer, totalSize) + + switch property := protoMessage.(type) { + case *properties.Message: + // TODO - Skip nil! + property.MarshalMsg() + case *properties.Attachment: + + } + + var properties []Property - propertyTypes := reflect.TypeOf(properties).Elem() - propertyValues := reflect.ValueOf(properties).Elem() + propertyTypes := reflect.TypeOf(protoMessage).Elem() + propertyValues := reflect.ValueOf(protoMessage).Elem() for i := 0; i < propertyTypes.NumField(); i++ { if !propertyTypes.Field(i).IsExported() || propertyValues.Field(i).IsNil() { @@ -134,12 +146,12 @@ func (propertyWriter *PropertyWriter) GetProperties(properties proto.Message) ([ } } - writableProperties = append(writableProperties, Property{ - ID: Identifier(propertyID), - Type: PropertyType(propertyType), - Value: propertyBuffer, + properties = append(properties, Property{ + Identifier: Identifier(propertyID), + Type: PropertyType(propertyType), + Value: propertyBuffer, }) } - return writableProperties, nil + return properties, nil } diff --git a/pkg/table_context_writer.go b/pkg/table_context_writer.go index 4b09cdc..83e5d53 100644 --- a/pkg/table_context_writer.go +++ b/pkg/table_context_writer.go @@ -18,137 +18,148 @@ package pst import ( "bytes" - "cmp" - "context" - "encoding/binary" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" "io" "math" - "slices" - "sync" - "sync/atomic" ) // TableContextWriter represents a writer for a pst.TableContext. +// The TableContext is used to store identifiers pointing to folders and messages. type TableContextWriter struct { + // Writer represents the io.Writer used while writing. + Writer io.WriteSeeker + // WriteGroup represents writers running in Goroutines. + WriteGroup *errgroup.Group // FormatType represents the FormatType. FormatType FormatType - // Properties represents the properties to write (properties.Attachment, properties.Folder etc). - Properties []*proto.Message - // BTreeOnHeapWriter represents the BTreeOnHeapWriter. - BTreeOnHeapWriter *BTreeOnHeapWriter // PropertyWriter represents the PropertyWriter. PropertyWriter *PropertyWriter - // FolderWriteChannel represents a Go channel for writing folders. - FolderWriteChannel chan *FolderWriter - // FolderWritePool represents the pool used when writing. - // Used to limit the running writers. - FolderWritePool sync.Pool - // FolderWaitGroup is used to wait for the writers to complete. - FolderWaitGroup sync.WaitGroup - // TotalSize represents the total size in bytes of the written folders and underlying structures. - TotalSize atomic.Int64 + // PropertyWriteCallbackChannel represents the callback for writable properties. + // These writable properties are sent to the ColumnDescriptorsWriteChannel and RowMatrixWriterChannel. + PropertyWriteCallbackChannel chan Property + // HeaderWriteChannel represents the Go channel used for writing ColumnDescriptor to the header. + // See StartHeaderWriteChannel. + HeaderWriteChannel chan *bytes.Buffer + // RowMatrixWriteChannel represents the channel used for writing to the Row Matrix. + // See StartRowMatrixWriteChannel. + RowMatrixWriteChannel chan Property + // TableContextWriteCallback represents the callback used when the TableContextWriter is done writing. + TableContextWriteCallback chan int64 } // NewTableContextWriter creates a new TableContextWriter. -func NewTableContextWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType) *TableContextWriter { - heapOnNodeWriter := NewHeapOnNodeWriter(SignatureTypeTableContext) - btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) - propertyWriter := NewPropertyWriter(properties) +func NewTableContextWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, formatType FormatType) (*TableContextWriter, error) { + // Create PropertyWriter (see StartChannels). + propertyWriteCallbackChannel := make(chan Property) + propertyWriter := NewPropertyWriter(writer, writeGroup, propertyWriteCallbackChannel, formatType) + // Create TableContextWriter + tableContextWriteCallback := make(chan int64) tableContextWriter := &TableContextWriter{ - FormatType: formatType, - Properties: properties, - BTreeOnHeapWriter: btreeOnHeapWriter, - PropertyWriter: propertyWriter, + Writer: writer, + WriteGroup: writeGroup, + FormatType: formatType, + PropertyWriter: propertyWriter, + PropertyWriteCallbackChannel: propertyWriteCallbackChannel, + TableContextWriteCallback: tableContextWriteCallback, } - tableContextWriter.StartFolderWriteChannel(writer, writeContext, writeLimit) - - return tableContextWriter -} + // Write the BTree-on-Heap. + if err := tableContextWriter.WriteBTreeOnHeap(); err != nil { + return nil, eris.Wrap(err, "failed to write BTree-on-Heap") + } -// StartFolderWriteChannel listens for folders to write to the Table Context. -func (tableContextWriter *TableContextWriter) StartFolderWriteChannel(writer io.Writer, writeContext context.Context, writeLimit int) (*errgroup.Group, context.Context) { - errGroup, folderWriteContext := errgroup.WithContext(writeContext) + // Start channels for writing + tableContextWriter.StartChannels() - errGroup.SetLimit(writeLimit) - errGroup.Go(func() error { - for folder := range tableContextWriter.FolderWriteChannel { - folderWrittenSize, err := folder.WriteTo(writer) + return tableContextWriter, nil +} - if err != nil { - return eris.Wrap(err, "failed to write folder") - } +// WriteBTreeOnHeap writes the BTreeOnHeap of the TableContext. +func (tableContextWriter *TableContextWriter) WriteBTreeOnHeap() error { + heapOnNodeWriter := NewHeapOnNodeWriter(SignatureTypeTableContext) + btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) + btreeOnHeapWrittenSize, err := btreeOnHeapWriter.WriteTo(tableContextWriter.Writer) - // Total size is used by the PST header to indicate the total size of the PST file. - tableContextWriter.TotalSize.Add(folderWrittenSize) - } + if err != nil { + return eris.Wrap(err, "failed to write BTree-on-Heap") + } - return nil - }) + tableContextWriter.TableContextWriteCallback <- btreeOnHeapWrittenSize - return errGroup, folderWriteContext + return nil } -// AddFolder sends the folder to a write channel. -func (tableContextWriter *TableContextWriter) AddFolder(folder *FolderWriter) { - tableContextWriter.FolderWriteChannel <- folder +// StartChannels starts the channels for writing. +// +// Forwards PropertyWriteCallbackChannel to the HeaderWriteChannel and RowMatrixWriteChannel. +// HeaderWriteChannel writes ColumnDescriptor to the Header. +// RowMatrixWriteChannel writes Property to the Row Matrix. +func (tableContextWriter *TableContextWriter) StartChannels() { + go tableContextWriter.StartPropertyWriteCallbackChannel() + go tableContextWriter.StartHeaderWriteChannel() + go tableContextWriter.StartRowMatrixWriteChannel() } -func (tableContextWriter *TableContextWriter) AddProperties(properties ...proto.Message) { - tableContextWriter.PropertyWriter.AddProperties(properties...) +// Add the properties to the PropertyWriter write queue. +// Each Property is sent back to the PropertyWriteCallbackChannel (see StartPropertyWriteCallbackChannel). +func (tableContextWriter *TableContextWriter) Add(protoMessages ...proto.Message) { + tableContextWriter.PropertyWriter.Add(protoMessages...) } -// WriteTo writes the pst.TableContext. -// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#creating-a-tc -func (tableContextWriter *TableContextWriter) WriteTo(writer io.Writer) (int64, error) { - btreeOnHeapWrittenSize, err := tableContextWriter.BTreeOnHeapWriter.WriteTo(writer) +// StartPropertyWriteCallbackChannel forwards the Property to the HeaderWriteChannel and RowMatrixWriteChannel. +func (tableContextWriter *TableContextWriter) StartPropertyWriteCallbackChannel() { + propertyIndex := 0 - if err != nil { - return 0, eris.Wrap(err, "failed to write BTree-on-Heap") - } + for writableProperty := range tableContextWriter.PropertyWriteCallbackChannel { + // Create ColumnDescriptor of the Property. + // Send ColumnDescriptor to the HeaderWriteChannel (see StartHeaderWriteChannel). + tableContextWriter.HeaderWriteChannel <- tableContextWriter.GetColumnDescriptor(writableProperty, propertyIndex) - properties, err := tableContextWriter.PropertyWriter.GetProperties() + // Send Property to the RowMatrixWriteChannel (see StartRowMatrixWriteChannel). + tableContextWriter.RowMatrixWriteChannel <- writableProperty - if err != nil { - return 0, eris.Wrap(err, "failed to get properties") + // Used to calculate the ColumnDescriptor start offset of this property. + propertyIndex++ } +} - headerWrittenSize, err := tableContextWriter.WriteHeader(writer, properties) +type RowMatrixOffsets struct { +} - if err != nil { - return 0, eris.Wrap(err, "failed to write Table Context header") +// StartHeaderWriteChannel writes the header. +// Waits for HeaderWriteChannel to write ColumnDescriptor. +func (tableContextWriter *TableContextWriter) StartHeaderWriteChannel() error { + // Skip past the header until we have received all Column Descriptors. + if _, err := tableContextWriter.Writer.Seek(22, io.SeekCurrent); err != nil { + return eris.Wrap(err, "failed to seek") } - rowMatrixWrittenSize, err := tableContextWriter.WriteRowMatrix(writer, properties) + // Write Column Descriptors (references to properties). + for columnDescriptor := range tableContextWriter.HeaderWriteChannel { + columnDescriptorWrittenSize, err := columnDescriptor.WriteTo(tableContextWriter.Writer) - if err != nil { - return 0, eris.Wrap(err, "failed to write row matrix") - } + if err != nil { + return eris.Wrap(err, "failed to write column descriptor") + } - return btreeOnHeapWrittenSize + headerWrittenSize + rowMatrixWrittenSize, nil -} + tableContextWriter.TableContextWriteCallback <- int64(columnDescriptor.Len()) + } -// WriteHeader writes the pst.TableContext header. -// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#tcinfo -func (tableContextWriter *TableContextWriter) WriteHeader(writer io.Writer, properties []Property) (int64, error) { - columnDescriptors, err := tableContextWriter.GetColumnDescriptors(properties) + // Move back and write the header now that all properties have been written. - if err != nil { - return 0, eris.Wrap(err, "failed to get column descriptors") - } + propertyCount := tableContextWriter.PropertyWriter.PropertyCount // 1+1+8+4+4+4+columnDescriptors - header := bytes.NewBuffer(make([]byte, 22+(8*len(columnDescriptors)))) + header := bytes.NewBuffer(make([]byte, 22+(8*propertyCount))) - // MUST be set to bTypeTC. + // MUST be set to SignatureTypeTableContext. header.Write([]byte{byte(SignatureTypeTableContext)}) // Column count. - header.WriteByte(byte(len(columnDescriptors))) + header.WriteByte(byte(propertyCount)) // TODO - Pass from row matrix // This is an array of 4 16-bit values that specify the offsets of various groups of data in the actual row data. @@ -170,56 +181,66 @@ func (tableContextWriter *TableContextWriter) WriteHeader(writer io.Writer, prop header.Write(make([]byte, 4)) // Sort column descriptors by property ID (according to specification). - slices.SortFunc(columnDescriptors, func(a []byte, b []byte) int { - return cmp.Compare(binary.LittleEndian.Uint16(a[2:2+2]), binary.LittleEndian.Uint16(b[2:2+2])) - }) + // TODO- + //slices.SortFunc(columnDescriptors, func(a []byte, b []byte) int { + // return cmp.Compare(binary.LittleEndian.Uint16(a[2:2+2]), binary.LittleEndian.Uint16(b[2:2+2])) + //}) +} - // Array of Column Descriptors. - for _, columnDescriptor := range columnDescriptors { - header.Write(columnDescriptor) - } +// StartRowMatrixWriteChannel writes the Property to the Row Matrix. +// References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#row-matrix +func (tableContextWriter *TableContextWriter) StartRowMatrixWriteChannel() { + // Write the Row Matrix. - return header.WriteTo(writer) + for writableProperty := range tableContextWriter.RowMatrixWriteChannel { + writableProperty.WriteTo(tableContextWriter.Writer, tableContextWriter.FormatType) + } } -// GetColumnDescriptors returns the Column Descriptors based on the properties. +// GetColumnDescriptor returns the ColumnDescriptor of the Property. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#tcoldesc -func (tableContextWriter *TableContextWriter) GetColumnDescriptors(properties []Property) ([][]byte, error) { - var columnDescriptors [][]byte - - for i, property := range properties { - columnDescriptorBuffer := bytes.NewBuffer(make([]byte, 8)) - - // Tag - columnDescriptorBuffer.Write(GetUint16(uint16(property.ID))) - columnDescriptorBuffer.Write(GetUint16(uint16(property.Type))) - // Offset - columnDescriptorBuffer.Write(GetUint16(uint16(8 * i))) - - // Data Size - if property.Value.Len() <= 8 { - columnDescriptorBuffer.WriteByte(byte(property.Value.Len())) - } else { - // Variable-sized data (size of a HNID) - columnDescriptorBuffer.WriteByte(byte(4)) - } - - // Cell Existence Bitmap Index - columnDescriptorBuffer.WriteByte(byte(2 + i)) // Skip 0 and 1 +func (tableContextWriter *TableContextWriter) GetColumnDescriptor(property Property, propertyIndex int) *bytes.Buffer { + columnDescriptorBuffer := bytes.NewBuffer(make([]byte, 8)) + + // Tag + columnDescriptorBuffer.Write(GetUint16(uint16(property.Identifier))) + columnDescriptorBuffer.Write(GetUint16(uint16(property.Type))) + + // Offset + columnDescriptorBuffer.Write(GetUint16(uint16(8 * propertyIndex))) + + // Data Size + if property.Value.Len() <= 8 { + // Property value size. + columnDescriptorBuffer.WriteByte(byte(property.Value.Len())) + } else { + // Variable-sized data (size of an Identifier) + columnDescriptorBuffer.WriteByte(byte(4)) } - return columnDescriptors, nil + // Cell Existence Bitmap Index + columnDescriptorBuffer.WriteByte(byte(2 + propertyIndex)) // Skip 0 and 1 + + return columnDescriptorBuffer } // WriteRowMatrix writes the Row Matrix of the Table Context. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#row-matrix -func (tableContextWriter *TableContextWriter) WriteRowMatrix(writer io.Writer, properties []Property) (int64, error) { - rowMatrixBuffer := bytes.NewBuffer(make([]byte, tableContextWriter.GetRowMatrixSize(properties))) +func (tableContextWriter *TableContextWriter) WriteRowMatrix(writer io.Writer) (int64, error) { + rowMatrixBuffer := bytes.NewBuffer(make([]byte, tableContextWriter.GetRowMatrixSize(tableContextWriter.PropertyWriter.PropertyCount))) // Sort by byte-size so writes are aligned accordingly. - slices.SortFunc(properties, func(a, b Property) int { - return cmp.Compare(a.Value.Len(), b.Value.Len()) - }) + //slices.SortFunc(properties, func(a, b Property) int { + // return cmp.Compare(a.Value.Len(), b.Value.Len()) + //}) + + //propertyIndex := 0 + // + //for writableProperty := range tableContextWriter.PropertyWriteCallbackChannel { + // // Create a ColumnDescriptor for the header. + // tableContextWriter.ColumnDescriptorCallbackChannel <- tableContextWriter.GetColumnDescriptor(writableProperty, propertyIndex) + // propertyIndex++ + //} for _, property := range properties { // The 32-bit value that corresponds to the dwRowID value in this row's corresponding TCROWID record. diff --git a/pkg/writer.go b/pkg/writer.go index 72fda35..f4f5d3f 100644 --- a/pkg/writer.go +++ b/pkg/writer.go @@ -26,31 +26,36 @@ import ( // Writer writes PST files. type Writer struct { - // Writer represents the io.Writer used while writing. - Writer io.Writer + // Writer represents the writer. + Writer io.WriteSeeker // WriteGroup represents the writers running in Goroutines. WriteGroup *errgroup.Group // WriteOptions represents options used while writing. WriteOptions WriteOptions - // FolderWriteChannel represents a Go channel queue for writing folders. - FolderWriteChannel chan *FolderWriter - // FolderWriteCallback represents a Go channel callback for when a folder is written. - FolderWriteCallback chan WriteCallbackResponse + // FolderWriter represents the writer for folders. + FolderWriter *FolderWriter + // FolderWriteCallback represents the callback which is called after a folder is written. + FolderWriteCallback chan int64 } // NewWriter returns a writer for PST files. -func NewWriter(writer io.Writer, writeGroup *errgroup.Group, writeOptions WriteOptions) *Writer { - pstWriter := &Writer{ - Writer: writer, - WriteGroup: writeGroup, - WriteOptions: writeOptions, - FolderWriteChannel: make(chan *FolderWriter), +func NewWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, writeOptions WriteOptions) (*Writer, error) { + folderWriteCallback := make(chan int64) + folderWriter, err := NewFolderWriter(writer, writeGroup, writeOptions.FormatType, folderWriteCallback) + + if err != nil { + return nil, eris.Wrap(err, "failed to create folder writer") } - // Start write channel. - go pstWriter.StartFolderWriteChannel(writeGroup) + pstWriter := &Writer{ + Writer: writer, + WriteGroup: writeGroup, + WriteOptions: writeOptions, + FolderWriter: folderWriter, + FolderWriteCallback: folderWriteCallback, + } - return pstWriter + return pstWriter, nil } // WriteOptions defines the options used during writing. @@ -69,45 +74,10 @@ func NewWriteOptions(formatType FormatType, encryptionType EncryptionType) Write } } -// WriteCallbackResponse represents a response of a completed write. -type WriteCallbackResponse struct { - // Written represents the amount of bytes written. - Written int64 - // Errors are already returned by calling Wait on the writeGroup (errgroup.Group). -} - -// NewWriteCallbackResponse creates a new WriteCallbackResponse. -func NewWriteCallbackResponse(written int64) WriteCallbackResponse { - return WriteCallbackResponse{ - Written: written, - } -} - -// AddFolders adds a pst.Folder to write. -// Must contain at least a root folder (pst.IdentifierRootFolder). -func (pstWriter *Writer) AddFolders(folders ...*FolderWriter) { - for _, folder := range folders { - pstWriter.FolderWriteChannel <- folder - } -} - -// StartFolderWriteChannel starts the Go channel for writing folders. -func (pstWriter *Writer) StartFolderWriteChannel(writeGroup *errgroup.Group) { - // Listen for folders to write. - for folder := range pstWriter.FolderWriteChannel { - writeGroup.Go(func() error { - // Write the folder. - folderWrittenSize, err := folder.WriteTo(pstWriter.Writer) - - if err != nil { - return eris.Wrap(err, "failed to write folder") - } - - pstWriter.FolderWriteCallback <- NewWriteCallbackResponse(folderWrittenSize) - - return nil - }) - } +// AddFolders adds the folders to the FolderWriter write queue. +// See AddRootFolder. +func (pstWriter *Writer) AddFolders(folders ...*Folder) { + pstWriter.FolderWriter.AddFolders(folders...) } // WriteTo writes the PST file. @@ -132,12 +102,14 @@ func (pstWriter *Writer) StartFolderWriteChannel(writeGroup *errgroup.Group) { // The pst.PropertyContext contains a list of properties ([]pst.Property) of the message, we can write this with PropertyWriter. // // Combining these structures we make up a PST file to write. +// Each writer communicates with Go channels and Goroutines. func (pstWriter *Writer) WriteTo(writer io.Writer) (int64, error) { var totalSize int64 - // Wait for responses that all folders are written. - for writeCallbackResponse := range pstWriter.FolderWriteCallback { - totalSize += writeCallbackResponse.Written + // Wait for all folders to be written. + // "Share memory by communicating; don't communicate by sharing memory." + for folderWrittenSize := range pstWriter.FolderWriter.FolderWriteCallback { + totalSize += folderWrittenSize } // Wait for channels to finish. @@ -161,7 +133,8 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode var headerSize int switch pstWriter.WriteOptions.FormatType { - case FormatTypeUnicode: + case FormatTypeUnicode4k, FormatTypeUnicode: + // TODO - Where is the documentation for Unicode4k? // 4+4+2+2+2+1+1+4+4+8+8+4+128+8+ROOT+4+128+128+1+1+2+8+4+3+1+32 // Header + header root headerSize = 492 + 72 @@ -170,7 +143,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // Header + header root headerSize = 472 + 40 default: - panic(ErrFormatTypeUnsupported) + return 0, ErrFormatTypeUnsupported } header := bytes.NewBuffer(make([]byte, headerSize)) @@ -181,29 +154,36 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // File format version switch pstWriter.WriteOptions.FormatType { - case FormatTypeUnicode: + case FormatTypeUnicode4k, FormatTypeUnicode: + // TODO - Where is the documentation for Unicode4k? // MUST be greater than 23 if the file is a Unicode PST file. header.Write([]byte{30}) case FormatTypeANSI: // This value MUST be 14 or 15 if the file is an ANSI PST file. header.Write([]byte{15}) default: - panic(ErrFormatTypeUnsupported) + return 0, ErrFormatTypeUnsupported } - header.Write([]byte{19}) // Client file format version. - header.Write([]byte{1}) // Platform Create - header.Write([]byte{1}) // Platform Access - header.Write(make([]byte, 4)) // Reserved1 - header.Write(make([]byte, 4)) // Reserved2 - - if pstWriter.WriteOptions.FormatType == FormatTypeUnicode { - // Padding (bidUnused) for Unicode. + // Client file format version. + header.Write([]byte{19}) + // Platform Create + header.Write([]byte{1}) + // Platform Access + header.Write([]byte{1}) + // Reserved1 + header.Write(make([]byte, 4)) + // Reserved2 + header.Write(make([]byte, 4)) + + // Padding (bidUnused) for Unicode. + if pstWriter.WriteOptions.FormatType == FormatTypeUnicode || pstWriter.WriteOptions.FormatType == FormatTypeUnicode4k { header.Write(make([]byte, 8)) } + + // Next BID (bidNextB) for ANSI only. + // go-pst does not read this. if pstWriter.WriteOptions.FormatType == FormatTypeANSI { - // Next BID (bidNextB) for ANSI only. - // go-pst does not read this. header.Write(make([]byte, 4)) } @@ -211,10 +191,9 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // This can be used to increment a value for generating identifiers used by B-Tree nodes. // I assume it's faster to generate an identifier with crypto/rand instead of having to read and update this value. // go-pst does not read this. - if pstWriter.WriteOptions.FormatType == FormatTypeUnicode { + if pstWriter.WriteOptions.FormatType == FormatTypeUnicode4k || pstWriter.WriteOptions.FormatType == FormatTypeUnicode { header.Write(make([]byte, 8)) - } - if pstWriter.WriteOptions.FormatType == FormatTypeANSI { + } else if pstWriter.WriteOptions.FormatType == FormatTypeANSI { header.Write(make([]byte, 4)) } @@ -224,11 +203,13 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // Special Internal B-Tree nodes. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#special-internal-nids - header.Write(make([]byte, 128)) + if _, err := pstWriter.WriteInternalBTreeNodes(header); err != nil { + return 0, eris.Wrap(err, "failed to write internal B-Tree nodes") + } - if pstWriter.WriteOptions.FormatType == FormatTypeUnicode { - // Unused space; MUST be set to zero. Unicode PST file format only. - // (qwUnused) + // Unused space; MUST be set to zero. Unicode PST file format only. + // (qwUnused) + if pstWriter.WriteOptions.FormatType == FormatTypeUnicode4k || pstWriter.WriteOptions.FormatType == FormatTypeUnicode { header.Write(make([]byte, 8)) } @@ -239,28 +220,30 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // Unused alignment bytes; MUST be set to zero. // Unicode PST file format only. - if pstWriter.WriteOptions.FormatType == FormatTypeUnicode { + if pstWriter.WriteOptions.FormatType == FormatTypeUnicode4k || pstWriter.WriteOptions.FormatType == FormatTypeUnicode { header.Write(make([]byte, 4)) } + // Fill both FMaps (deprecated). for i := 0; i < 128+128; i++ { - // Fill both FMap (deprecated). header.Write([]byte{255}) } // bSentinel header.Write([]byte{128}) // Encryption. Indicates how the data within the PST file is encoded. (bCryptMethod) - header.Write([]byte{byte(pstWriter.WriteOptions.EncryptionType)}) + header.WriteByte(byte(pstWriter.WriteOptions.EncryptionType)) // rgbReserved header.Write(make([]byte, 2)) - if pstWriter.WriteOptions.FormatType == FormatTypeUnicode { - // Next BID. go-pst does not read this value (bidNextB) + if pstWriter.WriteOptions.FormatType == FormatTypeUnicode4k || pstWriter.WriteOptions.FormatType == FormatTypeUnicode { + // Next BID. + // go-pst does not read this value (bidNextB) header.Write(make([]byte, 8)) // The 32-bit CRC value of the 516 bytes of data starting from wMagicClient to bidNextB, inclusive. // Unicode PST file format only. (dwCRCFull) + // TODO - Check matches the CRC algorithm used by Microsoft. header.Write([]byte{byte(crc32.ChecksumIEEE(header.Bytes()[4 : 4+516]))}) } @@ -285,23 +268,24 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // WriteInternalBTreeNodes writes the special internal B-Tree nodes. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#special-internal-nids -func (btreeWriter *BTreeWriter) WriteInternalBTreeNodes(writer io.Writer) (int64, error) { - internalIdentifiersBuffer := bytes.NewBuffer(make([]byte, 32*GetIdentifierSize(btreeWriter.FormatType))) - - internalIdentifiersBuffer.Write(IdentifierMessageStore.Bytes(btreeWriter.FormatType)) - internalIdentifiersBuffer.Write(IdentifierNameToIDMap.Bytes(btreeWriter.FormatType)) - internalIdentifiersBuffer.Write(IdentifierNormalFolderTemplate.Bytes(btreeWriter.FormatType)) - internalIdentifiersBuffer.Write(IdentifierSearchFolderTemplate.Bytes(btreeWriter.FormatType)) - internalIdentifiersBuffer.Write(IdentifierRootFolder.Bytes(btreeWriter.FormatType)) - internalIdentifiersBuffer.Write(IdentifierSearchManagementQueue.Bytes(btreeWriter.FormatType)) - internalIdentifiersBuffer.Write(IdentifierSearchActivityList.Bytes(btreeWriter.FormatType)) - internalIdentifiersBuffer.Write(IdentifierReserved1.Bytes(btreeWriter.FormatType)) - internalIdentifiersBuffer.Write(IdentifierSearchDomainObject.Bytes(btreeWriter.FormatType)) - internalIdentifiersBuffer.Write(IdentifierSearchGathererQueue.Bytes(btreeWriter.FormatType)) - internalIdentifiersBuffer.Write(IdentifierSearchGathererDescriptor.Bytes(btreeWriter.FormatType)) - internalIdentifiersBuffer.Write(IdentifierReserved2.Bytes(btreeWriter.FormatType)) - internalIdentifiersBuffer.Write(IdentifierReserved3.Bytes(btreeWriter.FormatType)) - internalIdentifiersBuffer.Write(IdentifierSearchGathererFolderQueue.Bytes(btreeWriter.FormatType)) +func (pstWriter *Writer) WriteInternalBTreeNodes(writer io.Writer) (int64, error) { + internalIdentifiersBuffer := bytes.NewBuffer(make([]byte, 128)) + formatType := pstWriter.WriteOptions.FormatType + + internalIdentifiersBuffer.Write(IdentifierMessageStore.Bytes(formatType)) + internalIdentifiersBuffer.Write(IdentifierNameToIDMap.Bytes(formatType)) + internalIdentifiersBuffer.Write(IdentifierNormalFolderTemplate.Bytes(formatType)) + internalIdentifiersBuffer.Write(IdentifierSearchFolderTemplate.Bytes(formatType)) + internalIdentifiersBuffer.Write(IdentifierRootFolder.Bytes(formatType)) + internalIdentifiersBuffer.Write(IdentifierSearchManagementQueue.Bytes(formatType)) + internalIdentifiersBuffer.Write(IdentifierSearchActivityList.Bytes(formatType)) + internalIdentifiersBuffer.Write(IdentifierReserved1.Bytes(formatType)) + internalIdentifiersBuffer.Write(IdentifierSearchDomainObject.Bytes(formatType)) + internalIdentifiersBuffer.Write(IdentifierSearchGathererQueue.Bytes(formatType)) + internalIdentifiersBuffer.Write(IdentifierSearchGathererDescriptor.Bytes(formatType)) + internalIdentifiersBuffer.Write(IdentifierReserved2.Bytes(formatType)) + internalIdentifiersBuffer.Write(IdentifierReserved3.Bytes(formatType)) + internalIdentifiersBuffer.Write(IdentifierSearchGathererFolderQueue.Bytes(formatType)) return internalIdentifiersBuffer.WriteTo(writer) } From f276eb26a882ab5033e70257605b401aaaaf8724 Mon Sep 17 00:00:00 2001 From: Marten Mooij Date: Sat, 9 Sep 2023 15:31:14 +0200 Subject: [PATCH 10/12] Start StreamWriter generic writer with channels --- README.md | 10 +++ cmd/writer.go | 72 +++++------------ pkg/attachment_writer.go | 6 +- pkg/block_writer.go | 16 ++++ pkg/folder_writer.go | 136 ++++++++++++++++++--------------- pkg/message.go | 4 +- pkg/message_writer.go | 56 +++++++------- pkg/name_to_id_map_writer.go | 16 ++++ pkg/property.go | 2 +- pkg/property_context_writer.go | 30 ++++---- pkg/property_writer.go | 121 ++++++++++++++++++++--------- pkg/stream_writer.go | 134 ++++++++++++++++++++++++++++++++ pkg/table_context_writer.go | 21 ++++- pkg/writer.go | 35 +++++++-- 14 files changed, 448 insertions(+), 211 deletions(-) create mode 100644 pkg/stream_writer.go diff --git a/README.md b/README.md index bf82069..7325518 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,10 @@ The PFF (Personal Folder File) and OFF (Offline Folder File) format is used to s $ go install github.com/mooijtech/go-pst/v6 ``` +See the [cmd/reader.go]() and [cmd/writer.go](): + +### Reader + ```go package main @@ -173,6 +177,12 @@ func main() { } ``` +### Writer + +```go + +``` + ## License This project is licensed under the [Apache License 2.0](). diff --git a/cmd/writer.go b/cmd/writer.go index c987520..e9878a8 100644 --- a/cmd/writer.go +++ b/cmd/writer.go @@ -23,9 +23,8 @@ import ( "github.com/dustin/go-humanize" "github.com/mooijtech/concurrent-writer/concurrent" pst "github.com/mooijtech/go-pst/v6/pkg" - "github.com/mooijtech/go-pst/v6/pkg/properties" + "github.com/pkg/errors" "golang.org/x/sync/errgroup" - "google.golang.org/protobuf/proto" "log/slog" "os" "time" @@ -73,67 +72,36 @@ func main() { } // Write folders. + rootFolder := writer.GetRootFolder() - rootFolder := writer.AddRootFolder() + for i := 0; i < 3; i++ { + subFolderWriter := pst.NewFolderWriter() + //subFolder := pst.NewFolder(&properties.Folder{Name: fmt.Sprintf("Sub-folder #%d", i)}) - // Create sub-folders. - writer.Add + // Add messages + for i := 0; i < 6; i++ { + message := pst.NewMessageWriter() - folderWriteCallback := make(chan int64) - folderWriter, err := pst.NewFolderWriter(concurrentWriter, writeGroup, formatType, folderWriteCallback) + // Add attachments + for i := 0; i < 9; i++ { + attachmentWriter := pst.NewAttachmentWriter() - if err != nil { - panic(fmt.Sprintf("Failed to create FolderWriter: %+v", err)) - } - - rootFolder := writer.AddRootFolder() + message.AddAttachments(attachmentWriter) + } - // Add sub-folders. - for i := 0; i < 6; i++ { - subFolder, err := pst.NewFolderWriter(outputFile, writeGroup, formatType) - - if err != nil { - panic(fmt.Sprintf("Failed to create FolderWriter: %+v", err)) + subFolderWriter.AddMessages() } - subFolderProperties := &properties.Folder{ - Name: fmt.Sprintf("Sub-folder #%d", i), - } - - if err := subFolder.Add(subFolderProperties); err != nil { - panic(fmt.Sprintf("Failed to add folder: %+v", err)) - } - - // Add messages to the sub-folder. - message := NewMessageWriter(formatType, writeGroup) - - message.AddProperties(&properties.Message{ - Subject: proto.String("Goodbye, world!"), - }) - - // Add attachments to message. - for x := 0; x < 9; x++ { - attachment := NewAttachmentWriter() - - attachment.AddProperties(&properties.Attachment{ - AttachFilename: proto.String(fmt.Sprintf("nudes%d.png", x)), - AttachLongFilename: proto.String(fmt.Sprintf("nudes%d.png", x)), - }) - - message.AddAttachments(attachment) - } - - // Add sub-folders with messages containing attachments to root folder. - rootFolder.(subFolder) + rootFolder.AddSubFolders(subFolderWriter) } - // Writer which starts everything (has the PST file header). - writer.AddFolders(rootFolder) - - // See the documentation of WriteTo for the path followed. + // See the documentation of WriteTo. bytesWritten, err := writer.WriteTo(outputFile) - if err != nil { + if errors.Is(err, pst.ErrSizeLimit) { + // Handle edge case where the PST file is >= 50GB. + + } else if err != nil { panic(fmt.Sprintf("Failed to write PST file: %+v", err)) } diff --git a/pkg/attachment_writer.go b/pkg/attachment_writer.go index 925e7a5..425e841 100644 --- a/pkg/attachment_writer.go +++ b/pkg/attachment_writer.go @@ -43,12 +43,8 @@ func NewAttachmentWriter(writer io.Writer, writeGroup *errgroup.Group, formatTyp } } -// TODO - Maybe merge to Attachment -type WritableAttachment struct { -} - // AddAttachments adds the properties of the attachment (properties.Attachment). -func (attachmentWriter *AttachmentWriter) Add(attachments ...*WritableAttachment) { +func (attachmentWriter *AttachmentWriter) AddAttachments(attachments ...*AttachmentWriter) { attachmentWriter.PropertyContextWriter.AddProperties(attachments...) } diff --git a/pkg/block_writer.go b/pkg/block_writer.go index e72105a..8226305 100644 --- a/pkg/block_writer.go +++ b/pkg/block_writer.go @@ -1,3 +1,19 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package pst import ( diff --git a/pkg/folder_writer.go b/pkg/folder_writer.go index 9c13e43..51f66fa 100644 --- a/pkg/folder_writer.go +++ b/pkg/folder_writer.go @@ -17,39 +17,43 @@ package pst import ( - "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" "io" ) -// FolderWriter represents a writer for folders. +// FolderWriter represents a writer per folder. type FolderWriter struct { // Writer represents the io.Writer to write to. Writer io.Writer // FormatType represents the FormatType used while writing. FormatType FormatType - // FolderWriteChannel represents the Go channel for writing sub-folders. - FolderWriteChannel chan *Folder - // FolderWriteCallback represents the callback which is called after writing a folder. - FolderWriteCallback chan int64 - // FolderTableContextWriter writes the pst.TableContext of the pst.Folder. - // A TableContext has identifiers for finding other folders. - FolderTableContextWriter *TableContextWriter + + // Identifier represents the identifier of this folder. + // This identifier is used to find the folder in the B-Tree. + Identifier Identifier // PropertyContextWriter represents the writer for properties of this folder (see properties.Folder). PropertyContextWriter *PropertyContextWriter + // FolderWriteCallbackChannel TODO + FolderWriteCallbackChannel chan int64 + + // SubFoldersWriteChannel represents the Go channel for writing sub-folders. + SubFoldersWriteChannel chan *FolderWriter + // SubFoldersWriteCallbackChannel represents the callback which is called after writing a sub-folder. + SubFoldersWriteCallbackChannel chan SubFolderWriteResponse + // SubFoldersTableContextWriter represents the sub-folders TableContextWriter of this folder. + // Contains references to sub-folders (Identifier). + SubFoldersTableContextWriter *TableContextWriter + // MessageWriter represents the writer for messages. MessageWriter *MessageWriter // MessageWriteCallbackChannel represents the callback which is called after a message has been written. // The message is then added to the MessageTableContextWriter of this folder. MessageWriteCallbackChannel chan Identifier - // MessageTableContextWriter represents the message TableContext of the folder (identifiers for messages in the B-Tree). - // Property ID 26610 contains the message property identifier. + // MessageTableContextWriter represents the message TableContextWriter of the folder. + // Contains references to messages (Identifier). MessageTableContextWriter *TableContextWriter - // Identifier represents the identifier of this folder. - // The identifier is used to find this folder in the B-Tree. - Identifier Identifier } // NewFolderWriter creates a new FolderWriter. @@ -60,17 +64,20 @@ func NewFolderWriter(writer io.Writer, writeGroup *errgroup.Group, formatType Fo // Adds the message identifiers to the message TableContext of the folder (located at folderIdentifier + 12) messageWriteCallback := make(chan int64) + // TODO - folderIdentifier + 12? + //subFoldersTableContext := NewTableContextWriter(identifier) + // Create the folder writer. folderWriter := &FolderWriter{ - Writer: writer, - FormatType: formatType, - FolderWriteChannel: make(chan *Folder), - FolderWriteCallback: folderWriteCallback, - MessageWriter: NewMessageWriter(writer, writeGroup, messageWriteCallback, formatType), - FolderTableContextWriter: NewTableContextWriter(writer, writeGroup, formatType), - MessageTableContextWriter: NewTableContextWriter(writer, writeGroup, formatType), - PropertyContextWriter: NewPropertyContextWriter(writer, writeGroup, propertyWriteCallback, formatType, BTreeTypeBlock), - Identifier: folderIdentifier, + Writer: writer, + FormatType: formatType, + FolderWriteChannel: make(chan *Folder), + FolderWriteCallbackChannel: folderWriteCallback, + MessageWriter: NewMessageWriter(writer, writeGroup, messageWriteCallback, formatType), + FolderTableContextWriter: NewTableContextWriter(writer, writeGroup, formatType), + MessageTableContextWriter: NewTableContextWriter(writer, writeGroup, formatType), + PropertyContextWriter: NewPropertyContextWriter(writer, writeGroup, propertyWriteCallback, formatType, BTreeTypeBlock), + Identifier: folderIdentifier, } // Start channel for writing folders. @@ -80,42 +87,49 @@ func NewFolderWriter(writer io.Writer, writeGroup *errgroup.Group, formatType Fo return folderWriter, nil } -// SetIdentifier sets the identifier of the folder. -// This is mainly used for the pst.IdentifierRootFolder. -// Usually the identifier is automatically set by NewFolderWriter. -func (folderWriter *FolderWriter) SetIdentifier(identifier Identifier) { - folderWriter.Identifier = identifier +// SubFolderWriteResponse represents a Go channel response for when a sub-folder is written. +type SubFolderWriteResponse struct { + // Identifier represents the Identifier of the written folder. + Identifier Identifier + // Written represents the written byte size of the folder. + Written int64 } -// Add adds the folder or message to this folder. -func (folderWriter *FolderWriter) Add(protoMessages ...proto.Message) error { - for _, protoMessage := range protoMessages { - switch writableProperties := protoMessage.(type) { - case *properties.Folder: - // Add a folder. - folderWriter.FolderTableContextWriter.Add(writableProperties) - case *properties.Message: - // Add a message. - folderWriter.MessageTableContextWriter.Add(writableProperties) - default: - return eris.New("unsupported properties passed to Add") - } +// AddSubFolders adds the FolderWriter to the write queue. +// See StartSubFoldersWriteCallbackChannel. +func (folderWriter *FolderWriter) AddSubFolders(subFolders ...*FolderWriter) { + for _, subFolder := range subFolders { + folderWriter.SubFoldersWriteChannel <- subFolder } +} - return nil +// StartSubFoldersWriteCallbackChannel listens for written sub-folders. +// Adds the sub-folder Identifier to the SubFoldersTableContextWriter. +func (folderWriter *FolderWriter) StartSubFoldersWriteCallbackChannel() { + for subFolderWriteResponse := range folderWriter.SubFoldersWriteCallbackChannel { + folderWriter.SubFoldersTableContextWriter.AddIdentifier(subFolderWriteResponse.Identifier) + } } -// AddFolders adds the Folder to the write queue. -func (folderWriter *FolderWriter) AddFolders(folders ...*Folder) { - for _, folder := range folders { - folderWriter.FolderWriteChannel <- folder +// AddMessages the messages to the MessageWriter write queue of this folder. +// See StartMessageWriteCallbackChannel. +func (folderWriter *FolderWriter) AddMessages(messages ...proto.Message) { + folderWriter.MessageWriter.AddMessages(folderWriter.Identifier, messages...) +} + +// StartMessageWriteCallbackChannel listens for written messages. +// Adds the message Identifier to the MessageTableContextWriter. +func (folderWriter *FolderWriter) StartMessageWriteCallbackChannel() { + for messageIdentifier := range folderWriter.MessageWriteCallbackChannel { + folderWriter.MessageTableContextWriter.AddIdentifier(messageIdentifier) } } -// AddMessages adds a message to the MessageWriter, picked up by Goroutines. -func (folderWriter *FolderWriter) AddMessages(messages ...*MessageWriter) { - folderWriter.MessageWriter.Add(messages...) - folderWriter.UpdateTableContext(messages) +// SetIdentifier sets the identifier of the folder. +// This is mainly used for the pst.IdentifierRootFolder. +// Usually the identifier is automatically set by NewFolderWriter. +func (folderWriter *FolderWriter) SetIdentifier(identifier Identifier) { + folderWriter.Identifier = identifier } // UpdateTableContext updates the TableContext of the folder to reference the message identifiers. @@ -125,17 +139,17 @@ func (folderWriter *FolderWriter) UpdateTableContext(messages ...proto.Message) // StartFolderWriteChannel listens for sub-folders to write. // The called is responsible for starting the write channel. -func (folderWriter *FolderWriter) StartFolderWriteChannel(writeGroup *errgroup.Group) { - for receivedFolder := range folderWriter.FolderWriteChannel { - // Listen for folders to write. - writeGroup.Go(func() error { - // Add folder to TableContextWriter write queue. - folderWriter.TableContextWriter.AddFolders(receivedFolder) - - return nil - }) - } -} +//func (folderWriter *FolderWriter) StartFolderWriteChannel(writeGroup *errgroup.Group) { +// for receivedFolder := range folderWriter.FolderWriteChannel { +// // Listen for folders to write. +// writeGroup.Go(func() error { +// // Add folder to TableContextWriter write queue. +// folderWriter.TableContextWriter.AddFolders(receivedFolder) +// +// return nil +// }) +// } +//} // WriteTo writes the folder containing messages. // Returns the amount of bytes written to the output buffer. diff --git a/pkg/message.go b/pkg/message.go index 99449b0..62b486b 100644 --- a/pkg/message.go +++ b/pkg/message.go @@ -87,7 +87,7 @@ func NewMessage(file *File, identifier Identifier, localDescriptors []LocalDescr // GetMessageTableContext returns the message table context of this folder which contains references to all messages. // Note this only returns the identifier of each message. -func (folder *Folder) GetMessageTableContext() (TableContext, error) { +func (folder *Folder) GetMessageTableContext(file *File) (TableContext, error) { emailsIdentifier := folder.Identifier + 12 emailsNode, err := folder.File.GetNodeBTreeNode(emailsIdentifier) @@ -115,7 +115,7 @@ func (folder *Folder) GetMessageTableContext() (TableContext, error) { } // 26610 is a message property HNID. - tableContext, err := folder.File.GetTableContext(emailsHeapOnNode, localDescriptors, 26610) + tableContext, err := file.GetTableContext(emailsHeapOnNode, localDescriptors, 26610) if err != nil { return TableContext{}, eris.Wrap(err, "failed to get table context") diff --git a/pkg/message_writer.go b/pkg/message_writer.go index 8399a6e..5b78bfc 100644 --- a/pkg/message_writer.go +++ b/pkg/message_writer.go @@ -23,48 +23,55 @@ import ( "io" ) -// MessageWriter represents a message that can be written to a PST file. +// MessageWriter represents a writer for messages. type MessageWriter struct { // Writer represents the io.Writer used while writing. - Writer io.Writer + Writer io.WriteSeeker + // WriteGroup represents the writers running in Goroutines. + WriteGroup *errgroup.Group // FormatType represents the FormatType used while writing. FormatType FormatType + // MessageWriteChannel represents the Go channel used to process writing messages. + MessageWriteChannel chan *WritableMessage + // MessageWriteCallback represents the callback called for each written message. + MessageWriteCallback chan int64 // AttachmentWriter represents a writer for attachments. AttachmentWriter *AttachmentWriter // PropertyContextWriter writes the pst.PropertyContext of a pst.Message. PropertyContextWriter *PropertyContextWriter - // MessageWriteChannel represents the Go channel used to process writing messages. - MessageWriteChannel chan *WritableMessage - // MessageWriteCallback represents the callback called for each written message. - MessageWriteCallback chan WriteCallbackResponse // Identifier represents the identifier of this message, which is used in the B-Tree. Identifier Identifier } // NewMessageWriter creates a new MessageWriter. -func NewMessageWriter(writer io.Writer, writeGroup *errgroup.Group, messageWriteCallback chan WriteCallbackResponse, formatType FormatType) *MessageWriter { - // propertyWriteCallbackChannel is used to wait for the PropertyContextWriter to be finished (in WriteTo). - propertyWriteCallbackChannel := make(chan WriteCallbackResponse) - +func NewMessageWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, messageWriteCallback chan int64, formatType FormatType) *MessageWriter { messageWriter := &MessageWriter{ Writer: writer, + WriteGroup: writeGroup, FormatType: formatType, AttachmentWriter: NewAttachmentWriter(writer, writeGroup, formatType), - PropertyContextWriter: NewPropertyContextWriter(writer, writeGroup, propertyWriteCallbackChannel, formatType, BTreeTypeBlock), + PropertyContextWriter: NewPropertyContextWriter(writer, writeGroup, formatType), MessageWriteCallback: messageWriteCallback, } - // Attached the folder. - messageWriter.Identifier = folderIdentifier + 12 - // Start the message write channel which processes writing messages. - go messageWriter.StartMessageWriteChannel(writeGroup) + messageWriter.StartMessageWriteChannel() return messageWriter } +// AddMessages adds the WritableMessage to the write queue. +func (messageWriter *MessageWriter) AddMessages(folderIdentifier Identifier, messages ...proto.Message) { + // TODO - identifier = folderIdentifier + 12 + for _, message := range messages { + messageWriter.MessageWriteChannel <- message + } +} + // StartMessageWriteChannel receives messages to write. -func (messageWriter *MessageWriter) StartMessageWriteChannel(writeGroup *errgroup.Group) { +func (messageWriter *MessageWriter) StartMessageWriteChannel() { + messageWriter.WriteGroup + // The caller already starts a Goroutine. for receivedMessage := range messageWriter.MessageWriteChannel { writeGroup.Go(func() error { @@ -83,6 +90,11 @@ func (messageWriter *MessageWriter) StartMessageWriteChannel(writeGroup *errgrou } } +// AddAttachments adds AttachmentWriter to the write queue. +func (messageWriter *MessageWriter) AddAttachments(attachments ...*AttachmentWriter) { + messageWriter.AttachmentWriter.AddAttachments(attachments...) +} + // WritableMessage represents a writable message. // TODO - Maybe merge to Message. type WritableMessage struct { @@ -90,18 +102,6 @@ type WritableMessage struct { Properties proto.Message } -// Add adds the WritableMessage to the write queue. -func (messageWriter *MessageWriter) Add(messages ...*WritableMessage) { - for _, message := range messages { - messageWriter.MessageWriteChannel <- message - } -} - -// AddAttachments adds WritableAttachment to the write queue. -func (messageWriter *MessageWriter) AddAttachments(attachments ...*WritableAttachment) { - messageWriter.AttachmentWriter.Add(attachments...) -} - func (messageWriter *MessageWriter) UpdateIdentifier() error { identifier, err := NewIdentifier(messageWriter.FormatType) diff --git a/pkg/name_to_id_map_writer.go b/pkg/name_to_id_map_writer.go index f2d8f32..cd6ca3a 100644 --- a/pkg/name_to_id_map_writer.go +++ b/pkg/name_to_id_map_writer.go @@ -1,3 +1,19 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package pst import "io" diff --git a/pkg/property.go b/pkg/property.go index 4dc0a9a..aee6872 100644 --- a/pkg/property.go +++ b/pkg/property.go @@ -31,7 +31,7 @@ type Property struct { // <= 8 bytes for the Table Context. // <= 4 bytes for the Property Context. // Other values will use the HNID. - Value bytes.Buffer + Value *bytes.Buffer } // WriteTo writes the byte representation of the Property. diff --git a/pkg/property_context_writer.go b/pkg/property_context_writer.go index f03f871..3393bc8 100644 --- a/pkg/property_context_writer.go +++ b/pkg/property_context_writer.go @@ -20,42 +20,38 @@ import ( "bytes" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" - "google.golang.org/protobuf/proto" "io" ) // PropertyContextWriter represents a writer for a pst.PropertyContext. type PropertyContextWriter struct { - // Writer represents the io.Writer used when writing. - Writer io.Writer - // FormatType represents the FormatType used while writing. - FormatType FormatType - // WriteGroup represents Goroutines running writers. - WriteGroup *errgroup.Group + // StreamWriter represents the writer for the PropertyContextWriter. + StreamWriter *StreamWriter // BTreeOnHeapWriter represents the BTreeOnHeapWriter. BTreeOnHeapWriter *BTreeOnHeapWriter // PropertyWriter represents the PropertyWriter. PropertyWriter *PropertyWriter // PropertyWriteCallbackChannel represents the callback channel for writable properties. + // TODO - Move to PropertyWriter? PropertyWriteCallbackChannel chan int64 // LocalDescriptorsWriter represents the LocalDescriptorsWriter. LocalDescriptorsWriter *LocalDescriptorsWriter } // NewPropertyContextWriter creates a new PropertyContextWriter. -func NewPropertyContextWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType) *PropertyContextWriter { +func NewPropertyContextWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, formatType FormatType) *PropertyContextWriter { + streamWriter := NewStreamWriter(writer, writeGroup) + heapOnNodeWriter := NewHeapOnNodeWriter(SignatureTypePropertyContext) btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) // propertyWriteCallbackChannel returns the written byte size, used to wait for properties to be written. propertyWriteCallbackChannel := make(chan int64) // propertyWriter starts a Go channel for writing properties. - propertyWriter := NewPropertyWriter(writer, writeGroup, propertyWriteCallbackChannel, formatType) - localDescriptorsWriter := NewLocalDescriptorsWriter(writer, writeGroup, formatType) + propertyWriter := NewPropertyWriter(writer, writeGroup, formatType) + localDescriptorsWriter := NewLocalDescriptorsWriter(writer, writeGroup, formatType, BTreeTypeBlock) propertyContextWriter := &PropertyContextWriter{ - Writer: writer, - FormatType: formatType, - WriteGroup: writeGroup, + StreamWriter: streamWriter, BTreeOnHeapWriter: btreeOnHeapWriter, PropertyWriter: propertyWriter, PropertyWriteCallbackChannel: propertyWriteCallbackChannel, @@ -65,10 +61,10 @@ func NewPropertyContextWriter(writer io.Writer, writeGroup *errgroup.Group, form return propertyContextWriter } -// Add adds the properties (properties.Message, properties.Attachment, etc.) to the write queue. -// Writable properties (Property) are returned to the PropertyWriteCallbackChannel. -func (propertyContextWriter *PropertyContextWriter) Add(properties ...proto.Message) { - propertyContextWriter.PropertyWriter.Add(properties...) +// AddProperties adds the properties (properties.Message, properties.Attachment, etc.) to the write queue. +// Sends WritableProperty to StreamWriter and returns []Property (see PropertyWriteCallbackChannel). +func (propertyContextWriter *PropertyContextWriter) AddProperties(properties ...*WritableProperty) { + propertyContextWriter.PropertyWriter.AddProperties(properties...) } // WriteTo writes the pst.PropertyContext. diff --git a/pkg/property_writer.go b/pkg/property_writer.go index a51711c..fe74692 100644 --- a/pkg/property_writer.go +++ b/pkg/property_writer.go @@ -1,3 +1,19 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package pst import ( @@ -18,14 +34,8 @@ import ( // PropertyWriter represents a writer for properties. // The PropertyContext should be used as a higher structure which manages this PropertyWriter. type PropertyWriter struct { - // Writer represents the concurrent writer used while writing. - Writer io.Writer - // WriteGroup represents the writers running in Goroutines. - WriteGroup *errgroup.Group - // PropertyWriteChannel represents the Go channel for writing properties. - PropertyWriteChannel chan proto.Message - // PropertyWriteCallbackChannel is called when a property has been written. - PropertyWriteCallbackChannel chan Property + // StreamWriter is used to send write requests to a write channel and receive the results via a callback channel. + StreamWriter *StreamWriter // FormatType represents the FormatType used while writing. FormatType FormatType // PropertyCount represents the amount of properties this PropertyWriter will write. @@ -33,57 +43,92 @@ type PropertyWriter struct { } // NewPropertyWriter creates a new PropertyWriter. -// propertyWriteCallbackChannel is started by the caller. -func NewPropertyWriter(writer io.Writer, writeGroup *errgroup.Group, propertyWriteCallbackChannel chan Property, formatType FormatType) *PropertyWriter { +func NewPropertyWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, formatType FormatType) *PropertyWriter { propertyWriter := &PropertyWriter{ - Writer: writer, - WriteGroup: writeGroup, - PropertyWriteChannel: make(chan proto.Message), - PropertyWriteCallbackChannel: propertyWriteCallbackChannel, - FormatType: formatType, + FormatType: formatType, + PropertyCount: 0, } + streamWriter := NewStreamWriter(writer, writeGroup).WithTransform(propertyWriter.PropertyTransform) + + propertyWriter.StreamWriter = streamWriter + + // Start the stream writer. + streamWriter.StartWriteChannel() + // Start the property write channel. - go propertyWriter.StartPropertyWriteChannel() + propertyWriter.StartPropertyWriteChannel() return propertyWriter } -// Add sends the properties to the write queue, picked up by Goroutines. +// WritableProperty for the StreamWriter. +type WritableProperty struct { + Value proto.Message +} + +func (writableProperty *WritableProperty) WriteTo(writer io.Writer) (int64, error) { + +} + +// AddProperties sends the properties to the write queue, picked up by Goroutines. // Properties will be written to the PropertyWriteCallbackChannel (see StartPropertyWriteChannel). -func (propertyWriter *PropertyWriter) Add(properties ...proto.Message) { +func (propertyWriter *PropertyWriter) AddProperties(properties ...*WritableProperty) { for _, property := range properties { - propertyWriter.PropertyWriteChannel <- property + propertyWriter.StreamWriter.WriteChannel <- property propertyWriter.PropertyCount++ } } -// StartPropertyWriteChannel starts the Go channel for writing properties. -func (propertyWriter *PropertyWriter) StartPropertyWriteChannel() { - // The caller is already in a Goroutine. - for receivedProperties := range propertyWriter.PropertyWriteChannel { - propertyWriter.WriteGroup.Go(func() error { - // Create writable byte representation of the properties. - writableProperties, err := propertyWriter.GetProperties(receivedProperties) - - if err != nil { - return eris.Wrap(err, "failed to get writable properties") - } - - // Callback, the PropertyContext handles writing this to the correct place. - for _, writableProperty := range writableProperties { - propertyWriter.PropertyWriteCallbackChannel <- writableProperty - } +// PropertyTransform sends the byte representation of the properties to a write channel and returns the writable properties. +func (propertyWriter *PropertyWriter) PropertyTransform(receivedProperties ...StreamRequest) ([]StreamResponse, error) { + writableProperties, err := propertyWriter.GetProperties(receivedProperties...) - return nil - }) + if err != nil { + return nil, eris.Wrap(err, "failed to get writable properties") } + + return writableProperties, nil } +//// StartPropertyWriteChannel starts the Go channel for writing properties. +//func (propertyWriter *PropertyWriter) StartPropertyWriteChannel() error { +// propertyWriter.StreamWriter.WriteChannel <- +// +// // Create writable byte representation of the properties. +// writableProperties, err := propertyWriter.GetProperties(receivedProperties) +// +// if err != nil { +// return eris.Wrap(err, "failed to get writable properties") +// } +// +// +// propertyWriter.StreamWriter +// +// // The caller is already in a Goroutine. +// for receivedProperties := range propertyWriter.PropertyWriteChannel { +// propertyWriter.WriteGroup.Go(func() error { +// // Create writable byte representation of the properties. +// writableProperties, err := propertyWriter.GetProperties(receivedProperties) +// +// if err != nil { +// return eris.Wrap(err, "failed to get writable properties") +// } +// +// // Callback, the PropertyContext handles writing this to the correct place. +// for _, writableProperty := range writableProperties { +// propertyWriter.PropertyWriteCallbackChannel <- writableProperty +// } +// +// return nil +// }) +// } +//} + // GetProperties returns the writable properties. // This code is a hot-path, do not use reflection here. // Instead, we use code-generated setters thanks to https://github.com/tinylib/msgp (deserialize into structs). -func (propertyWriter *PropertyWriter) GetProperties(protoMessage proto.Message) ([]Property, error) { +func (propertyWriter *PropertyWriter) GetProperties(protoMessage ...StreamRequest) ([]StreamResponse, error) { var totalSize int totalSize += int(GetIdentifierSize(propertyWriter.FormatType)) diff --git a/pkg/stream_writer.go b/pkg/stream_writer.go new file mode 100644 index 0000000..f81186d --- /dev/null +++ b/pkg/stream_writer.go @@ -0,0 +1,134 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package pst + +import ( + "github.com/rotisserie/eris" + "golang.org/x/sync/errgroup" + "io" + "sync" +) + +// StreamWriter uses a write channel and callback channel. +// StreamWriter is used by all writers and is generic. +type StreamWriter struct { + // Writer used by the WriteChannel. + Writer io.WriteSeeker + // WriteGroup is used to start the WriteChannel. + WriteGroup *errgroup.Group + // WriteChannel is the channel for writing. + WriteChannel chan StreamRequest + // CallbackChannel is where a StreamResponse is sent. + // Transform may be used to return a value other than the default, which is bytes written (int64). + CallbackChannel chan StreamResponse + // TransformFunc transforms the request to a response. + // For example, I can transform a byte representation (request) to a struct (response). + TransformFunc TransformFunc +} + +// TransformFunc is used by Transform to convert a StreamRequest to a StreamResponse. +// See WithTransform of a StreamWriter. +type TransformFunc func(streamRequest StreamRequest) (StreamResponse, error) + +// NewStreamWriter creates a new StreamWriter. +// The caller must start the WriteChannel of the returned StreamWriter with StartWriteChannel. +// See WithTransform. +func NewStreamWriter(writer io.WriteSeeker, writeGroup *errgroup.Group) *StreamWriter { + writeChannel := make(chan StreamRequest) + callbackChannel := make(chan StreamResponse) + + return &StreamWriter{ + Writer: writer, + WriteGroup: writeGroup, + WriteChannel: writeChannel, + CallbackChannel: callbackChannel, + } +} + +// WithTransform allows transforming the StreamRequest to a StreamResponse for the callback. +func (streamWriter *StreamWriter) WithTransform(transformFunc TransformFunc) *StreamWriter { + streamWriter.TransformFunc = transformFunc + + return streamWriter +} + +// StreamRequest represents something to write (see StreamResponse). +type StreamRequest interface { + io.WriterTo +} + +// StreamResponse represents the write response which is sent to a callback. +type StreamResponse struct { + // Value represents the result of the write operation. + // It can be transformed with Transform (you will never be a real woman). + // By default, this is int64. + Value any +} + +// NewStreamResponse creates a new StreamResponse. +func NewStreamResponse(value any) StreamResponse { + return StreamResponse{Value: value} +} + +// Send the StreamRequest to the WriteChannel. +func (streamWriter *StreamWriter) Send(streamRequests ...StreamRequest) { + for _, streamRequest := range streamRequests { + streamWriter.WriteChannel <- streamRequest + } +} + +// StartWriteChannel starts the WriteChannel. +func (streamWriter *StreamWriter) StartWriteChannel() { + streamWriter.WriteGroup.Go(func() error { + // Wait for writes to complete. + waitGroup := sync.WaitGroup{} + + // Launch writes all at once. + for streamRequest := range streamWriter.WriteChannel { + waitGroup.Add(1) + + streamWriter.WriteGroup.Go(func() error { + written, err := streamRequest.WriteTo(streamWriter.Writer) + + if err != nil { + return eris.Wrap(err, "failed to write to writer") + } + + // Callback, by default sends the amount of bytes written as int64. + // Optionally transforms (via TransformFunc) to a different callback value. + if streamWriter.TransformFunc != nil { + transformedRequest, err := streamWriter.TransformFunc(streamRequest) + + if err != nil { + return eris.Wrap(err, "failed during transform of request for callback") + } + + streamWriter.CallbackChannel <- transformedRequest + } else { + streamWriter.CallbackChannel <- NewStreamResponse(written) + } + + return nil + }) + } + + // Collect results. + waitGroup.Wait() + + return nil + }) +} diff --git a/pkg/table_context_writer.go b/pkg/table_context_writer.go index 83e5d53..7f24a66 100644 --- a/pkg/table_context_writer.go +++ b/pkg/table_context_writer.go @@ -50,7 +50,7 @@ type TableContextWriter struct { } // NewTableContextWriter creates a new TableContextWriter. -func NewTableContextWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, formatType FormatType) (*TableContextWriter, error) { +func NewTableContextWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, parentIdentifier Identifier, formatType FormatType) (*TableContextWriter, error) { // Create PropertyWriter (see StartChannels). propertyWriteCallbackChannel := make(chan Property) propertyWriter := NewPropertyWriter(writer, writeGroup, propertyWriteCallbackChannel, formatType) @@ -77,6 +77,17 @@ func NewTableContextWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, fo return tableContextWriter, nil } +// AddIdentifier adds a reference to a folder or message to the TableContext. +func (tableContextWriter *TableContextWriter) AddIdentifier(identifier Identifier) { + identifierProperty := Property{ + Identifier: 26610, // 26610 is always used for identifiers TODO reference actual PropertyName + Type: PropertyTypeInteger32, + Value: bytes.NewBuffer(identifier.Bytes(tableContextWriter.FormatType)), + } + + tableContextWriter.PropertyWriteCallbackChannel <- identifierProperty +} + // WriteBTreeOnHeap writes the BTreeOnHeap of the TableContext. func (tableContextWriter *TableContextWriter) WriteBTreeOnHeap() error { heapOnNodeWriter := NewHeapOnNodeWriter(SignatureTypeTableContext) @@ -131,7 +142,13 @@ type RowMatrixOffsets struct { // StartHeaderWriteChannel writes the header. // Waits for HeaderWriteChannel to write ColumnDescriptor. -func (tableContextWriter *TableContextWriter) StartHeaderWriteChannel() error { +func (tableContextWriter *TableContextWriter) StartHeaderWriteChannel() { + tableContextWriter.WriteGroup.Go(func() error { + // TODO - Move everything here. + + return nil + }) + // Skip past the header until we have received all Column Descriptors. if _, err := tableContextWriter.Writer.Seek(22, io.SeekCurrent); err != nil { return eris.Wrap(err, "failed to seek") diff --git a/pkg/writer.go b/pkg/writer.go index f4f5d3f..a20cb7c 100644 --- a/pkg/writer.go +++ b/pkg/writer.go @@ -40,6 +40,11 @@ type Writer struct { // NewWriter returns a writer for PST files. func NewWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, writeOptions WriteOptions) (*Writer, error) { + // TODO - Make stateless + + // StreamWriter is a stateless generic writer which writes in Goroutines and returns callback values. + streamWriter := NewStreamWriter(writer, writeGroup) + folderWriteCallback := make(chan int64) folderWriter, err := NewFolderWriter(writer, writeGroup, writeOptions.FormatType, folderWriteCallback) @@ -74,12 +79,25 @@ func NewWriteOptions(formatType FormatType, encryptionType EncryptionType) Write } } -// AddFolders adds the folders to the FolderWriter write queue. -// See AddRootFolder. -func (pstWriter *Writer) AddFolders(folders ...*Folder) { - pstWriter.FolderWriter.AddFolders(folders...) +// GetRootFolder returns the root folder. +// Automatically written to the FolderWriteChannel. +func (pstWriter *Writer) GetRootFolder() *FolderWriter { + +} + +// AddSubFolders adds the sub-folders to the FolderWriter write queue. +func (pstWriter *Writer) AddSubFolders(subFolders ...*FolderWriter) { + pstWriter.FolderWriter.AddSubFolders(subFolders...) } +//func (pstWriter *Writer) AddSubFolders(parentFolder Identifier, subFolders ...*Folder) { +// // TODO - Add to FolderTableContext. +// // TODO - Write folder. +//} + +// ErrSizeLimit is an edge case for writing PST files >= 50GB. +var ErrSizeLimit = eris.New("maximum PST file size (50GB) reached, overflowing") + // WriteTo writes the PST file. // WriteTo follows the path to root folder (fixed pst.Identifier, pst.IdentifierRootFolder) then to the pst.TableContext of the root folder. // Once there, we can get the child folders ([]pst.Identifier, see FolderWriter), each folder can contain messages (see MessageWriter). @@ -108,7 +126,14 @@ func (pstWriter *Writer) WriteTo(writer io.Writer) (int64, error) { // Wait for all folders to be written. // "Share memory by communicating; don't communicate by sharing memory." - for folderWrittenSize := range pstWriter.FolderWriter.FolderWriteCallback { + for folderWrittenSize := range pstWriter.FolderWriter.FolderWriteCallbackChannel { + // Handle edge case where the PST file is above 50GB, the limit for PST files. + // We just overflow. + if totalSize >= 5e+10 { + // TODO - Handle, pass callback channel to new output. + return 0, ErrSizeLimit + } + totalSize += folderWrittenSize } From 2eef7e5b41edbede785d5b2c9bebb3f9ec0ee49b Mon Sep 17 00:00:00 2001 From: Marten Mooij Date: Fri, 15 Sep 2023 22:27:51 +0200 Subject: [PATCH 11/12] StreamWriter should be done, needs to reflect everywhere. --- README.md | 20 +-- cmd/example-attachment.txt | 15 ++ cmd/writer.go | 127 +++++++++++++---- pkg/attachment_writer.go | 93 +++++++++--- pkg/folder_writer.go | 212 +++++++++++++++------------- pkg/message_writer.go | 144 +++++++++---------- pkg/property.go | 12 +- pkg/property_context_writer.go | 97 ++++++++----- pkg/property_writer.go | 250 +++++++++++++-------------------- pkg/stream_writer.go | 121 ++++++---------- pkg/table_context.go | 8 +- pkg/table_context_writer.go | 50 +++---- pkg/writer.go | 179 +++++++++++------------ 13 files changed, 716 insertions(+), 612 deletions(-) create mode 100644 cmd/example-attachment.txt diff --git a/README.md b/README.md index 7325518..8a22b39 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@
-

A library for reading PST files (written in Go/Golang)

+

A library for reading and writing PST files (written in Go/Golang)

@@ -30,14 +30,14 @@ The PFF (Personal Folder File) and OFF (Offline Folder File) format is used to store Microsoft Outlook e-mails, appointments and contacts. The PST (Personal Storage Table), OST (Offline Storage Table) and PAB (Personal Address Book) file format consist of the PFF format. +Created for [Go Forensics](https://goforensics.io/) by [Marten Mooij](#contact). + ## Usage ```bash $ go install github.com/mooijtech/go-pst/v6 ``` -See the [cmd/reader.go]() and [cmd/writer.go](): - ### Reader ```go @@ -185,7 +185,7 @@ func main() { ## License -This project is licensed under the [Apache License 2.0](). +This project is licensed under the [Apache License 2.0](https://github.com/mooijtech/go-pst/blob/master/LICENSE.txt). ## Documentation @@ -194,10 +194,14 @@ This project is licensed under the [Apache License 2.0](). ## Implementations -- [java-libpst](https://github.com/rjohnsondev/java-libpst) -- [pstreader](https://github.com/Jmcleodfoss/pstreader) - - Special thanks to [James McLeod](https://github.com/Jmcleodfoss) -- [libpff](https://github.com/libyal/libpff) +- [java-libpst](https://github.com/rjohnsondev/java-libpst) (Richard Johnson) + - Inspired me to write go-pst +- [pstreader](https://github.com/Jmcleodfoss/pstreader) (James McLeod) + - Kindly replied to my questions + - Inspired go-pst property generation +- [libpff](https://github.com/libyal/libpff) (Joachim Metz) + - Original Gangster + - Inspired java-libpst - [XstReader](https://github.com/Dijji/XstReader) - [PANhunt](https://github.com/Dionach/PANhunt/blob/master/pst.py) diff --git a/cmd/example-attachment.txt b/cmd/example-attachment.txt new file mode 100644 index 0000000..34dbf61 --- /dev/null +++ b/cmd/example-attachment.txt @@ -0,0 +1,15 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. \ No newline at end of file diff --git a/cmd/writer.go b/cmd/writer.go index e9878a8..d300d4e 100644 --- a/cmd/writer.go +++ b/cmd/writer.go @@ -18,15 +18,21 @@ package main import ( "context" + "crypto/rand" + "encoding/hex" "flag" "fmt" - "github.com/dustin/go-humanize" "github.com/mooijtech/concurrent-writer/concurrent" pst "github.com/mooijtech/go-pst/v6/pkg" + "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/pkg/errors" + "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" + "google.golang.org/protobuf/proto" "log/slog" "os" + "path/filepath" + "strings" "time" ) @@ -40,11 +46,23 @@ func main() { startTime := time.Now() + // Write PST file. + written, err := WritePSTFile(outputName) + + if err != nil { + panic(fmt.Sprintf("Failed to write PST file: %+v", err)) + } + + fmt.Printf("Wrote %d bytes in %s.", written, time.Since(startTime).String()) +} + +// WritePSTFile writes a PST file containing folders, messages and attachments. +func WritePSTFile(outputName string) (int64, error) { // Output PST file. outputFile, err := os.Create(outputName) if err != nil { - panic(fmt.Sprintf("Failed to create output file: %+v", err)) + return 0, eris.Wrap(err, "failed to create output file") } // 4KiB is the default I/O buffer size on Linux. @@ -58,7 +76,7 @@ func main() { encryptionType := pst.EncryptionTypePermute writeOptions := pst.NewWriteOptions(formatType, encryptionType) - // Write group for Goroutines. + // Write group for Goroutines (all writers run here). writeCancelContext, writeCancelFunc := context.WithCancel(context.Background()) writeGroup, _ := errgroup.WithContext(writeCancelContext) @@ -68,48 +86,109 @@ func main() { writer, err := pst.NewWriter(concurrentWriter, writeGroup, writeOptions) if err != nil { - panic(fmt.Sprintf("Failed to create writer: %+v", err)) + return 0, eris.Wrap(err, "failed to create writer") } - // Write folders. - rootFolder := writer.GetRootFolder() + // Let's write some folders with messages containing attachments. + rootFolder, err := writer.GetRootFolder() + if err != nil { + return 0, eris.Wrap(err, "failed to get root folder writer") + } + + // Callbacks are used to calculate the total size of the PST file. + // As soon as this becomes larger than 50GB, we overflow by creating a new PST file. + folderWriteCallback := make(chan int64) + + // Add sub-folders to the root folder. for i := 0; i < 3; i++ { - subFolderWriter := pst.NewFolderWriter() - //subFolder := pst.NewFolder(&properties.Folder{Name: fmt.Sprintf("Sub-folder #%d", i)}) + // Create folder writer. + folderWriter, err := pst.NewFolderWriter(concurrentWriter, writeGroup, formatType, folderWriteCallback, rootFolder.GetIdentifier()) - // Add messages + if err != nil { + return 0, eris.Wrap(err, "failed to create folder writer") + } + + // Add properties to the folder. + folderWriter.AddProperties(&properties.Folder{ + Name: fmt.Sprintf("Sub folder #%d", i), + // TODO - Extend from generate.go new output. + }) + + // Add messages to the folder. for i := 0; i < 6; i++ { - message := pst.NewMessageWriter() + // Create a message to write. + message, err := pst.NewMessageWriter(concurrentWriter, writeGroup, folderWriter.GetIdentifier(), formatType) + + if err != nil { + return 0, eris.Wrap(err, "failed to create message writer") + } + + // Add properties to the message. + message.AddProperties(&properties.Message{ + Subject: proto.String("[Go Forensics]: Goodbye, world!"), + From: proto.String("info@mooijtech.com"), + Body: proto.String("https://goforensics.io/"), + // See all other available properties. + }) + + // You can create many property types, for example, a contact: + message.AddProperties(&properties.Contact{ + GivenName: proto.String("Marten Mooij"), + }) + + // See the properties package for more message types. - // Add attachments + // Add attachments to the message. for i := 0; i < 9; i++ { - attachmentWriter := pst.NewAttachmentWriter() + attachmentWriter, err := pst.NewAttachmentWriter(concurrentWriter, writeGroup, formatType) + + if err != nil { + return 0, eris.Wrap(err, "failed to create attachment writer") + } + + // Set attachment input buffer. + if err := attachmentWriter.AddFile("example-attachment.txt"); err != nil { + return 0, eris.Wrap(err, "failed to add attachment to message") + } message.AddAttachments(attachmentWriter) } - subFolderWriter.AddMessages() + // Add the message to the folder. + folderWriter.AddMessages(message) } - rootFolder.AddSubFolders(subFolderWriter) + // Add sub-folder to the root folder. + rootFolder.AddSubFolders(folderWriter) } // See the documentation of WriteTo. - bytesWritten, err := writer.WriteTo(outputFile) + written, err := writer.WriteTo(outputFile) - if errors.Is(err, pst.ErrSizeLimit) { + if errors.Is(err, pst.ErrOverflow) { // Handle edge case where the PST file is >= 50GB. + // Redirect the channels to a new output file. + randomBytes := make([]byte, 8) - } else if err != nil { - panic(fmt.Sprintf("Failed to write PST file: %+v", err)) - } + if _, err := rand.Read(randomBytes); err != nil { + return 0, eris.Wrap(err, "failed to read random bytes from crypto/rand") + } - // Wait for writers to finish. - if err := writeGroup.Wait(); err != nil { - panic(fmt.Sprintf("Failed to write PST file: %+v", err)) + outputExtension := filepath.Ext(outputName) + outputNameWithoutExtension := strings.ReplaceAll(outputName, outputExtension, "") + newOutputName := fmt.Sprintf("%s-%s%s", outputNameWithoutExtension, hex.EncodeToString(randomBytes), outputExtension) + newOutputFile, err := os.Create(newOutputName) + + if err != nil { + return 0, eris.Wrap(err, "failed to create new output file for overflow") + } + + // Redirect output. + writer.OverflowTo(newOutputFile) + } else if err != nil { + return 0, eris.Wrap(err, "failed to write PST file") } - // humanize doesn't currently support Duration. - fmt.Printf("Done! Wrote %s in %s.", humanize.Bytes(uint64(bytesWritten)), humanize.Time(time.Now().Add(-time.Since(startTime)))) + return written, nil } diff --git a/pkg/attachment_writer.go b/pkg/attachment_writer.go index 425e841..8324a27 100644 --- a/pkg/attachment_writer.go +++ b/pkg/attachment_writer.go @@ -17,44 +17,103 @@ package pst import ( - "github.com/mooijtech/go-pst/v6/pkg/properties" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" + "google.golang.org/protobuf/proto" "io" ) // AttachmentWriter represents a writer for attachments. type AttachmentWriter struct { - // PropertyContextWriter represents the PropertyContextWriter. - PropertyContextWriter *PropertyContextWriter - // AttachmentWriteChannel represents the Go channel for writing attachments. - AttachmentWriteChannel chan *properties.Attachment + // streamWriter represents the Go channel for writing attachments. + streamWriter *StreamWriter + // propertyContextWriter represents the PropertyContextWriter. + propertyContextWriter *PropertyContextWriter + // attachmentWriteCallbackChannel is the callback for when attachments have been written. + attachmentWriteCallbackChannel chan int64 } // NewAttachmentWriter creates a new AttachmentWriter. -func NewAttachmentWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType) *AttachmentWriter { - propertyWriteCallbackChannel := make(chan WriteCallbackResponse) - propertyContextWriter := NewPropertyContextWriter(writer, writeGroup, propertyWriteCallbackChannel, formatType, BTreeTypeBlock) - attachmentWriteChannel := make(chan *properties.Attachment) - - return &AttachmentWriter{ - PropertyContextWriter: propertyContextWriter, - AttachmentWriteChannel: attachmentWriteChannel, +func NewAttachmentWriter(outputFile io.WriteSeeker, writeGroup *errgroup.Group, formatType FormatType) (*AttachmentWriter, error) { + // Stream writer used to write the attachments. + streamWriter := NewStreamWriter[io.WriterTo, int64](outputFile, writeGroup) + + // Property context writer. + propertyContextWriteCallback := make(chan int64) + propertyContextWriter, err := NewPropertyContextWriter(outputFile, writeGroup, propertyContextWriteCallback, formatType) + + if err != nil { + return nil, eris.Wrap(err, "failed to create property context writer") } + + // Attachment writer. + attachmentWriter := &AttachmentWriter{ + propertyContextWriter: propertyContextWriter, + streamWriter: streamWriter, + // TODO - attachmentWriteCallbackChannel: attachmentWriteCallbackChannel, + } + + // Start the stream writer for writing attachments. + streamWriter.StartWriteChannel() + // Send write responses to the parent callback so the total write size can be calculated. + // TODO - streamWriter.RegisterCallback(attachmentWriteCallbackChannel) + + return attachmentWriter, nil } -// AddAttachments adds the properties of the attachment (properties.Attachment). -func (attachmentWriter *AttachmentWriter) AddAttachments(attachments ...*AttachmentWriter) { - attachmentWriter.PropertyContextWriter.AddProperties(attachments...) +// AddFile adds the properties of the attachment (properties.Attachment). +func (attachmentWriter *AttachmentWriter) AddFile(names ...string) error { + //// Send to the write channel. + //for _, name := range names { + // attachmentWriter.streamWriter.Send(NewWritableAttachment(name)) + // + // // TODO - Use AttachMethods :) + // //attachmentWriter.StreamWriter.Send(attachment) + //} + + return nil +} + +// AddProperties add the properties of the attachment to write. +func (attachmentWriter *AttachmentWriter) AddProperties(protoMessages ...proto.Message) error { + for _, protoMessage := range protoMessages { + if err := attachmentWriter.propertyContextWriter.AddProperties(protoMessage); err != nil { + return eris.Wrap(err, "failed to add properties") + } + } + + return nil } // WriteTo writes the attachment. func (attachmentWriter *AttachmentWriter) WriteTo(writer io.Writer) (int64, error) { - propertyContextWrittenSize, err := attachmentWriter.PropertyContextWriter.WriteTo(writer) + propertyContextWrittenSize, err := attachmentWriter.propertyContextWriter.WriteTo(writer) if err != nil { return 0, eris.Wrap(err, "failed to write Table Context") } + // Wait for attachments to be written. + var attachmentWrittenSize int64 + + for streamResponse := range attachmentWriter.streamWriter.callbackChannel { + attachmentWrittenSize += streamResponse + } + + // TODO - All writers need to wait for the callback channel. + // TODO - Pass this up again? + return propertyContextWrittenSize, nil } + +// Wait for the attachments to be written. +// Blocking call. +func (attachmentWriter *AttachmentWriter) Wait() int64 { + var totalSize int64 + + for streamResponse := range attachmentWriter.streamWriter.callbackChannel { + totalSize += streamResponse + } + + return totalSize +} diff --git a/pkg/folder_writer.go b/pkg/folder_writer.go index 51f66fa..c1d95e1 100644 --- a/pkg/folder_writer.go +++ b/pkg/folder_writer.go @@ -23,72 +23,108 @@ import ( "io" ) -// FolderWriter represents a writer per folder. +// FolderWriter represents a writer for folders. type FolderWriter struct { - // Writer represents the io.Writer to write to. - Writer io.Writer - // FormatType represents the FormatType used while writing. - FormatType FormatType - - // Identifier represents the identifier of this folder. + // streamWriter represents the Go channel for writing sub-folders. + streamWriter *StreamWriter + // folderWriteCallback sends the write response to the parent to eventually calculate the total size. + folderWriteCallback chan int64 + // formatType represents the FormatType used while writing. + formatType FormatType + // identifier represents the identifier of this folder. // This identifier is used to find the folder in the B-Tree. - Identifier Identifier - // PropertyContextWriter represents the writer for properties of this folder (see properties.Folder). - PropertyContextWriter *PropertyContextWriter - // FolderWriteCallbackChannel TODO - FolderWriteCallbackChannel chan int64 - - // SubFoldersWriteChannel represents the Go channel for writing sub-folders. - SubFoldersWriteChannel chan *FolderWriter - // SubFoldersWriteCallbackChannel represents the callback which is called after writing a sub-folder. - SubFoldersWriteCallbackChannel chan SubFolderWriteResponse - // SubFoldersTableContextWriter represents the sub-folders TableContextWriter of this folder. + identifier Identifier + // parentFolderIdentifier represents the identifier of the parent folder. + parentFolderIdentifier Identifier + // propertyContextWriter represents the writer for properties of this folder (see properties.Folder). + propertyContextWriter *PropertyContextWriter + // subFoldersTableContextWriter represents the sub-folders TableContextWriter of this folder. // Contains references to sub-folders (Identifier). - SubFoldersTableContextWriter *TableContextWriter - - // MessageWriter represents the writer for messages. - MessageWriter *MessageWriter - // MessageWriteCallbackChannel represents the callback which is called after a message has been written. - // The message is then added to the MessageTableContextWriter of this folder. - MessageWriteCallbackChannel chan Identifier - // MessageTableContextWriter represents the message TableContextWriter of the folder. + subFoldersTableContextWriter *TableContextWriter + // messageWriter represents the writer for messages. + // Callback is used to add the message identifiers to the MessageTableContextWriter of this folder. + messageWriter *MessageWriter + // messageTableContextWriter represents the message TableContextWriter of the folder. // Contains references to messages (Identifier). - MessageTableContextWriter *TableContextWriter + messageTableContextWriter *TableContextWriter } // NewFolderWriter creates a new FolderWriter. // folderWriteCallback is used by the caller to calculate the total PST file size written. -func NewFolderWriter(writer io.Writer, writeGroup *errgroup.Group, formatType FormatType, folderWriteCallback chan int64) (*FolderWriter, error) { - // propertyWriteCallback is started (StartFolderWriteChannel) below to send the writable properties to the PropertyContext. - propertyWriteCallback := make(chan int64) - // Adds the message identifiers to the message TableContext of the folder (located at folderIdentifier + 12) - messageWriteCallback := make(chan int64) +func NewFolderWriter(outputFile io.WriteSeeker, writeGroup *errgroup.Group, formatType FormatType, folderWriteCallback chan int64, parentFolderIdentifier Identifier) (*FolderWriter, error) { + // The sub-folders Table Context (containing identifiers) can be found at parent identifier + 12. + // References: + // - https://github.com/mooijtech/go-pst/blob/main/docs/README.md#locating-sub-folder-object-nodes + // - https://github.com/mooijtech/go-pst/blob/main/docs/README.md#adding-a-sub-folder-object + subFoldersTableContextWriter, err := NewTableContextWriter(outputFile, writeGroup, parentFolderIdentifier+12, formatType) + + if err != nil { + return nil, eris.Wrap(err, "failed to create table context writer") + } + + // Folder identifier for the B-Tree. + folderIdentifier, err := NewIdentifier(formatType) + + if err != nil { + return nil, eris.Wrap(err, "failed to create identifier") + } + + // Message writer (adds messages to this folder). + messageWriter, err := NewMessageWriter(outputFile, writeGroup, folderIdentifier, formatType) + + if err != nil { + return nil, eris.Wrap(err, "failed to create message writer") + } + + // Table Context which contains identifiers to the messages of this folder. + messageTableContextWriter, err := NewTableContextWriter(outputFile, writeGroup, formatType) + + if err != nil { + return nil, eris.Wrap(err, "failed to create new table context writer") + } + + // TODO - Maybe better as one New + messageTableContextWriter.WithParentIdentifier(parentFolderIdentifier) + + // Writer for properties (see properties.Folder). + propertyContextWriteCallback := make(chan int64) + propertyContextWriter, err := NewPropertyContextWriter(outputFile, writeGroup, propertyContextWriteCallback, formatType) - // TODO - folderIdentifier + 12? - //subFoldersTableContext := NewTableContextWriter(identifier) + if err != nil { + return nil, eris.Wrap(err, "failed to create Property Context writer") + } + + // Handles writing folders (and sub-folders). + streamWriter := NewStreamWriter[*FolderWriter, FolderWriteResponse](outputFile, writeGroup) // Create the folder writer. folderWriter := &FolderWriter{ - Writer: writer, - FormatType: formatType, - FolderWriteChannel: make(chan *Folder), - FolderWriteCallbackChannel: folderWriteCallback, - MessageWriter: NewMessageWriter(writer, writeGroup, messageWriteCallback, formatType), - FolderTableContextWriter: NewTableContextWriter(writer, writeGroup, formatType), - MessageTableContextWriter: NewTableContextWriter(writer, writeGroup, formatType), - PropertyContextWriter: NewPropertyContextWriter(writer, writeGroup, propertyWriteCallback, formatType, BTreeTypeBlock), - Identifier: folderIdentifier, + streamWriter: streamWriter, + folderWriteCallback: folderWriteCallback, + formatType: formatType, + identifier: folderIdentifier, + parentFolderIdentifier: parentFolderIdentifier, + propertyContextWriter: propertyContextWriter, + subFoldersTableContextWriter: subFoldersTableContextWriter, + messageWriter: messageWriter, + messageTableContextWriter: messageTableContextWriter, } - // Start channel for writing folders. - // The MessageWriter starts a channel for writing messages. - go folderWriter.StartFolderWriteChannel(writeGroup) + // Start the stream writer for writing folders. + streamWriter.StartWriteChannel() + // Handle write responses. + //streamWriter.RegisterCallback(folderWriter.HandleFolderWriteCallback()) return folderWriter, nil } -// SubFolderWriteResponse represents a Go channel response for when a sub-folder is written. -type SubFolderWriteResponse struct { +// NewRootFolderWriter creates a new FolderWriter with Identifier 0. +func NewRootFolderWriter(outputFile io.WriteSeeker, writeGroup *errgroup.Group, formatType FormatType, folderWriteCallback chan int64) (*FolderWriter, error) { + return NewFolderWriter(outputFile, writeGroup, formatType, folderWriteCallback, Identifier(0)) +} + +// FolderWriteResponse represents a Go channel response for when a sub-folder is written. +type FolderWriteResponse struct { // Identifier represents the Identifier of the written folder. Identifier Identifier // Written represents the written byte size of the folder. @@ -96,76 +132,64 @@ type SubFolderWriteResponse struct { } // AddSubFolders adds the FolderWriter to the write queue. -// See StartSubFoldersWriteCallbackChannel. func (folderWriter *FolderWriter) AddSubFolders(subFolders ...*FolderWriter) { - for _, subFolder := range subFolders { - folderWriter.SubFoldersWriteChannel <- subFolder - } -} - -// StartSubFoldersWriteCallbackChannel listens for written sub-folders. -// Adds the sub-folder Identifier to the SubFoldersTableContextWriter. -func (folderWriter *FolderWriter) StartSubFoldersWriteCallbackChannel() { - for subFolderWriteResponse := range folderWriter.SubFoldersWriteCallbackChannel { - folderWriter.SubFoldersTableContextWriter.AddIdentifier(subFolderWriteResponse.Identifier) + for _, folder := range subFolders { + folderWriter.streamWriter.Send(folder) } } // AddMessages the messages to the MessageWriter write queue of this folder. // See StartMessageWriteCallbackChannel. -func (folderWriter *FolderWriter) AddMessages(messages ...proto.Message) { - folderWriter.MessageWriter.AddMessages(folderWriter.Identifier, messages...) +func (folderWriter *FolderWriter) AddMessages(messages ...*MessageWriter) { + folderWriter.messageWriter.AddMessages(folderWriter.identifier, messages...) } -// StartMessageWriteCallbackChannel listens for written messages. -// Adds the message Identifier to the MessageTableContextWriter. -func (folderWriter *FolderWriter) StartMessageWriteCallbackChannel() { - for messageIdentifier := range folderWriter.MessageWriteCallbackChannel { - folderWriter.MessageTableContextWriter.AddIdentifier(messageIdentifier) - } +// HandleFolderWriteCallback handles folder write callbacks. +// Add the written folder to the FolderTableContextWriter. +// Send write responses to parent writer. +func (folderWriter *FolderWriter) handleFolderWriteCallback(folderWriteResponse FolderWriteResponse) error { + // Add the folder identifier to the folder Table Context so this folder can find the sub-folders. + folderWriter.subFoldersTableContextWriter.AddIdentifier(folderWriteResponse.Identifier) + // Send to parent so the total size of the PST file can be calculated. + folderWriter.folderWriteCallback <- folderWriteResponse.Written + + return nil } // SetIdentifier sets the identifier of the folder. // This is mainly used for the pst.IdentifierRootFolder. -// Usually the identifier is automatically set by NewFolderWriter. +// Usually the identifier is set by NewFolderWriter. func (folderWriter *FolderWriter) SetIdentifier(identifier Identifier) { - folderWriter.Identifier = identifier + folderWriter.identifier = identifier +} + +// GetIdentifier returns the identifier of this folder. +// Used to reference parent/child folders and messages. +func (folderWriter *FolderWriter) GetIdentifier() Identifier { + return folderWriter.identifier } // UpdateTableContext updates the TableContext of the folder to reference the message identifiers. func (folderWriter *FolderWriter) UpdateTableContext(messages ...proto.Message) { - + folderWriter.messageTableContextWriter.Add(messages...) } -// StartFolderWriteChannel listens for sub-folders to write. -// The called is responsible for starting the write channel. -//func (folderWriter *FolderWriter) StartFolderWriteChannel(writeGroup *errgroup.Group) { -// for receivedFolder := range folderWriter.FolderWriteChannel { -// // Listen for folders to write. -// writeGroup.Go(func() error { -// // Add folder to TableContextWriter write queue. -// folderWriter.TableContextWriter.AddFolders(receivedFolder) -// -// return nil -// }) -// } -//} +func (folderWriter *FolderWriter) AddProperties(properties ...proto.Message) { + // TODO - folderWriter.propertyContextWriter.AddProperties(properties) +} // WriteTo writes the folder containing messages. // Returns the amount of bytes written to the output buffer. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#folders func (folderWriter *FolderWriter) WriteTo(writer io.Writer) (int64, error) { - // Write TableContext. - tableContextWrittenSize, err := folderWriter.TableContextWriter.WriteTo(writer) + // Everything is automatically started writing add soon as the Add is called. + // TODO - We can block here if the user wants to wait for WriteTo call. - if err != nil { - return 0, eris.Wrap(err, "failed to write Table Context") - } - - // Make this written folder findable in the B-Tree. - if err := folderWriter.UpdateIdentifier(); err != nil { - return 0, eris.Wrap(err, "failed to update identifier") - } + // TODO - Moved to New? Make this written folder findable in the B-Tree. + //if err := folderWriter.UpdateIdentifier(); err != nil { + // return 0, eris.Wrap(err, "failed to update identifier") + //} - return tableContextWrittenSize + messagesWrittenSize, nil + //return tableContextWrittenSize + messagesWrittenSize, nil + return 0, nil } diff --git a/pkg/message_writer.go b/pkg/message_writer.go index 5b78bfc..b2615c6 100644 --- a/pkg/message_writer.go +++ b/pkg/message_writer.go @@ -24,120 +24,110 @@ import ( ) // MessageWriter represents a writer for messages. +// References type MessageWriter struct { - // Writer represents the io.Writer used while writing. - Writer io.WriteSeeker - // WriteGroup represents the writers running in Goroutines. - WriteGroup *errgroup.Group - // FormatType represents the FormatType used while writing. - FormatType FormatType - // MessageWriteChannel represents the Go channel used to process writing messages. - MessageWriteChannel chan *WritableMessage - // MessageWriteCallback represents the callback called for each written message. - MessageWriteCallback chan int64 - // AttachmentWriter represents a writer for attachments. - AttachmentWriter *AttachmentWriter - // PropertyContextWriter writes the pst.PropertyContext of a pst.Message. - PropertyContextWriter *PropertyContextWriter - // Identifier represents the identifier of this message, which is used in the B-Tree. - Identifier Identifier + // streamWriter represents the Go channel used to process writing messages. + // Has a callback called for each written message. + streamWriter *StreamWriter + // formatType represents the FormatType used while writing. + formatType FormatType + // attachmentWriter represents a writer for attachments. + attachmentWriter *AttachmentWriter + // propertyContextWriter writes the pst.PropertyContext of a pst.Message. + propertyContextWriter *PropertyContextWriter + // identifier represents the identifier of this message, which is used in the B-Tree. + identifier Identifier } // NewMessageWriter creates a new MessageWriter. -func NewMessageWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, messageWriteCallback chan int64, formatType FormatType) *MessageWriter { - messageWriter := &MessageWriter{ - Writer: writer, - WriteGroup: writeGroup, - FormatType: formatType, - AttachmentWriter: NewAttachmentWriter(writer, writeGroup, formatType), - PropertyContextWriter: NewPropertyContextWriter(writer, writeGroup, formatType), - MessageWriteCallback: messageWriteCallback, - } +func NewMessageWriter(outputFile io.WriteSeeker, writeGroup *errgroup.Group, parentFolderIdentifier Identifier, formatType FormatType) (*MessageWriter, error) { + streamWriter := NewStreamWriter(outputFile, writeGroup) - // Start the message write channel which processes writing messages. - messageWriter.StartMessageWriteChannel() + // Start the stream writer which is used by the MessageWriter. + streamWriter.StartWriteChannel() - return messageWriter -} + // + attachmentWriter, err := NewAttachmentWriter(outputFile, writeGroup, formatType) -// AddMessages adds the WritableMessage to the write queue. -func (messageWriter *MessageWriter) AddMessages(folderIdentifier Identifier, messages ...proto.Message) { - // TODO - identifier = folderIdentifier + 12 - for _, message := range messages { - messageWriter.MessageWriteChannel <- message + if err != nil { + return nil, eris.Wrap(err, "failed to create attachment writer") } -} -// StartMessageWriteChannel receives messages to write. -func (messageWriter *MessageWriter) StartMessageWriteChannel() { - messageWriter.WriteGroup + propertyContextWriter, err := NewPropertyContextWriter(outputFile, writeGroup, propertyContextCallback, formatType) - // The caller already starts a Goroutine. - for receivedMessage := range messageWriter.MessageWriteChannel { - writeGroup.Go(func() error { - // Write the message. - messageWrittenSize, err := receivedMessage.WriteTo(messageWriter.Writer) + if err != nil { + return nil, eris.Wrap(err, "failed to create property context writer") + } + + messageWriter := &MessageWriter{ + formatType: formatType, + streamWriter: streamWriter, + attachmentWriter: attachmentWriter, + propertyContextWriter: propertyContextWriter, + // Identifier is set below. + } - if err != nil { - return eris.Wrap(err, "failed to write message") - } + // Set the identifier so this message can be found in the B-Tree. + if err := messageWriter.UpdateIdentifier(parentFolderIdentifier); err != nil { + return nil, eris.Wrap(err, "failed to update identifier") + } - // Callback to keep track of the total PST file size. - messageWriter.MessageWriteCallback <- NewWriteCallbackResponse(messageWrittenSize) + return messageWriter, nil +} - return nil - }) +// AddMessages adds the MessageWriter to the write queue. +func (messageWriter *MessageWriter) AddMessages(folderIdentifier Identifier, messages ...*MessageWriter) { + // TODO - identifier = folderIdentifier + 12 --- Identifier of what? + for _, message := range messages { + messageWriter.streamWriter.Send(message) } } // AddAttachments adds AttachmentWriter to the write queue. func (messageWriter *MessageWriter) AddAttachments(attachments ...*AttachmentWriter) { - messageWriter.AttachmentWriter.AddAttachments(attachments...) + // TODO - + //messageWriter.attachmentWriter.AddAttachments(attachments...) } -// WritableMessage represents a writable message. -// TODO - Maybe merge to Message. -type WritableMessage struct { - Identifier Identifier - Properties proto.Message +func (messageWriter *MessageWriter) AddProperties(properties ...proto.Message) { + //messageWriter.propertyContextWriter.AddProperties(properties) } -func (messageWriter *MessageWriter) UpdateIdentifier() error { - identifier, err := NewIdentifier(messageWriter.FormatType) - - if err != nil { - return eris.Wrap(err, "failed to create identifier") - } - - messageWriter.Identifier = identifier +// UpdateIdentifier +// References +func (messageWriter *MessageWriter) UpdateIdentifier(parentFolderIdentifier Identifier) error { + messageWriter.identifier = parentFolderIdentifier + 12 + //identifier, err := NewIdentifier(messageWriter.FormatType) + // + //if err != nil { + // return eris.Wrap(err, "failed to create identifier") + //} + // + //messageWriter.Identifier = identifier } // WriteTo writes the message property context. func (messageWriter *MessageWriter) WriteTo(writer io.Writer) (int64, error) { // Write Property Context. - propertyContextWrittenSize, err := messageWriter.PropertyContextWriter.WriteTo(writer) + propertyContextWrittenSize, err := messageWriter.propertyContextWriter.WriteTo(writer) if err != nil { return 0, eris.Wrap(err, "failed to write Property Context") } // Wait for attachments to write. - var attachmentsWrittenSize int64 + messageWriter.attachmentWriter.Wait() - for _, attachmentWriter := range messageWriter.Attachments { - written, err := attachmentWriter.WriteTo(writer) + // TODO - Wait for StreamWriter here? - if err != nil { - return 0, eris.Wrap(err, "failed to write attachment") - } + var attachmentsWrittenSize int64 - attachmentsWrittenSize += written - } + // TODO - Receive total written size from the callback. - // Make this message findable in the B-Tree. - if err := messageWriter.UpdateIdentifier(); err != nil { - return 0, eris.Wrap(err, "failed to update identifier") - } + // TODO - Moved to New? Make this message findable in the B-Tree. + //if err := messageWriter.UpdateIdentifier(); err != nil { + // return 0, eris.Wrap(err, "failed to update identifier") + //} return propertyContextWrittenSize + attachmentsWrittenSize, nil } diff --git a/pkg/property.go b/pkg/property.go index aee6872..e576534 100644 --- a/pkg/property.go +++ b/pkg/property.go @@ -24,22 +24,22 @@ import ( // Property represents a property in the TableContext or PropertyContext. // See PropertyReader, PropertyWriter. type Property struct { - Identifier Identifier + Identifier uint16 Type PropertyType HNID Identifier // Value is only used for small values. // <= 8 bytes for the Table Context. // <= 4 bytes for the Property Context. // Other values will use the HNID. - Value *bytes.Buffer + Value []byte } // WriteTo writes the byte representation of the Property. -func (property *Property) WriteTo(writer io.Writer, formatType FormatType) (int64, error) { - identifierSize := int(GetIdentifierSize(formatType)) - propertyBuffer := bytes.NewBuffer(make([]byte, identifierSize+2+identifierSize+property.Value.Len())) +func (property *Property) WriteTo(writer io.Writer) (int64, error) { + // TODO - We can't pass formatType because io.WriterTo signature doesn't allow it. + propertyBuffer := bytes.NewBuffer(make([]byte, 2+2+identifierSize+property.Value.Len())) - propertyBuffer.Write(property.Identifier.Bytes(formatType)) + propertyBuffer.Write(GetUint16(property.Identifier)) propertyBuffer.Write(property.Type.Bytes()) propertyBuffer.Write(property.HNID.Bytes(formatType)) propertyBuffer.Write(property.Value.Bytes()) diff --git a/pkg/property_context_writer.go b/pkg/property_context_writer.go index 3393bc8..a0e85d4 100644 --- a/pkg/property_context_writer.go +++ b/pkg/property_context_writer.go @@ -20,72 +20,93 @@ import ( "bytes" "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" + "google.golang.org/protobuf/proto" "io" ) // PropertyContextWriter represents a writer for a pst.PropertyContext. type PropertyContextWriter struct { - // StreamWriter represents the writer for the PropertyContextWriter. - StreamWriter *StreamWriter - // BTreeOnHeapWriter represents the BTreeOnHeapWriter. - BTreeOnHeapWriter *BTreeOnHeapWriter - // PropertyWriter represents the PropertyWriter. - PropertyWriter *PropertyWriter - // PropertyWriteCallbackChannel represents the callback channel for writable properties. - // TODO - Move to PropertyWriter? - PropertyWriteCallbackChannel chan int64 + // streamWriter represents the writer for the PropertyContextWriter. + streamWriter *StreamWriter + // formatType represents the FormatType used while writing. + formatType FormatType + // btreeOnHeapWriter represents the BTreeOnHeapWriter. + btreeOnHeapWriter *BTreeOnHeapWriter + // propertyWriter represents the PropertyWriter. + propertyWriter *PropertyWriter + // propertyWriteCallbackChannel represents the callback channel for writable properties. + propertyWriteCallbackChannel chan *bytes.Buffer // LocalDescriptorsWriter represents the LocalDescriptorsWriter. - LocalDescriptorsWriter *LocalDescriptorsWriter + localDescriptorsWriter *LocalDescriptorsWriter } // NewPropertyContextWriter creates a new PropertyContextWriter. -func NewPropertyContextWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, formatType FormatType) *PropertyContextWriter { - streamWriter := NewStreamWriter(writer, writeGroup) +func NewPropertyContextWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, propertyContextWriteCallback chan int64, formatType FormatType) (*PropertyContextWriter, error) { + // Stream writer is used to write the property context. + streamWriter := NewStreamWriter[io.WriterTo, int64](writer, writeGroup) + // Start the write channel. + streamWriter.StartWriteChannel() + // Send the write responses to the parent for calculating the total size. + streamWriter.RegisterCallback(propertyContextWriteCallback) + + // Structures below the PropertyContext. heapOnNodeWriter := NewHeapOnNodeWriter(SignatureTypePropertyContext) btreeOnHeapWriter := NewBTreeOnHeapWriter(heapOnNodeWriter) - // propertyWriteCallbackChannel returns the written byte size, used to wait for properties to be written. - propertyWriteCallbackChannel := make(chan int64) - // propertyWriter starts a Go channel for writing properties. - propertyWriter := NewPropertyWriter(writer, writeGroup, formatType) localDescriptorsWriter := NewLocalDescriptorsWriter(writer, writeGroup, formatType, BTreeTypeBlock) - propertyContextWriter := &PropertyContextWriter{ - StreamWriter: streamWriter, - BTreeOnHeapWriter: btreeOnHeapWriter, - PropertyWriter: propertyWriter, - PropertyWriteCallbackChannel: propertyWriteCallbackChannel, - LocalDescriptorsWriter: localDescriptorsWriter, + // Property writer. + // TODO - Fix callbacks. + propertyWriteCallbackChannel := make(chan *bytes.Buffer) + propertyWriter := NewPropertyWriter(writer, writeGroup, formatType, propertyWriteCallbackChannel) + + // Registers the property write callback. + if err := propertyWriter.RegisterPropertyWriteCallback(propertyWriteCallbackChannel); err != nil { + return nil, eris.Wrap(err, "failed to register property write callback") } - return propertyContextWriter + // PropertyContext writer. + return &PropertyContextWriter{ + streamWriter: streamWriter, + formatType: formatType, + btreeOnHeapWriter: btreeOnHeapWriter, + propertyWriter: propertyWriter, + propertyWriteCallbackChannel: propertyWriteCallbackChannel, + localDescriptorsWriter: localDescriptorsWriter, + }, nil } // AddProperties adds the properties (properties.Message, properties.Attachment, etc.) to the write queue. -// Sends WritableProperty to StreamWriter and returns []Property (see PropertyWriteCallbackChannel). -func (propertyContextWriter *PropertyContextWriter) AddProperties(properties ...*WritableProperty) { - propertyContextWriter.PropertyWriter.AddProperties(properties...) +// Sends WritableProperties to StreamWriter and returns []Property (see PropertyWriteCallbackChannel). +// Once we have []Property we convert to a byte representation to be written. +func (propertyContextWriter *PropertyContextWriter) AddProperties(properties ...proto.Message) error { + return propertyContextWriter.propertyWriter.AddProperties(properties...) } // WriteTo writes the pst.PropertyContext. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#property-context-pc func (propertyContextWriter *PropertyContextWriter) WriteTo(writer io.Writer) (int64, error) { - btreeOnHeapWrittenSize, err := propertyContextWriter.BTreeOnHeapWriter.WriteTo(writer) + // Write the BTree-on-Heap. + btreeOnHeapWrittenSize, err := propertyContextWriter.btreeOnHeapWriter.WriteTo(writer) if err != nil { return 0, eris.Wrap(err, "failed to write Heap-on-Node") } - // Wait for the properties to be written. - // TODO - Wait - // TODO - Write to the structures directly, remove WriteTo altogether. - var totalSize int64 + // Write the properties. + var propertiesWrittenSize int64 + + for streamResponse := range propertyContextWriter.propertyWriteCallbackChannel { + written, err := streamResponse.WriteTo(writer) + + if err != nil { + return 0, eris.Wrap(err, "failed to write property") + } - for writtenSize := range propertyContextWriter.PropertyWriteCallbackChannel { - totalSize += writtenSize + propertiesWrittenSize += written } - return btreeOnHeapWrittenSize + totalSize, nil + return btreeOnHeapWrittenSize + propertiesWrittenSize, nil } // WriteProperty writes the property. @@ -104,11 +125,13 @@ func (propertyContextWriter *PropertyContextWriter) WriteProperty(writer io.Writ } } else if property.Value.Len() <= 3580 { // HID + // TODO - } else { - // NID Local Descriptor - localDescriptorIdentifier := propertyContextWriter.LocalDescriptorsWriter.AddProperty(property) + // NID (Local Descriptor) + // Reference the identifier of the created Local Descriptor. + localDescriptorIdentifier := propertyContextWriter.localDescriptorsWriter.AddProperty(property) - propertyBuffer.Write(localDescriptorIdentifier.Bytes(propertyContextWriter.FormatType)) + propertyBuffer.Write(localDescriptorIdentifier.Bytes(propertyContextWriter.formatType)) } return propertyBuffer.WriteTo(writer) diff --git a/pkg/property_writer.go b/pkg/property_writer.go index fe74692..6918512 100644 --- a/pkg/property_writer.go +++ b/pkg/property_writer.go @@ -18,185 +18,137 @@ package pst import ( "bytes" - "encoding/binary" - "fmt" - "github.com/mooijtech/go-pst/v6/pkg/properties" - "github.com/rotisserie/eris" - "github.com/tinylib/msgp/msgp" "golang.org/x/sync/errgroup" "google.golang.org/protobuf/proto" "io" - "reflect" - "strconv" - "strings" ) // PropertyWriter represents a writer for properties. // The PropertyContext should be used as a higher structure which manages this PropertyWriter. type PropertyWriter struct { - // StreamWriter is used to send write requests to a write channel and receive the results via a callback channel. - StreamWriter *StreamWriter - // FormatType represents the FormatType used while writing. - FormatType FormatType - // PropertyCount represents the amount of properties this PropertyWriter will write. - PropertyCount int + // streamWriter is used to send write requests to a write channel and receive the results via a callback channel. + // See GetProperties for converting to a byte representation. + streamWriter *StreamWriter + // propertyWriteCallback sends property write responses to the parent writer to calculate the total size of the PST file. + propertyWriteCallback chan int64 + // formatType represents the FormatType used while writing. + formatType FormatType + // propertyCount represents the amount of properties this PropertyWriter will write (AddProperties). + // Used to calculate offsets. + propertyCount int } // NewPropertyWriter creates a new PropertyWriter. -func NewPropertyWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, formatType FormatType) *PropertyWriter { +func NewPropertyWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, formatType FormatType, propertyWriteCallback chan int64) *PropertyWriter { + // Stream writer used to write properties. + streamWriter := NewStreamWriter[io.WriterTo, int64](writer, writeGroup) + + // Create property writer. propertyWriter := &PropertyWriter{ - FormatType: formatType, - PropertyCount: 0, + streamWriter: streamWriter, + propertyWriteCallback: propertyWriteCallback, + formatType: formatType, + propertyCount: 0, } - streamWriter := NewStreamWriter(writer, writeGroup).WithTransform(propertyWriter.PropertyTransform) - - propertyWriter.StreamWriter = streamWriter - - // Start the stream writer. + // Start the stream writer for writing properties. streamWriter.StartWriteChannel() - - // Start the property write channel. - propertyWriter.StartPropertyWriteChannel() + // Send the write results to the parent callback channel. + streamWriter.RegisterCallback(propertyWriteCallback) return propertyWriter } -// WritableProperty for the StreamWriter. -type WritableProperty struct { - Value proto.Message -} - -func (writableProperty *WritableProperty) WriteTo(writer io.Writer) (int64, error) { - -} - // AddProperties sends the properties to the write queue, picked up by Goroutines. // Properties will be written to the PropertyWriteCallbackChannel (see StartPropertyWriteChannel). -func (propertyWriter *PropertyWriter) AddProperties(properties ...*WritableProperty) { +func (propertyWriter *PropertyWriter) AddProperties(properties ...proto.Message) error { + propertyWriter.propertyCount += len(properties) + + // Send WritableProperties, receive the byte representation. for _, property := range properties { - propertyWriter.StreamWriter.WriteChannel <- property - propertyWriter.PropertyCount++ - } -} + // TODO - Send each property separately instead or batch for memory? + writableProperties, err := propertyWriter.GetProperties(property) + + if err != nil { -// PropertyTransform sends the byte representation of the properties to a write channel and returns the writable properties. -func (propertyWriter *PropertyWriter) PropertyTransform(receivedProperties ...StreamRequest) ([]StreamResponse, error) { - writableProperties, err := propertyWriter.GetProperties(receivedProperties...) + } - if err != nil { - return nil, eris.Wrap(err, "failed to get writable properties") + for _, p := range writableProperties { + propertyWriter.streamWriter.Send(p) + } } - return writableProperties, nil + return nil } -//// StartPropertyWriteChannel starts the Go channel for writing properties. -//func (propertyWriter *PropertyWriter) StartPropertyWriteChannel() error { -// propertyWriter.StreamWriter.WriteChannel <- -// -// // Create writable byte representation of the properties. -// writableProperties, err := propertyWriter.GetProperties(receivedProperties) -// -// if err != nil { -// return eris.Wrap(err, "failed to get writable properties") -// } -// -// -// propertyWriter.StreamWriter -// -// // The caller is already in a Goroutine. -// for receivedProperties := range propertyWriter.PropertyWriteChannel { -// propertyWriter.WriteGroup.Go(func() error { -// // Create writable byte representation of the properties. -// writableProperties, err := propertyWriter.GetProperties(receivedProperties) -// -// if err != nil { -// return eris.Wrap(err, "failed to get writable properties") -// } -// -// // Callback, the PropertyContext handles writing this to the correct place. -// for _, writableProperty := range writableProperties { -// propertyWriter.PropertyWriteCallbackChannel <- writableProperty -// } -// -// return nil -// }) -// } -//} +// AddIdentifier creates an identifier property and writes it. +func (propertyWriter *PropertyWriter) AddIdentifier(identifier Identifier) { + identifierProperty := &Property{ + Identifier: 26610, // 26610 is always used for identifiers TODO reference actual PropertyName + Type: PropertyTypeInteger32, + Value: identifier.Bytes(propertyWriter.formatType), + } + + propertyWriter.streamWriter.Send(identifierProperty) +} // GetProperties returns the writable properties. // This code is a hot-path, do not use reflection here. // Instead, we use code-generated setters thanks to https://github.com/tinylib/msgp (deserialize into structs). -func (propertyWriter *PropertyWriter) GetProperties(protoMessage ...StreamRequest) ([]StreamResponse, error) { - var totalSize int - - totalSize += int(GetIdentifierSize(propertyWriter.FormatType)) - // TODO - - - messagePackBuffer := bytes.NewBuffer(make([]byte, totalSize)) - messagePackWriter := msgp.NewWriterSize(messagePackBuffer, totalSize) - - switch property := protoMessage.(type) { - case *properties.Message: - // TODO - Skip nil! - property.MarshalMsg() - case *properties.Attachment: - - } - - var properties []Property - - propertyTypes := reflect.TypeOf(protoMessage).Elem() - propertyValues := reflect.ValueOf(protoMessage).Elem() - - for i := 0; i < propertyTypes.NumField(); i++ { - if !propertyTypes.Field(i).IsExported() || propertyValues.Field(i).IsNil() { - continue - } - - // Get the struct tag which we use to get the property ID and property type. - // These struct tags are generated by cmd/properties/generate.go. - tag := strings.ReplaceAll(propertyTypes.Field(i).Tag.Get("msg"), ",omitempty", "") - - if tag == "" { - fmt.Printf("Skipping property without tag: %s\n", propertyTypes.Field(i).Name) - continue - } - - propertyID, err := strconv.Atoi(strings.Split(tag, "-")[0]) - - if err != nil { - return nil, eris.Wrap(err, "failed to convert propertyID to int") - } - - propertyType, err := strconv.Atoi(strings.Split(tag, "-")[1]) - - if err != nil { - return nil, eris.Wrap(err, "failed to convert propertyType to int") - } - - var propertyBuffer bytes.Buffer - - switch propertyValue := propertyValues.Field(i).Elem().Interface().(type) { - case string: - // Binary is intended for fixed-size structures with obvious encodings. - // Strings are not fixed size and do not have an obvious encoding. - if _, err := io.WriteString(&propertyBuffer, propertyValue); err != nil { - return nil, eris.Wrap(err, "failed to write string") - } - default: - if err := binary.Write(&propertyBuffer, binary.LittleEndian, propertyValue); err != nil { - return nil, eris.Wrap(err, "failed to write property") - } - } - - properties = append(properties, Property{ - Identifier: Identifier(propertyID), - Type: PropertyType(propertyType), - Value: propertyBuffer, - }) - } - - return properties, nil +func (propertyWriter *PropertyWriter) GetProperties(writableProperties proto.Message) ([]*bytes.Buffer, error) { + return nil, nil + //var properties []Property + // + //propertyTypes := reflect.TypeOf(protoMessage).Elem() + //propertyValues := reflect.ValueOf(protoMessage).Elem() + // + //for i := 0; i < propertyTypes.NumField(); i++ { + // if !propertyTypes.Field(i).IsExported() || propertyValues.Field(i).IsNil() { + // continue + // } + // + // // Get the struct tag which we use to get the property ID and property type. + // // These struct tags are generated by cmd/properties/generate.go. + // tag := strings.ReplaceAll(propertyTypes.Field(i).Tag.Get("msg"), ",omitempty", "") + // + // if tag == "" { + // fmt.Printf("Skipping property without tag: %s\n", propertyTypes.Field(i).Name) + // continue + // } + // + // propertyID, err := strconv.Atoi(strings.Split(tag, "-")[0]) + // + // if err != nil { + // return nil, eris.Wrap(err, "failed to convert propertyID to int") + // } + // + // propertyType, err := strconv.Atoi(strings.Split(tag, "-")[1]) + // + // if err != nil { + // return nil, eris.Wrap(err, "failed to convert propertyType to int") + // } + // + // var propertyBuffer bytes.Buffer + // + // switch propertyValue := propertyValues.Field(i).Elem().Interface().(type) { + // case string: + // // Binary is intended for fixed-size structures with obvious encodings. + // // Strings are not fixed size and do not have an obvious encoding. + // if _, err := io.WriteString(&propertyBuffer, propertyValue); err != nil { + // return nil, eris.Wrap(err, "failed to write string") + // } + // default: + // if err := binary.Write(&propertyBuffer, binary.LittleEndian, propertyValue); err != nil { + // return nil, eris.Wrap(err, "failed to write property") + // } + // } + // + // properties = append(properties, Property{ + // Identifier: Identifier(propertyID), + // Type: PropertyType(propertyType), + // Value: propertyBuffer, + // }) + //} + // + //return properties, nil } diff --git a/pkg/stream_writer.go b/pkg/stream_writer.go index f81186d..14ecd88 100644 --- a/pkg/stream_writer.go +++ b/pkg/stream_writer.go @@ -20,115 +20,76 @@ import ( "github.com/rotisserie/eris" "golang.org/x/sync/errgroup" "io" - "sync" ) -// StreamWriter uses a write channel and callback channel. -// StreamWriter is used by all writers and is generic. +// StreamWriter uses a write channel and callback channel (used by all writers). type StreamWriter struct { - // Writer used by the WriteChannel. - Writer io.WriteSeeker - // WriteGroup is used to start the WriteChannel. - WriteGroup *errgroup.Group - // WriteChannel is the channel for writing. - WriteChannel chan StreamRequest - // CallbackChannel is where a StreamResponse is sent. - // Transform may be used to return a value other than the default, which is bytes written (int64). - CallbackChannel chan StreamResponse - // TransformFunc transforms the request to a response. - // For example, I can transform a byte representation (request) to a struct (response). - TransformFunc TransformFunc + // writer used by the WriteChannel. + writer io.WriteSeeker + // writeGroup is used to start the WriteChannel. + writeGroup *errgroup.Group + // writeChannel is the channel for writing. + writeChannel chan io.WriterTo + // callbackChannel is used to calculate the total written size. + callbackChannel chan int64 } -// TransformFunc is used by Transform to convert a StreamRequest to a StreamResponse. -// See WithTransform of a StreamWriter. -type TransformFunc func(streamRequest StreamRequest) (StreamResponse, error) - // NewStreamWriter creates a new StreamWriter. // The caller must start the WriteChannel of the returned StreamWriter with StartWriteChannel. -// See WithTransform. func NewStreamWriter(writer io.WriteSeeker, writeGroup *errgroup.Group) *StreamWriter { - writeChannel := make(chan StreamRequest) - callbackChannel := make(chan StreamResponse) + writeChannel := make(chan io.WriterTo) + callbackChannel := make(chan int64) return &StreamWriter{ - Writer: writer, - WriteGroup: writeGroup, - WriteChannel: writeChannel, - CallbackChannel: callbackChannel, + writer: writer, + writeGroup: writeGroup, + writeChannel: writeChannel, + callbackChannel: callbackChannel, } } -// WithTransform allows transforming the StreamRequest to a StreamResponse for the callback. -func (streamWriter *StreamWriter) WithTransform(transformFunc TransformFunc) *StreamWriter { - streamWriter.TransformFunc = transformFunc - - return streamWriter -} - -// StreamRequest represents something to write (see StreamResponse). -type StreamRequest interface { - io.WriterTo -} - -// StreamResponse represents the write response which is sent to a callback. -type StreamResponse struct { - // Value represents the result of the write operation. - // It can be transformed with Transform (you will never be a real woman). - // By default, this is int64. - Value any -} - -// NewStreamResponse creates a new StreamResponse. -func NewStreamResponse(value any) StreamResponse { - return StreamResponse{Value: value} -} - -// Send the StreamRequest to the WriteChannel. -func (streamWriter *StreamWriter) Send(streamRequests ...StreamRequest) { - for _, streamRequest := range streamRequests { - streamWriter.WriteChannel <- streamRequest +// Send the io.WriterTo to the WriteChannel. +func (streamWriter *StreamWriter) Send(writeRequests ...io.WriterTo) { + for _, writeRequest := range writeRequests { + streamWriter.writeChannel <- writeRequest } } // StartWriteChannel starts the WriteChannel. func (streamWriter *StreamWriter) StartWriteChannel() { - streamWriter.WriteGroup.Go(func() error { - // Wait for writes to complete. - waitGroup := sync.WaitGroup{} - - // Launch writes all at once. - for streamRequest := range streamWriter.WriteChannel { - waitGroup.Add(1) - - streamWriter.WriteGroup.Go(func() error { - written, err := streamRequest.WriteTo(streamWriter.Writer) + streamWriter.writeGroup.Go(func() error { + for streamRequest := range streamWriter.writeChannel { + streamWriter.writeGroup.Go(func() error { + written, err := streamRequest.WriteTo(streamWriter.writer) if err != nil { return eris.Wrap(err, "failed to write to writer") } - // Callback, by default sends the amount of bytes written as int64. - // Optionally transforms (via TransformFunc) to a different callback value. - if streamWriter.TransformFunc != nil { - transformedRequest, err := streamWriter.TransformFunc(streamRequest) - - if err != nil { - return eris.Wrap(err, "failed during transform of request for callback") - } - - streamWriter.CallbackChannel <- transformedRequest - } else { - streamWriter.CallbackChannel <- NewStreamResponse(written) - } + streamWriter.callbackChannel <- written return nil }) } - // Collect results. - waitGroup.Wait() + return nil + }) +} + +// RegisterCallback registers a callback function. +func (streamWriter *StreamWriter) RegisterCallback(callbackChannel chan int64) { + streamWriter.writeGroup.Go(func() error { + for streamResponse := range streamWriter.callbackChannel { + // Send to callback function. + callbackChannel <- streamResponse + } return nil }) } + +// Close the stream writer. +func (streamWriter *StreamWriter) Close() { + close(streamWriter.writeChannel) + close(streamWriter.callbackChannel) +} diff --git a/pkg/table_context.go b/pkg/table_context.go index f75e61f..6bba6ee 100644 --- a/pkg/table_context.go +++ b/pkg/table_context.go @@ -197,20 +197,20 @@ func (file *File) GetTableContext(heapOnNode *HeapOnNode, localDescriptors []Loc func (file *File) GetTableContextProperty(tableRowMatrixReader io.ReaderAt, rowOffset int64, column ColumnDescriptor) (Property, error) { var property Property - property.ID = column.PropertyID + property.Identifier = column.PropertyID property.Type = column.PropertyType // Table Context uses a HNID for any data (PropertyType) exceeding 8 bytes. // Otherwise, the data is small enough to fit in the Property directly. if property.Type.GetDataSize() != -1 && column.DataSize <= 8 { // Single value. - data := make([]byte, column.DataSize) + value := make([]byte, column.DataSize) - if _, err := tableRowMatrixReader.ReadAt(data, rowOffset+int64(column.DataOffset)); err != nil { + if _, err := tableRowMatrixReader.ReadAt(value, rowOffset+int64(column.DataOffset)); err != nil { return Property{}, eris.Wrap(err, "failed to read table context data") } - property.Data = data + property.Value = value } else { // Variable size. hnid := make([]byte, 4) diff --git a/pkg/table_context_writer.go b/pkg/table_context_writer.go index 7f24a66..caa6157 100644 --- a/pkg/table_context_writer.go +++ b/pkg/table_context_writer.go @@ -28,33 +28,29 @@ import ( // TableContextWriter represents a writer for a pst.TableContext. // The TableContext is used to store identifiers pointing to folders and messages. type TableContextWriter struct { - // Writer represents the io.Writer used while writing. - Writer io.WriteSeeker - // WriteGroup represents writers running in Goroutines. - WriteGroup *errgroup.Group - // FormatType represents the FormatType. - FormatType FormatType - // PropertyWriter represents the PropertyWriter. - PropertyWriter *PropertyWriter - // PropertyWriteCallbackChannel represents the callback for writable properties. - // These writable properties are sent to the ColumnDescriptorsWriteChannel and RowMatrixWriterChannel. - PropertyWriteCallbackChannel chan Property - // HeaderWriteChannel represents the Go channel used for writing ColumnDescriptor to the header. - // See StartHeaderWriteChannel. - HeaderWriteChannel chan *bytes.Buffer - // RowMatrixWriteChannel represents the channel used for writing to the Row Matrix. - // See StartRowMatrixWriteChannel. - RowMatrixWriteChannel chan Property - // TableContextWriteCallback represents the callback used when the TableContextWriter is done writing. - TableContextWriteCallback chan int64 + // streamWriter is used to write the Table Context. + streamWriter *StreamWriter + // formatType represents the FormatType used during writing. + formatType FormatType + // propertyWriter represents the PropertyWriter. + // Used to write properties to the Table Context. + propertyWriter *PropertyWriter + // TODO - Where is this used? + parentIdentifier Identifier } // NewTableContextWriter creates a new TableContextWriter. -func NewTableContextWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, parentIdentifier Identifier, formatType FormatType) (*TableContextWriter, error) { +// TODO - parentIdentifier Identifier -> NewTableContextWriterWithParentIdentifier +func NewTableContextWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, formatType FormatType) (*TableContextWriter, error) { // Create PropertyWriter (see StartChannels). propertyWriteCallbackChannel := make(chan Property) propertyWriter := NewPropertyWriter(writer, writeGroup, propertyWriteCallbackChannel, formatType) + // TODO - Merge into TableContextCallbackChannel response + propertyWriter.PropertyWriteCallback + + propertyWriter.RegisterCallback() + // Create TableContextWriter tableContextWriteCallback := make(chan int64) tableContextWriter := &TableContextWriter{ @@ -77,15 +73,13 @@ func NewTableContextWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, pa return tableContextWriter, nil } +func (tableContextWriter *TableContextWriter) WithParentIdentifier(parentIdentifier Identifier) { + tableContextWriter.parentIdentifier = parentIdentifier +} + // AddIdentifier adds a reference to a folder or message to the TableContext. func (tableContextWriter *TableContextWriter) AddIdentifier(identifier Identifier) { - identifierProperty := Property{ - Identifier: 26610, // 26610 is always used for identifiers TODO reference actual PropertyName - Type: PropertyTypeInteger32, - Value: bytes.NewBuffer(identifier.Bytes(tableContextWriter.FormatType)), - } - - tableContextWriter.PropertyWriteCallbackChannel <- identifierProperty + tableContextWriter.propertyWriter.AddIdentifier(identifier) } // WriteBTreeOnHeap writes the BTreeOnHeap of the TableContext. @@ -145,7 +139,7 @@ type RowMatrixOffsets struct { func (tableContextWriter *TableContextWriter) StartHeaderWriteChannel() { tableContextWriter.WriteGroup.Go(func() error { // TODO - Move everything here. - + return nil }) diff --git a/pkg/writer.go b/pkg/writer.go index a20cb7c..73fb059 100644 --- a/pkg/writer.go +++ b/pkg/writer.go @@ -26,77 +26,87 @@ import ( // Writer writes PST files. type Writer struct { - // Writer represents the writer. - Writer io.WriteSeeker - // WriteGroup represents the writers running in Goroutines. - WriteGroup *errgroup.Group - // WriteOptions represents options used while writing. - WriteOptions WriteOptions - // FolderWriter represents the writer for folders. - FolderWriter *FolderWriter - // FolderWriteCallback represents the callback which is called after a folder is written. - FolderWriteCallback chan int64 + // writer represents the io.WriteSeeker. + writer io.WriteSeeker + // writeGroup represents the writers running in Goroutines. + writeGroup *errgroup.Group + // writeOptions represents options used while writing. + writeOptions WriteOptions + // folderWriter represents the writer for folders. + folderWriter *FolderWriter + // folderWriteCallback represents the callback which is called after a folder is written. + folderWriteCallback chan int64 } // NewWriter returns a writer for PST files. -func NewWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, writeOptions WriteOptions) (*Writer, error) { - // TODO - Make stateless +// io.WriteSeeker must be a pointer so output can be redirected on overflow. +func NewWriter(outputFile io.WriteSeeker, writeGroup *errgroup.Group, writeOptions WriteOptions) (*Writer, error) { + // Stream writer. + streamWriter := NewStreamWriter[io.WriterTo, int64](outputFile, writeGroup) - // StreamWriter is a stateless generic writer which writes in Goroutines and returns callback values. - streamWriter := NewStreamWriter(writer, writeGroup) + streamWriter.StartWriteChannel() + // Folder writer. folderWriteCallback := make(chan int64) - folderWriter, err := NewFolderWriter(writer, writeGroup, writeOptions.FormatType, folderWriteCallback) + folderWriter, err := NewFolderWriter(outputFile, writeGroup, writeOptions.formatType, folderWriteCallback, IdentifierRootFolder) if err != nil { return nil, eris.Wrap(err, "failed to create folder writer") } - pstWriter := &Writer{ - Writer: writer, - WriteGroup: writeGroup, - WriteOptions: writeOptions, - FolderWriter: folderWriter, - FolderWriteCallback: folderWriteCallback, - } - - return pstWriter, nil + return &Writer{ + writer: outputFile, + writeGroup: writeGroup, + writeOptions: writeOptions, + folderWriter: folderWriter, + folderWriteCallback: folderWriteCallback, + }, nil } // WriteOptions defines the options used during writing. type WriteOptions struct { - // FormatType represents ANSI or Unicode. - FormatType FormatType - // EncryptionType represents the encryption type. - EncryptionType EncryptionType + // formatType represents the FormatType (Unicode or ANSI). + formatType FormatType + // encryptionType represents the EncryptionType. + encryptionType EncryptionType } // NewWriteOptions creates a new WriteOptions used during writing PST files. func NewWriteOptions(formatType FormatType, encryptionType EncryptionType) WriteOptions { return WriteOptions{ - FormatType: formatType, - EncryptionType: encryptionType, + formatType: formatType, + encryptionType: encryptionType, } } -// GetRootFolder returns the root folder. -// Automatically written to the FolderWriteChannel. -func (pstWriter *Writer) GetRootFolder() *FolderWriter { +// IsANSI returns true if the FormatType is ANSI. +func (pstWriter *Writer) IsANSI() bool { + return pstWriter.writeOptions.formatType == FormatTypeANSI +} + +// IsUnicode returns true if the FormatType is Unicode. +func (pstWriter *Writer) IsUnicode() bool { + return pstWriter.writeOptions.formatType == FormatTypeUnicode || pstWriter.writeOptions.formatType == FormatTypeUnicode4k +} + +// GetRootFolder creates a writable root folder. +func (pstWriter *Writer) GetRootFolder() (*FolderWriter, error) { + rootFolderWriter, err := NewRootFolderWriter(pstWriter.writer, pstWriter.writeGroup, pstWriter.writeOptions.formatType, pstWriter.folderWriteCallback) + if err != nil { + return nil, eris.Wrap(err, "failed to create root folder writer") + } + + return rootFolderWriter, nil } // AddSubFolders adds the sub-folders to the FolderWriter write queue. func (pstWriter *Writer) AddSubFolders(subFolders ...*FolderWriter) { - pstWriter.FolderWriter.AddSubFolders(subFolders...) + pstWriter.folderWriter.AddSubFolders(subFolders...) } -//func (pstWriter *Writer) AddSubFolders(parentFolder Identifier, subFolders ...*Folder) { -// // TODO - Add to FolderTableContext. -// // TODO - Write folder. -//} - -// ErrSizeLimit is an edge case for writing PST files >= 50GB. -var ErrSizeLimit = eris.New("maximum PST file size (50GB) reached, overflowing") +// ErrOverflow is an edge case for writing PST files >= 50GB. +var ErrOverflow = eris.New("maximum PST file size (50GB) reached, overflowing") // WriteTo writes the PST file. // WriteTo follows the path to root folder (fixed pst.Identifier, pst.IdentifierRootFolder) then to the pst.TableContext of the root folder. @@ -108,38 +118,36 @@ var ErrSizeLimit = eris.New("maximum PST file size (50GB) reached, overflowing") // These local descriptors also have the pst.HeapOnNode structure which can be built upon (explained below). // Local Descriptors are used to store more data in the pst.HeapOnNode structure (B-Tree with the nodes containing the data). // XBlocks and XXBlocks include an array of []pst.Identifier pointing to B-Tree nodes, it is the format used to store data (see BlockWriter). -// This structure is used by the Local Descriptors. +// Blocks are used by Local Descriptors. // // Each pst.HeapOnNode can contain either a pst.TableContext or pst.PropertyContext: // pst.TableContext (see TableContextWriter): -// The pst.TableContext contains a Row Matrix structure to store data, used by folders (to find data such as the folder identifiers ([]pst.Identifier)). +// The pst.TableContext contains a Row Matrix structure to store data, used to find data such as identifiers ([]pst.Identifier). // The pst.TableContext is column structured with data exceeding 8 bytes moving to different B-Tree nodes: // pst.HeapOnNode which is <= 3580 bytes. // pst.LocalDescriptor which is > 3580 bytes. // pst.PropertyContext (see PropertyContextWriter): -// The pst.PropertyContext contains a list of properties ([]pst.Property) of the message, we can write this with PropertyWriter. +// The pst.PropertyContext contains a list of properties ([]pst.Property) of the message (see PropertyWriter). // // Combining these structures we make up a PST file to write. // Each writer communicates with Go channels and Goroutines. func (pstWriter *Writer) WriteTo(writer io.Writer) (int64, error) { + // Wait for channels to finish. + if err := pstWriter.writeGroup.Wait(); err != nil { + return 0, eris.Wrap(err, "failed to wait for writers") + } + + // We are now listening to write responses. + // Catch case where overflow happens (>50GB). var totalSize int64 - // Wait for all folders to be written. - // "Share memory by communicating; don't communicate by sharing memory." - for folderWrittenSize := range pstWriter.FolderWriter.FolderWriteCallbackChannel { - // Handle edge case where the PST file is above 50GB, the limit for PST files. - // We just overflow. + for streamResponse := range pstWriter.folderWriteCallback { + totalSize += streamResponse + if totalSize >= 5e+10 { - // TODO - Handle, pass callback channel to new output. - return 0, ErrSizeLimit + // 50GB is the maximum file size of a PST file. + return totalSize, ErrOverflow } - - totalSize += folderWrittenSize - } - - // Wait for channels to finish. - if err := pstWriter.WriteGroup.Wait(); err != nil { - return 0, eris.Wrap(err, "writer failed") } // Write PST header. @@ -152,23 +160,27 @@ func (pstWriter *Writer) WriteTo(writer io.Writer) (int64, error) { return headerWrittenSize + totalSize, nil } +// OverflowTo catches an edge case where the PST file is larger than 50GB. +func (pstWriter *Writer) OverflowTo(writer io.WriteSeeker) { + // Redirect channels to new writer. + // TODO - Test this works by creating 50GB overflow :) + pstWriter.writer = writer +} + // WriteHeader writes the PST header. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#header-1 func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNodeBTree Identifier, rootBlockBTree Identifier) (int64, error) { var headerSize int - switch pstWriter.WriteOptions.FormatType { - case FormatTypeUnicode4k, FormatTypeUnicode: + if pstWriter.IsUnicode() { // TODO - Where is the documentation for Unicode4k? // 4+4+2+2+2+1+1+4+4+8+8+4+128+8+ROOT+4+128+128+1+1+2+8+4+3+1+32 // Header + header root headerSize = 492 + 72 - case FormatTypeANSI: + } else if pstWriter.IsANSI() { // 4+4+2+2+2+1+1+4+4+4+4+4+128+ROOT+128+128+1+1+2+8+4+3+1+32 // Header + header root headerSize = 472 + 40 - default: - return 0, ErrFormatTypeUnsupported } header := bytes.NewBuffer(make([]byte, headerSize)) @@ -178,16 +190,13 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode header.Write([]byte{0x53, 0x4D}) // Magic client // File format version - switch pstWriter.WriteOptions.FormatType { - case FormatTypeUnicode4k, FormatTypeUnicode: + if pstWriter.IsUnicode() { // TODO - Where is the documentation for Unicode4k? // MUST be greater than 23 if the file is a Unicode PST file. header.Write([]byte{30}) - case FormatTypeANSI: + } else if pstWriter.IsANSI() { // This value MUST be 14 or 15 if the file is an ANSI PST file. header.Write([]byte{15}) - default: - return 0, ErrFormatTypeUnsupported } // Client file format version. @@ -202,13 +211,13 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode header.Write(make([]byte, 4)) // Padding (bidUnused) for Unicode. - if pstWriter.WriteOptions.FormatType == FormatTypeUnicode || pstWriter.WriteOptions.FormatType == FormatTypeUnicode4k { + if pstWriter.IsUnicode() { header.Write(make([]byte, 8)) } // Next BID (bidNextB) for ANSI only. // go-pst does not read this. - if pstWriter.WriteOptions.FormatType == FormatTypeANSI { + if pstWriter.IsANSI() { header.Write(make([]byte, 4)) } @@ -216,9 +225,9 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // This can be used to increment a value for generating identifiers used by B-Tree nodes. // I assume it's faster to generate an identifier with crypto/rand instead of having to read and update this value. // go-pst does not read this. - if pstWriter.WriteOptions.FormatType == FormatTypeUnicode4k || pstWriter.WriteOptions.FormatType == FormatTypeUnicode { + if pstWriter.IsUnicode() { header.Write(make([]byte, 8)) - } else if pstWriter.WriteOptions.FormatType == FormatTypeANSI { + } else if pstWriter.IsANSI() { header.Write(make([]byte, 4)) } @@ -234,7 +243,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // Unused space; MUST be set to zero. Unicode PST file format only. // (qwUnused) - if pstWriter.WriteOptions.FormatType == FormatTypeUnicode4k || pstWriter.WriteOptions.FormatType == FormatTypeUnicode { + if pstWriter.IsUnicode() { header.Write(make([]byte, 8)) } @@ -245,7 +254,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // Unused alignment bytes; MUST be set to zero. // Unicode PST file format only. - if pstWriter.WriteOptions.FormatType == FormatTypeUnicode4k || pstWriter.WriteOptions.FormatType == FormatTypeUnicode { + if pstWriter.IsUnicode() { header.Write(make([]byte, 4)) } @@ -257,11 +266,11 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // bSentinel header.Write([]byte{128}) // Encryption. Indicates how the data within the PST file is encoded. (bCryptMethod) - header.WriteByte(byte(pstWriter.WriteOptions.EncryptionType)) + header.WriteByte(byte(pstWriter.writeOptions.encryptionType)) // rgbReserved header.Write(make([]byte, 2)) - if pstWriter.WriteOptions.FormatType == FormatTypeUnicode4k || pstWriter.WriteOptions.FormatType == FormatTypeUnicode { + if pstWriter.IsUnicode() { // Next BID. // go-pst does not read this value (bidNextB) header.Write(make([]byte, 8)) @@ -272,7 +281,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode header.Write([]byte{byte(crc32.ChecksumIEEE(header.Bytes()[4 : 4+516]))}) } - if pstWriter.WriteOptions.FormatType == FormatTypeANSI { + if pstWriter.IsANSI() { header.Write(make([]byte, 8)) // ullReserved header.Write(make([]byte, 4)) // dwReserved } @@ -295,7 +304,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#special-internal-nids func (pstWriter *Writer) WriteInternalBTreeNodes(writer io.Writer) (int64, error) { internalIdentifiersBuffer := bytes.NewBuffer(make([]byte, 128)) - formatType := pstWriter.WriteOptions.FormatType + formatType := pstWriter.writeOptions.formatType internalIdentifiersBuffer.Write(IdentifierMessageStore.Bytes(formatType)) internalIdentifiersBuffer.Write(IdentifierNameToIDMap.Bytes(formatType)) @@ -320,23 +329,19 @@ func (pstWriter *Writer) WriteInternalBTreeNodes(writer io.Writer) (int64, error func (pstWriter *Writer) WriteHeaderRoot(writer io.Writer, totalSize int64, rootNodeBTree Identifier, rootBlockBTree Identifier) (int64, error) { var headerSize int - switch pstWriter.WriteOptions.FormatType { - case FormatTypeUnicode: + if pstWriter.IsUnicode() { // 4+8+8+8+8+16+16+1+1+2 headerSize = 72 - case FormatTypeANSI: + } else if pstWriter.IsANSI() { // 4+4+4+4+4+8+8+1+1+2 headerSize = 40 - default: - return 0, ErrFormatTypeUnsupported } header := bytes.NewBuffer(make([]byte, headerSize)) header.Write(make([]byte, 4)) // dwReserved - switch pstWriter.WriteOptions.FormatType { - case FormatTypeUnicode: + if pstWriter.IsUnicode() { // The size of the PST file, in bytes. (ibFileEof) header.Write(GetUint64(uint64(totalSize))) // An IB structure (section 2.2.2.3) that contains the absolute file offset to the last AMap page of the PST file. @@ -351,7 +356,7 @@ func (pstWriter *Writer) WriteHeaderRoot(writer io.Writer, totalSize int64, root header.Write(append(GetUint64(uint64(rootBlockBTree)), make([]byte, 8)...)) // Indicates whether the AMaps in this PST file are valid (0 = INVALID_AMAP). header.Write([]byte{0}) - case FormatTypeANSI: + } else if pstWriter.IsANSI() { // The size of the PST file, in bytes. (ibFileEof) header.Write(GetUint32(uint32(totalSize))) // An IB structure (section 2.2.2.3) that contains the absolute file offset to the last AMap page of the PST file. @@ -366,8 +371,6 @@ func (pstWriter *Writer) WriteHeaderRoot(writer io.Writer, totalSize int64, root header.Write(GetUint64(uint64(rootBlockBTree))) // Indicates whether the AMaps in this PST file are valid (0 = INVALID_AMAP). header.Write([]byte{0}) - default: - return 0, ErrFormatTypeUnsupported } header.Write(make([]byte, 1)) // bReserved From 743c4be7838b981354adac59170fdb24d449339d Mon Sep 17 00:00:00 2001 From: Marten Mooij Date: Sun, 17 Sep 2023 15:57:47 +0200 Subject: [PATCH 12/12] Start adding 109 more properties from generate.go, start Unicode 4k (OST) support --- cmd/properties/folder.proto | 1 + cmd/properties/generate.go | 149 +++- cmd/properties/go.mod | 5 +- cmd/properties/go.sum | 2 + cmd/properties/protobufs/address_book.proto | 86 ++- cmd/properties/protobufs/appointment.proto | 18 +- cmd/properties/protobufs/attachment.proto | 4 +- cmd/properties/protobufs/folder.proto | 35 + .../protobufs/meeting.proto} | 8 +- cmd/properties/protobufs/message.proto | 726 ++++++++++++++---- cmd/reader/main.go | 150 ++++ cmd/{writer.go => writer/main.go} | 5 +- data/test-from-aspose.ost | Bin 0 -> 271360 bytes .../blogpost.txt" | 48 ++ docs/[MS-OXCFOLD].docx | Bin 0 -> 119012 bytes docs/libpff.pdf | Bin 0 -> 220508 bytes go.mod | 3 +- go.sum | 12 +- pkg/block_writer.go | 69 +- pkg/btree.go | 150 ++-- pkg/doc.go | 2 +- pkg/file.go | 16 +- pkg/folder.go | 63 +- pkg/heap_on_node_reader.go | 93 ++- pkg/io_uring.go | 5 + pkg/message.go | 3 + pkg/name_to_id_map_writer.go | 23 +- pkg/writer.go | 42 +- pkg/zlib.go | 65 ++ 29 files changed, 1345 insertions(+), 438 deletions(-) create mode 100644 cmd/properties/protobufs/folder.proto rename cmd/{reader.go => properties/protobufs/meeting.proto} (69%) create mode 100644 cmd/reader/main.go rename cmd/{writer.go => writer/main.go} (96%) create mode 100644 data/test-from-aspose.ost create mode 100644 "docs/OST 2013 File Format \342\200\223 The missing documentation Mythicsoft_files/blogpost.txt" create mode 100644 docs/[MS-OXCFOLD].docx create mode 100644 docs/libpff.pdf create mode 100644 pkg/zlib.go diff --git a/cmd/properties/folder.proto b/cmd/properties/folder.proto index 5e3185e..72c61a5 100644 --- a/cmd/properties/folder.proto +++ b/cmd/properties/folder.proto @@ -21,4 +21,5 @@ option go_package = "github.com/mooijtech/go-pst;properties"; message Folder { string name = 1; + string has_subfolders = 2; } \ No newline at end of file diff --git a/cmd/properties/generate.go b/cmd/properties/generate.go index ebe9903..e252753 100644 --- a/cmd/properties/generate.go +++ b/cmd/properties/generate.go @@ -37,48 +37,52 @@ import ( // main starts the Protocol Buffers generation. func main() { + // Download [MS-OXPROPS]. downloadedFile, err := download() if err != nil { - panic(fmt.Sprintf("Failed to download [MS-OXPROPS].docx: %+v", errors.WithStack(err))) + panic(fmt.Sprintf("Failed to download [MS-OXPROPS].docx: %+v", err)) } defer func() { if err = os.Remove(downloadedFile); err != nil { - panic(fmt.Sprintf("Failed to remove [MS-OXPROPS].docx: %+v", errors.WithStack(err))) + panic(fmt.Sprintf("Failed to remove [MS-OXPROPS].docx: %+v", err)) } }() // TODO - Verify hash. + // Unzip as .DOCX is actually just zipped XML. unzippedFile, err := unzip(downloadedFile) if err != nil { - panic(fmt.Sprintf("Failed to unzip [MS-OXPROPS].docx: %+v", errors.WithStack(err))) + panic(fmt.Sprintf("Failed to unzip [MS-OXPROPS].docx: %+v", err)) } defer func() { if err = os.Remove(unzippedFile); err != nil { - panic(fmt.Sprintf("Failed to remove unzipped file [MS-OXPROPS].xml: %+v", errors.WithStack(err))) + panic(fmt.Sprintf("Failed to remove unzipped file [MS-OXPROPS].xml: %+v", err)) } }() + // Get all defined properties. properties, err := getPropertiesFromXML(unzippedFile) if err != nil { panic(fmt.Sprintf("Failed to create properties: %+v", errors.WithStack(err))) } + // Create .proto files from the defined properties. if err = generateProtocolBuffers(properties); err != nil { panic(fmt.Sprintf("Failed to generate Protocol Buffers: %+v", errors.WithStack(err))) } - // TODO - Check if exists. + // Create a property map used by go-pst to map values from the Property Context to their Property Type. // Write property map. propertyMap, err := os.Create("properties.csv") if err != nil { - panic(errors.WithStack(err)) + panic(fmt.Sprintf("Failed to create output file: %+v", err)) } propertyMapWriter := csv.NewWriter(propertyMap) @@ -103,15 +107,19 @@ func main() { propertyMapWriter.Flush() // Important since writes are buffered. if propertyMapWriter.Error() != nil { - panic(errors.WithStack(propertyMapWriter.Error())) + panic(fmt.Sprintf("Failed to write property map: %+v", propertyMapWriter.Error())) } else if err := propertyMap.Close(); err != nil { - panic(errors.WithStack(err)) + panic(fmt.Sprintf("Failed to close property map: %+v", err)) } // TODO - Validate properties exist, parse DOCX in the same way: // TODO - [MS-OXCMSG]: Message and Attachment Object Protocol // TODO - [MS-OXCFOLD]: Folder Object Protocol and + // TODO - See referenceToProtocolBufferMessageType for mappings. // TODO - Extend properties.Folder to include everything in [MS-OXCFOLD]: Folder Object Protocol. + //for downloadName, downloadURL := referenceToProtocolBufferMessageType { + // TODO - Download and apply same parser logic. + //} } // download the latest version of [MS-OXPROPS].docx and returns the downloaded file. @@ -459,42 +467,106 @@ var propertyTypeToProtocolBufferFieldType = map[uint16]string{ // areaNameToProtocolBufferMessageType defines the mapping from area names to Protocol Buffer Message Types. // TODO - Layer on top of "Common" area name, check the defining reference then sort accordingly. var areaNameToProtocolBufferMessageType = map[string]string{ - "Sharing": "Sharing", - "Extracted Entities": "Extracted Entity", - "Unified Messaging": "Voicemail", - "Email": "Message", - "Journal": "Journal", - "Tasks": "Task", - "RSS": "RSS", - "Meetings": "Appointment", - "Calendar": "Appointment", - "Conferencing": "Appointment", - "Spam": "Spam", - "Reminders": "Appointment", - "General Message Properties": "Message", - "Message Properties": "Message", - "Message Time Properties": "Message", - "Message Attachment Properties": "Attachment", - "Sticky Notes": "Note", - "Secure Messaging Properties": "Message", // [MS-OXORMMS]: Rights-Managed Email Object Protocol. - "SMS": "SMS", // [MS-OXOSMMS]: Short Message Service (SMS) and Multimedia Messaging Service (MMS) Object Protocol. - "Contact Properties": "Contact", - "MapiMailUser": "Contact", - "Address Book": "Address Book", // [MS-OXOABK]: Address Book Object Protocol. - "MapiAddressBook": "Address Book", - "Free/Busy Properties": "Appointment", - "Archive": "Message", - "MapiRecipient": "Message", - "MIME Properties": "Message", - "Address Properties": "Message", + "Sharing": "Sharing", + "Extracted Entities": "Extracted Entity", + "Unified Messaging": "Voicemail", + "Email": "Message", + "Journal": "Journal", + "Tasks": "Task", + "RSS": "RSS", + "Meetings": "Appointment", + "Calendar": "Appointment", + "Conferencing": "Appointment", + "Spam": "Spam", + "Reminders": "Appointment", + "General Message Properties": "Message", + "Message Properties": "Message", + "Message Time Properties": "Message", + "Message Attachment Properties": "Attachment", + "Sticky Notes": "Note", + "Secure Messaging Properties": "Message", // [MS-OXORMMS]: Rights-Managed Email Object Protocol. + "SMS": "SMS", // [MS-OXOSMMS]: Short Message Service (SMS) and Multimedia Messaging Service (MMS) Object Protocol. + "Contact Properties": "Contact", + "MapiMailUser": "Contact", + "Address Book": "Address Book", // [MS-OXOABK]: Address Book Object Protocol. + "MapiAddressBook": "Address Book", + "Free/Busy Properties": "Appointment", + "Archive": "Message", + "MapiRecipient": "Message", + "MIME Properties": "Message", + "Address Properties": "Message", + "Common": "Message", + "Access Control Properties": "Message", + "Outlook Application": "Message", + "Address book": "Address Book", + "History Properties": "Message", + "Sync": "Message", + "ICS": "Message", + "Folder Properties": "Folder", + "Conversations": "Message", + "Configuration": "Message", + "Miscellaneous Properties": "Message", + "MapiNonTransmittable": "Message", + "Logon Properties": "Message", + "Mail": "Message", + "MessageClassDefinedTransmittable": "Message", + "MapiMessageStore": "Message", // TODO - Message Store? + "ExchangeMessageStore": "Message", // TODO - Message Store? + "Message Store Properties": "Message", + "Appointment": "Appointment", + "MapiEnvelope": "Message", + "ExchangeNonTransmittableReserved": "Message", + "Exchange Administrative": "Message", + "TransportEnvelope": "Message", + "MapiNonTransmittable Property set": "Message", + "MapiContainer": "Message", + "MapiAttachment": "Attachment", + "Rules": "Message", + "MapiStatus": "Message", + "Server-Side Rules Properties": "Message", + "ID Properties": "Message", + "AB Container": "Message", + "Search": "Message", + "MapiEnvelope Property set": "Message", + "Transport Envelope": "Message", + "Common Property set": "Message", + "Conflict Note": "Message", + "Table Properties": "Message", + "MAPI Display Tables": "Message", + "Server": "Message", + "General Report Properties": "Message", + "Run-time configuration": "Message", + "Meeting Response": "Meeting", // TODO - Meeting? + "Calendar Property set": "Message", // TODO - Calendar? + "Site Mailbox": "Message", + "Flagging": "Message", + "Offline Address Book Properties": "Address Book", + "MIME properties": "Message", + "BestBody": "Message", + "TransportRecipient": "Message", + "ExchangeAdministrative": "Message", + "ProviderDefinedNonTransmittable": "Message", + "MapiMessage": "Message", + "MapiCommon": "Message", + "ExchangeFolder": "Folder", + "ExchangeMessageReadOnly": "Message", + "Message Class Defined Transmittable": "Message", } // referenceToProtocolBufferMessageType maps the defining reference prefix to the message type. // Preferred over area name mapping. +// TODO - Use these documents directly :) var referenceToProtocolBufferMessageType = map[string]string{ - "[MS-OXOMSG]": "Message", + // References https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxomsg/daa9120f-f325-4afb-a738-28f91049ab3c + "[MS-OXOMSG]": "Message", + // References https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxocntc/9b636532-9150-4836-9635-9c9b756c9ccf "[MS-OXOCNTC]": "Contact", - "[MS-OXOCAL]": "Appointment", + // References https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxocal/09861fde-c8e4-4028-9346-e7c214cfdba1 + "[MS-OXOCAL]": "Appointment", + // References https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxcfold/c0f31b95-c07f-486c-98d9-535ed9705fbf + "[MS-OXCFOLD]": "Folder", + // References + "[MS-OXOABK]": "Address Book Object Protocol", } //go:embed header.txt @@ -517,6 +589,7 @@ func generateProtocolBuffers(properties []xmlProperty) error { if protocolBufferMessageType == "" { // We need to map this. fmt.Printf("Unmapped area name \"%s\", defining reference: %s\n", property.AreaName, property.DefiningReference) + fmt.Println("Writing to unknown...") } else { protocolBufferBuilder := protocolBufferMessageTypeToBuilder[protocolBufferMessageType] diff --git a/cmd/properties/go.mod b/cmd/properties/go.mod index 50a88c4..15c9d25 100644 --- a/cmd/properties/go.mod +++ b/cmd/properties/go.mod @@ -2,4 +2,7 @@ module github.com/mooijtech/go-pst/generate/properties go 1.19 -require github.com/pkg/errors v0.9.1 +require ( + github.com/pkg/errors v0.9.1 + github.com/rotisserie/eris v0.5.4 +) diff --git a/cmd/properties/go.sum b/cmd/properties/go.sum index 7c401c3..d13fa72 100644 --- a/cmd/properties/go.sum +++ b/cmd/properties/go.sum @@ -1,2 +1,4 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/rotisserie/eris v0.5.4 h1:Il6IvLdAapsMhvuOahHWiBnl1G++Q0/L5UIkI5mARSk= +github.com/rotisserie/eris v0.5.4/go.mod h1:Z/kgYTJiJtocxCbFfvRmO+QejApzG6zpyky9G1A4g9s= diff --git a/cmd/properties/protobufs/address_book.proto b/cmd/properties/protobufs/address_book.proto index f1d9aa1..a44dd0f 100644 --- a/cmd/properties/protobufs/address_book.proto +++ b/cmd/properties/protobufs/address_book.proto @@ -35,79 +35,89 @@ message AddressBook { // Contains the total number of recipients in the distribution list. optional int32 address_book_distribution_list_member_count = 8; // @gotags: msg:"36066-3,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute1 = 12; // @gotags: msg:"32813-31,omitempty" + optional string address_book_extension_attribute1 = 13; // @gotags: msg:"32813-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute10 = 13; // @gotags: msg:"32822-31,omitempty" + optional string address_book_extension_attribute10 = 14; // @gotags: msg:"32822-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute11 = 14; // @gotags: msg:"35927-31,omitempty" + optional string address_book_extension_attribute11 = 15; // @gotags: msg:"35927-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute12 = 15; // @gotags: msg:"35928-31,omitempty" + optional string address_book_extension_attribute12 = 16; // @gotags: msg:"35928-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute13 = 16; // @gotags: msg:"35929-31,omitempty" + optional string address_book_extension_attribute13 = 17; // @gotags: msg:"35929-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute14 = 17; // @gotags: msg:"35936-31,omitempty" + optional string address_book_extension_attribute14 = 18; // @gotags: msg:"35936-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute15 = 18; // @gotags: msg:"35937-31,omitempty" + optional string address_book_extension_attribute15 = 19; // @gotags: msg:"35937-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute2 = 19; // @gotags: msg:"32814-31,omitempty" + optional string address_book_extension_attribute2 = 20; // @gotags: msg:"32814-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute3 = 20; // @gotags: msg:"32815-31,omitempty" + optional string address_book_extension_attribute3 = 21; // @gotags: msg:"32815-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute4 = 21; // @gotags: msg:"32816-31,omitempty" + optional string address_book_extension_attribute4 = 22; // @gotags: msg:"32816-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute5 = 22; // @gotags: msg:"32817-31,omitempty" + optional string address_book_extension_attribute5 = 23; // @gotags: msg:"32817-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute6 = 23; // @gotags: msg:"32818-31,omitempty" + optional string address_book_extension_attribute6 = 24; // @gotags: msg:"32818-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute7 = 24; // @gotags: msg:"32819-31,omitempty" + optional string address_book_extension_attribute7 = 25; // @gotags: msg:"32819-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute8 = 25; // @gotags: msg:"32820-31,omitempty" + optional string address_book_extension_attribute8 = 26; // @gotags: msg:"32820-31,omitempty" // Contains custom values defined and populated by the organization that modified the display templates. - optional string address_book_extension_attribute9 = 26; // @gotags: msg:"32821-31,omitempty" + optional string address_book_extension_attribute9 = 27; // @gotags: msg:"32821-31,omitempty" // This property is deprecated and is to be ignored. - optional string address_book_folder_pathname = 27; // @gotags: msg:"32772-31,omitempty" + optional string address_book_folder_pathname = 28; // @gotags: msg:"32772-31,omitempty" // Indicates whether the distribution list represents a departmental group. - optional bool address_book_hierarchical_is_hierarchical_group = 30; // @gotags: msg:"36061-11,omitempty" + optional bool address_book_hierarchical_is_hierarchical_group = 31; // @gotags: msg:"36061-11,omitempty" // Contains the distinguished name (DN) of either the root Department object or the root departmental group in the department hierarchy for the organization. - optional string address_book_hierarchical_root_department = 32; // @gotags: msg:"35992-30,omitempty" + optional string address_book_hierarchical_root_department = 33; // @gotags: msg:"35992-30,omitempty" // Contains the DN expressed in the X500 DN format. This property is returned from a name service provider interface (NSPI) server as a PtypEmbeddedTable. Otherwise, the data type is PtypString8. - optional string address_book_home_message_database = 34; // @gotags: msg:"32774-30,omitempty" + optional string address_book_home_message_database = 35; // @gotags: msg:"32774-30,omitempty" // Contains a Boolean value of TRUE if it is possible to create Address Book objects in that container, and FALSE otherwise. - optional bool address_book_is_master = 35; // @gotags: msg:"65531-11,omitempty" + optional bool address_book_is_master = 36; // @gotags: msg:"65531-11,omitempty" // Lists all of the distribution lists for which the object is a member. This property is returned from an NSPI server as a PtypEmbeddedTable. Otherwise, the data type is PtypString8. - optional string address_book_is_member_of_distribution_list = 36; // @gotags: msg:"32776-30,omitempty" + optional string address_book_is_member_of_distribution_list = 37; // @gotags: msg:"32776-30,omitempty" // Contains the DN of the mail user's manager. - optional string address_book_manager_distinguished_name = 39; // @gotags: msg:"32773-31,omitempty" + optional string address_book_manager_distinguished_name = 40; // @gotags: msg:"32773-31,omitempty" // Indicates whether moderation is enabled for the mail user or distribution list. - optional bool address_book_moderation_enabled = 41; // @gotags: msg:"36021-11,omitempty" + optional bool address_book_moderation_enabled = 42; // @gotags: msg:"36021-11,omitempty" // Contains the DN of the Address Book object. - optional string address_book_object_distinguished_name = 43; // @gotags: msg:"32828-31,omitempty" + optional string address_book_object_distinguished_name = 44; // @gotags: msg:"32828-31,omitempty" // Contains the DN of the Organization object of the mail user's organization. - optional string address_book_organizational_unit_root_distinguished_name = 45; // @gotags: msg:"36008-31,omitempty" + optional string address_book_organizational_unit_root_distinguished_name = 46; // @gotags: msg:"36008-31,omitempty" // Contains the phonetic representation of the PidTagCompanyName property (section 2.639). - optional string address_book_phonetic_company_name = 49; // @gotags: msg:"35985-31,omitempty" + optional string address_book_phonetic_company_name = 50; // @gotags: msg:"35985-31,omitempty" // Contains the phonetic representation of the PidTagDepartmentName property (section 2.672). - optional string address_book_phonetic_department_name = 50; // @gotags: msg:"35984-31,omitempty" + optional string address_book_phonetic_department_name = 51; // @gotags: msg:"35984-31,omitempty" // Contains the phonetic representation of the PidTagDisplayName property (section 2.676). - optional string address_book_phonetic_display_name = 51; // @gotags: msg:"35986-31,omitempty" + optional string address_book_phonetic_display_name = 52; // @gotags: msg:"35986-31,omitempty" // Contains the phonetic representation of the PidTagGivenName property (section 2.714). - optional string address_book_phonetic_given_name = 52; // @gotags: msg:"35982-31,omitempty" + optional string address_book_phonetic_given_name = 53; // @gotags: msg:"35982-31,omitempty" // Contains the phonetic representation of the PidTagSurname property (section 2.1036). - optional string address_book_phonetic_surname = 53; // @gotags: msg:"35983-31,omitempty" + optional string address_book_phonetic_surname = 54; // @gotags: msg:"35983-31,omitempty" // Contains the maximum occupancy of the room. - optional int32 address_book_room_capacity = 57; // @gotags: msg:"2055-3,omitempty" + optional int32 address_book_room_capacity = 58; // @gotags: msg:"2055-3,omitempty" // Contains a description of the Resource object. - optional string address_book_room_description = 59; // @gotags: msg:"2057-31,omitempty" + optional string address_book_room_description = 60; // @gotags: msg:"2057-31,omitempty" // Contains a signed integer that specifies the seniority order of Address Book objects that represent members of a department and are referenced by a Department object or departmental group, with larger values specifying members that are more senior. - optional int32 address_book_seniority_index = 61; // @gotags: msg:"36000-3,omitempty" + optional int32 address_book_seniority_index = 62; // @gotags: msg:"36000-3,omitempty" // Contains the foreign system email address of an Address Book object. - optional string address_book_target_address = 62; // @gotags: msg:"32785-31,omitempty" + optional string address_book_target_address = 63; // @gotags: msg:"32785-31,omitempty" // Contains a filter value used in ambiguous name resolution. - optional string anr = 65; // @gotags: msg:"13836-31,omitempty" + optional string anr = 66; // @gotags: msg:"13836-31,omitempty" // Contains a bitmask of flags that describe capabilities of an address book container. - optional int32 container_flags = 66; // @gotags: msg:"13824-3,omitempty" + optional int32 container_flags = 67; // @gotags: msg:"13824-3,omitempty" // Contains an integer value that indicates how to display an Address Book object in a table or as an addressee on a message. - optional int32 display_type = 67; // @gotags: msg:"14592-3,omitempty" + optional int32 display_type = 68; // @gotags: msg:"14592-3,omitempty" // Contains an integer value that indicates how to display an Address Book object in a table or as a recipient on a message. - optional int32 display_type_ex = 68; // @gotags: msg:"14597-3,omitempty" + optional int32 display_type_ex = 69; // @gotags: msg:"14597-3,omitempty" + // A string-formatted GUID that represents the address list container object. + optional string offline_address_book_container_guid = 70; // @gotags: msg:"26626-30,omitempty" + // Contains the DN of the address list that is contained in the OAB message. + optional string offline_address_book_distinguished_name = 71; // @gotags: msg:"26628-30,omitempty" + // Contains the message class for full OAB messages. + optional int32 offline_address_book_message_class = 72; // @gotags: msg:"26627-3,omitempty" + // Contains the display name of the address list. + optional string offline_address_book_name = 73; // @gotags: msg:"26624-31,omitempty" + // Contains the sequence number of the OAB. + optional int32 offline_address_book_sequence = 74; // @gotags: msg:"26625-3,omitempty" } diff --git a/cmd/properties/protobufs/appointment.proto b/cmd/properties/protobufs/appointment.proto index ea3bdc2..12b0779 100644 --- a/cmd/properties/protobufs/appointment.proto +++ b/cmd/properties/protobufs/appointment.proto @@ -244,20 +244,22 @@ message Appointment { optional int64 i_calendar_end_time = 122; // @gotags: msg:"4292-64,omitempty" // Contains the date and time, in UTC, for the activation of the next reminder. optional int64 i_calendar_reminder_next_time = 123; // @gotags: msg:"4298-64,omitempty" + // Specifies a quasi-unique value among all of the Calendar objects in a user's mailbox. + optional int32 owner_appointment_id = 124; // @gotags: msg:"98-3,omitempty" // Indicates whether a client has already processed a received task communication. - optional bool processed = 124; // @gotags: msg:"32001-11,omitempty" + optional bool processed = 125; // @gotags: msg:"32001-11,omitempty" // Indicates whether a client or server is to automatically respond to all meeting requests for the attendee or resource. - optional bool schedule_info_auto_accept_appointments = 126; // @gotags: msg:"26733-11,omitempty" + optional bool schedule_info_auto_accept_appointments = 127; // @gotags: msg:"26733-11,omitempty" // Indicates whether the delegator wants to receive copies of the meeting-related objects that are sent to the delegate. - optional bool schedule_info_delegator_wants_copy = 130; // @gotags: msg:"26690-11,omitempty" + optional bool schedule_info_delegator_wants_copy = 131; // @gotags: msg:"26690-11,omitempty" // Indicates whether the delegator wants to receive informational updates. - optional bool schedule_info_delegator_wants_info = 131; // @gotags: msg:"26699-11,omitempty" + optional bool schedule_info_delegator_wants_info = 132; // @gotags: msg:"26699-11,omitempty" // Indicates whether a client or server, when automatically responding to meeting requests, is to decline Meeting Request objects that overlap with previously scheduled events. - optional bool schedule_info_disallow_overlapping_appts = 132; // @gotags: msg:"26735-11,omitempty" + optional bool schedule_info_disallow_overlapping_appts = 133; // @gotags: msg:"26735-11,omitempty" // Indicates whether a client or server, when automatically responding to meeting requests, is to decline Meeting Request objects that represent a recurring series. - optional bool schedule_info_disallow_recurring_appts = 133; // @gotags: msg:"26734-11,omitempty" + optional bool schedule_info_disallow_recurring_appts = 134; // @gotags: msg:"26734-11,omitempty" // Contains a value set to TRUE by the client, regardless of user input. - optional bool schedule_info_dont_mail_delegates = 134; // @gotags: msg:"26691-11,omitempty" + optional bool schedule_info_dont_mail_delegates = 135; // @gotags: msg:"26691-11,omitempty" // Set to 0x00000000 when sending and is ignored on receipt. - optional int32 schedule_info_resource_type = 144; // @gotags: msg:"26689-3,omitempty" + optional int32 schedule_info_resource_type = 145; // @gotags: msg:"26689-3,omitempty" } diff --git a/cmd/properties/protobufs/attachment.proto b/cmd/properties/protobufs/attachment.proto index 4ade481..e8df2c5 100644 --- a/cmd/properties/protobufs/attachment.proto +++ b/cmd/properties/protobufs/attachment.proto @@ -64,6 +64,8 @@ message Attachment { optional int32 attach_size = 27; // @gotags: msg:"3616-3,omitempty" // Contains the name of an attachment file, modified so that it can be correlated with TNEF messages. optional string attach_transport_name = 29; // @gotags: msg:"14092-31,omitempty" + // Represents an offset, in rendered characters, to use when rendering an attachment within the main message text. + optional int32 rendering_position = 31; // @gotags: msg:"14091-3,omitempty" // Specifies the character set of an attachment received via MIME with the content-type of text. - optional string text_attachment_charset = 31; // @gotags: msg:"14107-31,omitempty" + optional string text_attachment_charset = 32; // @gotags: msg:"14107-31,omitempty" } diff --git a/cmd/properties/protobufs/folder.proto b/cmd/properties/protobufs/folder.proto new file mode 100644 index 0000000..2490b41 --- /dev/null +++ b/cmd/properties/protobufs/folder.proto @@ -0,0 +1,35 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:generate msgp -tests=false + +syntax = "proto3"; +option go_package = "github.com/mooijtech/go-pst;properties"; + +message Folder { + // Specifies the number of rows under the header row. + optional int32 content_count = 1; // @gotags: msg:"13826-3,omitempty" + // Specifies the number of rows under the header row that have the PidTagRead property (section 2.878) set to FALSE. + optional int32 content_unread_count = 2; // @gotags: msg:"13827-3,omitempty" + // Specifies the time, in UTC, when the item or folder was soft deleted. + optional int64 deleted_on = 3; // @gotags: msg:"26255-64,omitempty" + // Indicates whether a Folder object has rules. + optional bool has_rules = 4; // @gotags: msg:"26170-11,omitempty" + // Contains a number that monotonically increases every time a subfolder is added to, or deleted from, this folder. + optional int32 hierarchy_change_number = 5; // @gotags: msg:"26174-3,omitempty" + // Specifies a user's folder permissions. + optional int32 rights = 12; // @gotags: msg:"26169-3,omitempty" +} diff --git a/cmd/reader.go b/cmd/properties/protobufs/meeting.proto similarity index 69% rename from cmd/reader.go rename to cmd/properties/protobufs/meeting.proto index 8e1bc2a..a4cd1c7 100644 --- a/cmd/reader.go +++ b/cmd/properties/protobufs/meeting.proto @@ -14,8 +14,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -package main +//go:generate msgp -tests=false -func main() { +syntax = "proto3"; +option go_package = "github.com/mooijtech/go-pst;properties"; +message Meeting { + // Indicates that the Meeting Response object was out-of-date when it was received. + optional bool prompt_send_update = 1; // @gotags: msg:"262277-11,omitempty" } diff --git a/cmd/properties/protobufs/message.proto b/cmd/properties/protobufs/message.proto index 0ff888b..bf6c978 100644 --- a/cmd/properties/protobufs/message.proto +++ b/cmd/properties/protobufs/message.proto @@ -20,276 +20,730 @@ syntax = "proto3"; option go_package = "github.com/mooijtech/go-pst;properties"; message Message { + // Specifies whether to automatically archive the message. + optional bool aging_dont_age_me = 1; // @gotags: msg:"267278-11,omitempty" // Specifies the options used in the automatic processing of email messages. - optional int32 auto_process_state = 1; // @gotags: msg:"267306-3,omitempty" + optional int32 auto_process_state = 2; // @gotags: msg:"267306-3,omitempty" // Specifies billing information for the contact. - optional string billing = 2; // @gotags: msg:"267365-31,omitempty" + optional string billing = 3; // @gotags: msg:"267365-31,omitempty" // Contains a list of the classification categories to which the associated Message object has been assigned. - optional string classification = 3; // @gotags: msg:"267622-31,omitempty" + optional string classification = 5; // @gotags: msg:"267622-31,omitempty" // Contains a human-readable summary of each of the classification categories included in the PidLidClassification property (section 2.53). - optional string classification_description = 4; // @gotags: msg:"267623-31,omitempty" + optional string classification_description = 6; // @gotags: msg:"267623-31,omitempty" // Contains the GUID that identifies the list of email classification categories used by a Message object. - optional string classification_guid = 5; // @gotags: msg:"267624-31,omitempty" + optional string classification_guid = 7; // @gotags: msg:"267624-31,omitempty" // Indicates whether the message uses any classification categories. - optional bool classification_keep = 6; // @gotags: msg:"267626-11,omitempty" + optional bool classification_keep = 8; // @gotags: msg:"267626-11,omitempty" // Indicates whether the contents of this message are regarded as classified information. - optional bool classified = 7; // @gotags: msg:"267621-11,omitempty" + optional bool classified = 9; // @gotags: msg:"267621-11,omitempty" // Indicates the end time for the Message object. - optional int64 common_end = 8; // @gotags: msg:"267303-64,omitempty" + optional int64 common_end = 10; // @gotags: msg:"267303-64,omitempty" // Indicates the start time for the Message object. - optional int64 common_start = 9; // @gotags: msg:"267302-64,omitempty" + optional int64 common_start = 11; // @gotags: msg:"267302-64,omitempty" // Specifies the build number of the client application that sent the message. - optional int32 current_version = 12; // @gotags: msg:"267426-3,omitempty" + optional int32 current_version = 14; // @gotags: msg:"267426-3,omitempty" // Specifies the name of the client application that sent the message. - optional string current_version_name = 13; // @gotags: msg:"267428-31,omitempty" + optional string current_version_name = 15; // @gotags: msg:"267428-31,omitempty" + // Contains user-specifiable text to be associated with the flag. + optional string flag_request = 16; // @gotags: msg:"267360-31,omitempty" + // Contains the name of the form associated with this message. + optional string info_path_form_name = 17; // @gotags: msg:"267617-31,omitempty" // Specifies the user-visible email account name through which the email message is sent. - optional string internet_account_name = 14; // @gotags: msg:"267520-31,omitempty" + optional string internet_account_name = 18; // @gotags: msg:"267520-31,omitempty" // Specifies the email account ID through which the email message is sent. - optional string internet_account_stamp = 15; // @gotags: msg:"267521-31,omitempty" + optional string internet_account_stamp = 19; // @gotags: msg:"267521-31,omitempty" + // Specifies the synchronization state of the Document object that is in the Document Libraries folder of the site mailbox. + optional int32 pending_state_for_site_mailbox_document = 23; // @gotags: msg:"267712-3,omitempty" // Indicates whether the end user wishes for this Message object to be hidden from other users who have access to the Message object. - optional bool private = 19; // @gotags: msg:"267270-11,omitempty" + optional bool private = 24; // @gotags: msg:"267270-11,omitempty" + // Indicates the remote status of the calendar item. + optional int32 remote_status = 25; // @gotags: msg:"267297-3,omitempty" + // Specifies how a Message object is handled by the client in relation to certain user interface actions by the user, such as deleting a message. + optional int32 side_effects = 26; // @gotags: msg:"267296-3,omitempty" + // Indicates whether the Message object has no end-user visible attachments. + optional bool smart_no_attach = 27; // @gotags: msg:"267300-11,omitempty" + // Specifies whether Transport Neutral Encapsulation Format (TNEF) is to be included on a message when the message is converted from TNEF to MIME or SMTP format. + optional bool use_tnef = 28; // @gotags: msg:"267522-11,omitempty" // Specifies the voting option that a respondent has selected. - optional string verb_response = 20; // @gotags: msg:"267332-31,omitempty" + optional string verb_response = 29; // @gotags: msg:"267332-31,omitempty" // Contains the value of the MIME Accept-Language header. - optional string accept_language = 21; + optional string accept_language = 31; + // Specifies the application used to open the file attached to the Document object. + optional string application_name = 32; + // Specifies the author of the file attached to the Document object. + optional string author = 33; + // Specifies the size, in bytes, of the file attached to the Document object. + optional int32 byte_count = 34; + // Specifies the role of the attendee. + optional int32 calendar_attendee_role = 35; + // Specifies whether the attendee is busy at the time of an appointment on their calendar. + optional string calendar_busystatus = 36; + // Identifies the name of a contact who is an attendee of a meeting. + optional string calendar_contact = 37; + // Identifies the URL where you can access contact information in HTML format. + optional string calendar_contact_url = 38; + // Identifies the date and time, in UTC, when the organizer created the appointment or meeting. + optional int64 calendar_created = 39; + // Specifies the URL of a resource that contains a description of an appointment or meeting. + optional string calendar_description_url = 40; + // Identifies the duration, in seconds, of an appointment or meeting. + optional int32 calendar_duration = 41; + // Specifies the geographical latitude of the location of an appointment. + optional double calendar_geo_latitude = 44; + // Specifies the geographical longitude of the location of an appointment. + optional double calendar_geo_longitude = 45; + // Specifies the type of an appointment. + optional int32 calendar_instance_type = 46; + // Specifies whether an attendee is the organizer of an appointment or meeting. + optional bool calendar_is_organizer = 47; + // Specifies the date and time, in UTC, when an appointment was last modified. + optional int64 calendar_last_modified = 48; + // Specifies a URL with location information in HTML format. + optional string calendar_location_url = 49; + // Specifies the status of an appointment or meeting. + optional string calendar_meeting_status = 50; + // Specifies the iCalendar method that is associated with an Appointment object. + optional string calendar_method = 51; + // Identifies the product that created the iCalendar-formatted stream. + optional string calendar_product_id = 52; + // Specifies which instances of a recurring appointment are being referred to. + optional string calendar_recurrence_id_range = 53; + // Identifies the number of seconds before an appointment starts that a reminder is to be displayed. + optional int32 calendar_reminder_offset = 54; + // Identifies a list of resources, such as rooms and video equipment, that are available for an appointment. + optional string calendar_resources = 55; + // Specifies whether the organizer of an appointment or meeting requested a response. + optional bool calendar_rsvp = 56; + // Specifies the sequence number of a version of an appointment. + optional int32 calendar_sequence = 57; + // Specifies the time zone of an appointment or meeting. + optional string calendar_time_zone = 58; + // Specifies the time zone identifier of an appointment or meeting. + optional int32 calendar_time_zone_id = 59; + // Specifies whether an appointment or meeting is visible to busy time searches. + optional string calendar_transparent = 60; + // Specifies the unique identifier of an appointment or meeting. + optional string calendar_uid = 61; + // Identifies the version of the iCalendar specification, as specified in [MS-OXCICAL] section 2.1.3.1.1.3, that is required to correctly interpret an iCalendar object. + optional string calendar_version = 62; + // Specifies the category of the file attached to the Document object. + optional string category = 63; + // Specifies the character count of the file attached to the Document object. + optional int32 character_count = 64; + // Specifies the comments of the file attached to the Document object. + optional string comments = 65; + // Specifies the company for which the file was created. + optional string company = 66; // Specifies the value of the MIME Content-Base header, which defines the base URI for resolving relative URLs contained within the message body. - optional string content_base = 22; + optional string content_base = 67; // Contains a string that identifies the type of content of a Message object. - optional string content_class = 23; + optional string content_class = 68; // Specifies the type of the body part content. - optional string content_type = 24; + optional string content_type = 69; + // Specifies the time, in UTC, that the file was first created. + optional int64 create_date_time_read_only = 70; // Contains the name of the host (with domains omitted) and a white-space-separated list of colon-separated pairs of newsgroup names and message numbers. - optional string cross_reference = 25; + optional string cross_reference = 71; + // Specifies a unique ID for the calendar item. + optional string dav_id = 72; + // Indicates whether a Calendar object is a collection. + optional bool dav_is_collection = 73; + // Indicates whether a Calendar object is a structured document. + optional bool dav_is_structured_document = 74; + // Specifies the name of the Folder object that contains the Calendar object. + optional string dav_parent_name = 75; + // Specifies the unique identifier for an item. + optional string dav_uid = 76; + // Specifies the time that the file was last edited. + optional string edit_time = 78; + // Specifies the intended free/busy status of a meeting in a Meeting request. + optional string exchange_intended_busy_status = 79; // Indicates that the message is not to be processed by a spam filter. - optional int32 exchange_junk_email_move_stamp = 26; + optional int32 exchange_junk_email_move_stamp = 80; + // Indicates whether exceptions to a recurring appointment can be modified. + optional bool exchange_no_modify_exceptions = 82; + // Identifies the maximum time when an instance of a recurring appointment ends. + optional int64 exchange_pattern_end = 83; + // Identifies the absolute minimum time when an instance of a recurring appointment starts. + optional int64 exchange_pattern_start = 84; + // Identifies the time, in seconds, between reminders. + optional int32 exchange_reminder_interval = 85; + // Specifies an array of names that indicates the expected content classes of items within a folder. + optional string exch_data_schema_collection_reference = 88; // Specifies the SMTP email alias of the organizer of an appointment or meeting. - optional string from = 27; + optional string from = 89; + // Specifies the hidden value of the file attached to the Document object. + optional int32 hidden_count = 91; + // Specifies the URL for the Calendar folder for a particular user. + optional string httpmail_calendar = 92; + // Specifies the HTML content of the message. + optional string httpmail_html_description = 93; + // Specifies the email submission URI to which outgoing email is submitted. + optional string httpmail_send_message = 94; // Specifies the subject of the message. - optional string internet_subject = 28; + optional string internet_subject = 97; + // Specifies the most recent author of the file attached to the Document object. + optional string last_author = 99; + // Specifies the time, in UTC, that the file was last printed. + optional int64 last_printed = 100; + // Specifies the time, in UTC, that the file was last saved. + optional int64 last_save_date_time = 101; + // Specifies the number of lines in the file attached to the Document object. + optional int32 line_count = 102; + // Indicates whether the links in the document are up-to-date. + optional bool links_dirty = 103; + // Specifies the manager of the file attached to the Document object. + optional string manager = 104; // Contains the string that specifies the CLP label information. - optional string msip_labels = 30; + optional string msip_labels = 105; + // Specifies the number of multimedia clips in the file attached to the Document object. + optional int32 multimedia_clip_count = 106; + // Specifies the number of notes in the file attached to the Document object. + optional int32 note_count = 107; + // Specifies the page count of the file attached to the Document object. + optional int32 page_count = 108; + // Specifies the number of paragraphs in the file attached to the Document object. + optional int32 paragraph_count = 109; // Indicates whether a message is likely to be phishing. - optional int32 phishing_stamp = 31; + optional int32 phishing_stamp = 110; + // Specifies the presentation format of the file attached to the Document object. + optional string presentation_format = 111; + // Specifies the original sender of a message. + optional string quarantine_original_sender = 112; + // Specifies the revision number of the file attached to the Document object. + optional string revision_number = 113; + // Indicates whether the image is to be scaled or cropped. + optional bool scale = 115; + // Specifies the security level of the file attached to the Document object. + optional int32 security = 116; + // Specifies the number of slides in the file attached to the Document object. + optional int32 slide_count = 117; + // Specifies the subject of the file attached to the Document object. + optional string subject = 118; + // Specifies the template of the file attached to the Document object. + optional string template = 119; + // Specifies the title of the file attached to the Document object. + optional string title = 121; + // Specifies the word count of the file attached to the Document object. + optional int32 word_count = 122; + // Indicates the operations available to the client for the object. + optional int32 access = 123; // @gotags: msg:"4084-3,omitempty" + // Indicates the client's access level to the object. + optional int32 access_level = 125; // @gotags: msg:"4087-3,omitempty" + // Contains the Short-term Message ID (MID) ([MS-OXCDATA] section 2.2.1.2) of the first message in the local site's offline address book public folder. + optional double address_book_message_id = 128; // @gotags: msg:"26447-20,omitempty" // Contains the email address type of a Message object. - optional string address_type = 33; // @gotags: msg:"12290-31,omitempty" + optional string address_type = 129; // @gotags: msg:"12290-31,omitempty" // Specifies whether the sender permits the message to be auto-forwarded. - optional bool alternate_recipient_allowed = 34; // @gotags: msg:"2-11,omitempty" + optional bool alternate_recipient_allowed = 130; // @gotags: msg:"2-11,omitempty" // Specifies the date, in UTC, after which a Message object is archived by the server. - optional int64 archive_date = 35; // @gotags: msg:"12319-64,omitempty" + optional int64 archive_date = 131; // @gotags: msg:"12319-64,omitempty" // Specifies the number of days that a Message object can remain unarchived. - optional int32 archive_period = 36; // @gotags: msg:"12318-3,omitempty" + optional int32 archive_period = 132; // @gotags: msg:"12318-3,omitempty" // Contains the name of the mail user's administrative assistant. - optional string assistant = 38; // @gotags: msg:"14896-31,omitempty" + optional string assistant = 134; // @gotags: msg:"14896-31,omitempty" // Contains the telephone number of the mail user's administrative assistant. - optional string assistant_telephone_number = 39; // @gotags: msg:"14894-31,omitempty" + optional string assistant_telephone_number = 135; // @gotags: msg:"14894-31,omitempty" + // Specifies whether the message being synchronized is an FAI message. + optional bool associated = 136; // @gotags: msg:"26538-11,omitempty" + // Contains the class name of an object that can display the contents of the message. + optional string attach_payload_class = 137; // @gotags: msg:"14106-31,omitempty" + // Contains the GUID of the software component that can display the contents of the message. + optional string attach_payload_provider_guid_string = 138; // @gotags: msg:"14105-31,omitempty" + // Specifies the hide or show status of a folder. + optional bool attribute_hidden = 139; // @gotags: msg:"4340-11,omitempty" + // Indicates whether an item can be modified or deleted. + optional bool attribute_read_only = 140; // @gotags: msg:"4342-11,omitempty" + // Contains text included in an automatically-generated message. + optional string auto_forward_comment = 141; // @gotags: msg:"4-31,omitempty" + // Indicates that a Message object has been automatically generated or automatically forwarded. + optional bool auto_forwarded = 142; // @gotags: msg:"5-11,omitempty" // Specifies whether a client or server application will forego sending automated replies in response to this message. - optional int32 auto_response_suppress = 40; // @gotags: msg:"16351-3,omitempty" + optional int32 auto_response_suppress = 143; // @gotags: msg:"16351-3,omitempty" // Indicates the user's preference for viewing external content (such as links to images on an HTTP server) in the message body. - optional int32 block_status = 41; // @gotags: msg:"4246-3,omitempty" + optional int32 block_status = 144; // @gotags: msg:"4246-3,omitempty" // Contains message body text in plain text format. - optional string body = 42; // @gotags: msg:"4096-31,omitempty" + optional string body = 145; // @gotags: msg:"4096-31,omitempty" // Contains a globally unique Uniform Resource Identifier (URI) that serves as a label for the current message body. - optional string body_content_location = 43; // @gotags: msg:"4116-31,omitempty" + optional string body_content_location = 146; // @gotags: msg:"4116-31,omitempty" // Contains the HTML body of the Message object. - optional string body_html = 44; // @gotags: msg:"4115-31,omitempty" + optional string body_html = 147; // @gotags: msg:"4115-31,omitempty" + // Contains a structure that identifies the last change to the message or folder that is currently being synchronized. + optional double change_number = 149; // @gotags: msg:"26532-20,omitempty" // Contains the current time, in UTC, when the email message is submitted. - optional int64 client_submit_time = 45; // @gotags: msg:"57-64,omitempty" + optional int64 client_submit_time = 150; // @gotags: msg:"57-64,omitempty" + // Contains a comment about the purpose or content of the Address Book object. + optional string comment = 151; // @gotags: msg:"12292-31,omitempty" // Indicates a confidence level that the message is spam. - optional int32 content_filter_spam_confidence_level = 46; // @gotags: msg:"16502-3,omitempty" + optional int32 content_filter_spam_confidence_level = 153; // @gotags: msg:"16502-3,omitempty" + // Indicates whether the GUID portion of the PidTagConversationIndex property (section 2.650) is to be used to compute the PidTagConversationId property (section 2.649). + optional bool conversation_index_tracking = 156; // @gotags: msg:"12310-11,omitempty" // Contains an unchanging copy of the original subject. - optional string conversation_topic = 48; // @gotags: msg:"112-31,omitempty" + optional string conversation_topic = 157; // @gotags: msg:"112-31,omitempty" // Contains the time, in UTC, that the object was created. - optional int64 creation_time = 49; // @gotags: msg:"12295-64,omitempty" + optional int64 creation_time = 158; // @gotags: msg:"12295-64,omitempty" // Contains the name of the creator of a Message object. - optional string creator_name = 50; // @gotags: msg:"16376-31,omitempty" + optional string creator_name = 160; // @gotags: msg:"16376-31,omitempty" + // Contains the message class of the object. + optional string default_post_message_class = 161; // @gotags: msg:"14053-31,omitempty" + // Contains the date and time, in UTC, at which the sender prefers that the message be delivered. + optional int64 deferred_delivery_time = 162; // @gotags: msg:"15-64,omitempty" + // Contains a number used in the calculation of how long to defer sending a message. + optional int32 deferred_send_number = 163; // @gotags: msg:"16363-3,omitempty" + // Contains the amount of time after which a client would like to defer sending the message. + optional int64 deferred_send_time = 164; // @gotags: msg:"16367-64,omitempty" + // Specifies the unit of time used as a multiplier with the PidTagDeferredSendNumber property (section 2.663) value. + optional int32 deferred_send_units = 165; // @gotags: msg:"16364-3,omitempty" + // Specifies whether the message was forwarded due to the triggering of a delegate forward rule. + optional bool delegated_by_rule = 166; // @gotags: msg:"16355-11,omitempty" + // Indicates that the original message is to be deleted after it is sent. + optional bool delete_after_submit = 168; // @gotags: msg:"3585-11,omitempty" + // Contains the total count of messages that have been deleted from a folder, excluding messages deleted within subfolders. + optional int32 deleted_count_total = 169; // @gotags: msg:"26379-3,omitempty" // Contains the delivery time for a delivery status notification, as specified [RFC3464], or a message disposition notification, as specified in [RFC3798]. - optional int64 deliver_time = 51; // @gotags: msg:"16-64,omitempty" + optional int64 deliver_time = 170; // @gotags: msg:"16-64,omitempty" + // Specifies the number of nested categories in which a given row is contained. + optional int32 depth = 171; // @gotags: msg:"12293-3,omitempty" // Contains a list of blind carbon copy (Bcc) recipient display names. - optional string display_bcc = 52; // @gotags: msg:"3586-31,omitempty" + optional string display_bcc = 172; // @gotags: msg:"3586-31,omitempty" // Contains a list of carbon copy (Cc) recipient display names. - optional string display_cc = 53; // @gotags: msg:"3587-31,omitempty" + optional string display_cc = 173; // @gotags: msg:"3587-31,omitempty" + // Contains the display name of the folder. + optional string display_name = 174; // @gotags: msg:"12289-31,omitempty" // Contains a list of the primary recipient display names, separated by semicolons, when an email message has primary recipients . - optional string display_to = 54; // @gotags: msg:"3588-31,omitempty" + optional string display_to = 175; // @gotags: msg:"3588-31,omitempty" + // Contains the email address of a Message object. + optional string email_address = 176; // @gotags: msg:"12291-31,omitempty" + // Contains the value of the PidLidAppointmentEndWhole property (section 2.14). + optional int64 end_date = 177; // @gotags: msg:"97-64,omitempty" + // Contains an integer value that is used along with the PidTagExpiryUnits property (section 2.690) to define the expiry send time. + optional int32 expiry_number = 179; // @gotags: msg:"16365-3,omitempty" + // Contains the time, in UTC, after which a client wants to receive an expiry event if the message arrives late. + optional int64 expiry_time = 180; // @gotags: msg:"21-64,omitempty" + // Contains the unit of time that the value of the PidTagExpiryNumber property (section 2.688) multiplies. + optional int32 expiry_units = 181; // @gotags: msg:"16366-3,omitempty" + // Contains the maximum size, in bytes, that the user is allowed to accumulate for a single extended rule. + optional int32 extended_rule_size_limit = 185; // @gotags: msg:"3739-3,omitempty" + // Specifies the date and time, in UTC, that the Message object was flagged as complete. + optional int64 flag_complete_time = 186; // @gotags: msg:"4241-64,omitempty" + // Specifies the flag state of the Message object. + optional int32 flag_status = 187; // @gotags: msg:"4240-3,omitempty" + // Contains a unique identifier for an item across the message store. + optional string flat_url_name = 188; // @gotags: msg:"26382-31,omitempty" + // Contains the Folder ID (FID) ([MS-OXCDATA] section 2.2.1.1) of the folder. + optional double folder_id = 190; // @gotags: msg:"26440-20,omitempty" + // Contains a computed value to specify the type or state of a folder. + optional int32 folder_flags = 191; // @gotags: msg:"26280-3,omitempty" + // Specifies the type of a folder that includes the Root folder, Generic folder, and Search folder. + optional int32 folder_type = 192; // @gotags: msg:"13825-3,omitempty" + // Contains an integer value used to calculate the start and end dates of the range of free/busy data to be published to the public folders. + optional int32 free_busy_count_months = 193; // @gotags: msg:"26729-3,omitempty" + // Specifies the email address of the user or resource to whom this free/busy message applies. + optional string free_busy_message_email_address = 195; // @gotags: msg:"26697-31,omitempty" + // This property is deprecated and SHOULD NOT be used. + optional bool gateway_needs_to_refresh = 196; // @gotags: msg:"26694-11,omitempty" + // Indicates whether a Message object has a deferred action message associated with it. + optional bool has_deferred_action_messages = 197; // @gotags: msg:"16362-11,omitempty" + // Indicates whether the Message object has a named property. + optional bool has_named_properties = 198; // @gotags: msg:"26186-11,omitempty" + // Specifies the time, in UTC, to trigger the client in cached mode to synchronize the folder hierarchy. + optional int64 hier_rev = 199; // @gotags: msg:"16514-64,omitempty" + // Contains the date and time, in UTC, when the appointment or meeting starts. + optional int64 i_calendar_start_time = 201; // @gotags: msg:"4291-64,omitempty" // Specifies which icon is to be used by a user interface when displaying a group of Message objects. - optional int32 icon_index = 56; // @gotags: msg:"4224-3,omitempty" + optional int32 icon_index = 202; // @gotags: msg:"4224-3,omitempty" // Indicates the level of importance assigned by the end user to the Message object. - optional int32 importance = 57; // @gotags: msg:"23-3,omitempty" + optional int32 importance = 203; // @gotags: msg:"23-3,omitempty" + // Specifies whether the attachment represents an alternate replica. + optional bool in_conflict = 204; // @gotags: msg:"26220-11,omitempty" + // Indicates which page of a display template to display first. + optional int32 initial_details_pane = 205; // @gotags: msg:"16136-3,omitempty" // Contains the initials for parts of the full name of the mail user. - optional string initials = 58; // @gotags: msg:"14858-31,omitempty" + optional string initials = 206; // @gotags: msg:"14858-31,omitempty" // Contains the value of the original message's PidTagInternetMessageId property (section 2.748) value. - optional string in_reply_to_id = 59; // @gotags: msg:"4162-31,omitempty" + optional string in_reply_to_id = 207; // @gotags: msg:"4162-31,omitempty" + // Contains an identifier for a single instance of a row in the table. + optional int32 instance_num = 209; // @gotags: msg:"26446-3,omitempty" + // Contains an identifier for all instances of a row in the table. + optional double insti_d = 210; // @gotags: msg:"26445-20,omitempty" + // Indicates the code page used for the PidTagBody property (section 2.618) or the PidTagBodyHtml property (section 2.621). + optional int32 internet_codepage = 211; // @gotags: msg:"16350-3,omitempty" // Indicates the encoding method and HTML inclusion for attachments. - optional int32 internet_mail_override_format = 60; // @gotags: msg:"22786-3,omitempty" + optional int32 internet_mail_override_format = 212; // @gotags: msg:"22786-3,omitempty" // Corresponds to the message-id field. - optional string internet_message_id = 61; // @gotags: msg:"4149-31,omitempty" + optional string internet_message_id = 213; // @gotags: msg:"4149-31,omitempty" // Contains a list of message IDs that specify the messages to which this reply is related. - optional string internet_references = 62; // @gotags: msg:"4153-31,omitempty" + optional string internet_references = 214; // @gotags: msg:"4153-31,omitempty" // Contains the Integrated Services Digital Network (ISDN) telephone number of the mail user. - optional string isdn_number = 63; // @gotags: msg:"14893-31,omitempty" + optional string isdn_number = 215; // @gotags: msg:"14893-31,omitempty" // Contains a keyword that identifies the mail user to the mail user's system administrator. - optional string keyword = 64; // @gotags: msg:"14859-31,omitempty" + optional string keyword = 216; // @gotags: msg:"14859-31,omitempty" // Contains a value that indicates the language in which the messaging user is writing messages. - optional string language = 65; // @gotags: msg:"14860-31,omitempty" + optional string language = 217; // @gotags: msg:"14860-31,omitempty" // Contains the time, in UTC, of the last modification to the object. - optional int64 last_modification_time = 66; // @gotags: msg:"12296-64,omitempty" + optional int64 last_modification_time = 218; // @gotags: msg:"12296-64,omitempty" + // Contains the name of the last mail user to change the Message object. + optional string last_modifier_name = 220; // @gotags: msg:"16378-31,omitempty" + // Specifies the last verb executed for the message item to which it is related. + optional int32 last_verb_executed = 221; // @gotags: msg:"4225-3,omitempty" + // Contains the date and time, in UTC, during which the operation represented in the PidTagLastVerbExecuted property (section 2.767) took place. + optional int64 last_verb_execution_time = 222; // @gotags: msg:"4226-64,omitempty" + // Contains a URI that provides detailed help information for the mailing list from which an email message was sent. + optional string list_help = 223; // @gotags: msg:"4163-31,omitempty" + // Contains the URI that subscribes a recipient to a message’s associated mailing list. + optional string list_subscribe = 224; // @gotags: msg:"4164-31,omitempty" + // Contains the URI that unsubscribes a recipient from a message’s associated mailing list. + optional string list_unsubscribe = 225; // @gotags: msg:"4165-31,omitempty" + // Specifies the time, in UTC, that a Message object or Folder object was last changed. + optional int64 local_commit_time = 226; // @gotags: msg:"26377-64,omitempty" + // Contains the time of the most recent message change within the folder container, excluding messages changed within subfolders. + optional int64 local_commit_time_max = 227; // @gotags: msg:"26378-64,omitempty" + // Contains the Logon object LocaleID. + optional int32 locale_id = 228; // @gotags: msg:"26273-3,omitempty" // Contains the name of the mail user's locality, such as the town or city. - optional string locality = 67; // @gotags: msg:"14887-31,omitempty" + optional string locality = 229; // @gotags: msg:"14887-31,omitempty" // Contains the location of the mail user. - optional string location = 68; // @gotags: msg:"14861-31,omitempty" + optional string location = 230; // @gotags: msg:"14861-31,omitempty" + // Contains the display name of the owner of the mailbox. + optional string mailbox_owner_name = 232; // @gotags: msg:"26140-31,omitempty" // Contains the name of the mail user's manager. - optional string manager_name = 69; // @gotags: msg:"14926-31,omitempty" + optional string manager_name = 233; // @gotags: msg:"14926-31,omitempty" + // Maximum size, in kilobytes, of a message that a user is allowed to submit for transmission to another user. + optional int32 maximum_submit_message_size = 235; // @gotags: msg:"26221-3,omitempty" + // Contains a unique identifier that the messaging server generates for each user. + optional double member_id = 236; // @gotags: msg:"26225-20,omitempty" + // Contains the user-readable name of the user. + optional string member_name = 237; // @gotags: msg:"26226-31,omitempty" + // Contains the permissions for the specified user. + optional int32 member_rights = 238; // @gotags: msg:"26227-3,omitempty" // - optional bool message_cc_me = 70; // @gotags: msg:"88-11,omitempty" + optional bool message_cc_me = 239; // @gotags: msg:"88-11,omitempty" + // Denotes the specific type of the Message object. + optional string message_class = 240; // @gotags: msg:"26-31,omitempty" + // Specifies the code page used to encode the non-Unicode string properties on this Message object. + optional int32 message_codepage = 241; // @gotags: msg:"16381-3,omitempty" // Specifies the time (in UTC) when the server received the message. - optional int64 message_delivery_time = 71; // @gotags: msg:"3590-64,omitempty" + optional int64 message_delivery_time = 242; // @gotags: msg:"3590-64,omitempty" + // Specifies the format that an email editor can use for editing the message body. + optional int32 message_editor_format = 243; // @gotags: msg:"22793-3,omitempty" // Specifies the status of the Message object. - optional int32 message_flags = 72; // @gotags: msg:"3591-3,omitempty" + optional int32 message_flags = 244; // @gotags: msg:"3591-3,omitempty" // Contains the common name of a messaging user for use in a message header. - optional string message_handling_system_common_name = 73; // @gotags: msg:"14863-31,omitempty" + optional string message_handling_system_common_name = 245; // @gotags: msg:"14863-31,omitempty" + // Contains the Windows Locale ID of the end-user who created this message. + optional int32 message_locale_id = 246; // @gotags: msg:"16369-3,omitempty" // Indicates that the receiving mailbox owner is a primary or a carbon copy (Cc) recipient of this email message. - optional bool message_recipient_me = 74; // @gotags: msg:"89-11,omitempty" + optional bool message_recipient_me = 247; // @gotags: msg:"89-11,omitempty" // Contains the size, in bytes, consumed by the Message object on the server. - optional int32 message_size = 76; // @gotags: msg:"3592-3,omitempty" + optional int32 message_size = 249; // @gotags: msg:"3592-3,omitempty" // Specifies the 64-bit version of the PidTagMessageSize property (section 2.796). - optional double message_size_extended = 77; // @gotags: msg:"3592-20,omitempty" + optional double message_size_extended = 250; // @gotags: msg:"3592-20,omitempty" // Specifies the status of a message in a contents table. - optional int32 message_status = 78; // @gotags: msg:"3607-3,omitempty" + optional int32 message_status = 251; // @gotags: msg:"3607-3,omitempty" // Indicates that the receiving mailbox owner is one of the primary recipients of this email message. - optional bool message_to_me = 80; // @gotags: msg:"87-11,omitempty" + optional bool message_to_me = 253; // @gotags: msg:"87-11,omitempty" + // Contains a value that contains the MID of the message currently being synchronized. + optional double mid = 254; // @gotags: msg:"26442-20,omitempty" // Specifies the middle name(s) of the contact. - optional string middle_name = 81; // @gotags: msg:"14916-31,omitempty" + optional string middle_name = 255; // @gotags: msg:"14916-31,omitempty" // Contains the mail user's cellular telephone number. - optional string mobile_telephone_number = 82; // @gotags: msg:"14876-31,omitempty" + optional string mobile_telephone_number = 257; // @gotags: msg:"14876-31,omitempty" + // Indicates the best available format for storing the message body. + optional int32 native_body = 258; // @gotags: msg:"4118-3,omitempty" + // Specifies the server that a client is currently attempting to use to send email. + optional string next_send_acct = 259; // @gotags: msg:"3625-31,omitempty" // Contains the mail user's nickname. - optional string nickname = 83; // @gotags: msg:"14927-31,omitempty" + optional string nickname = 260; // @gotags: msg:"14927-31,omitempty" // Contains the diagnostic code for a delivery status notification, as specified in [RFC3464]. - optional int32 non_delivery_report_diag_code = 84; // @gotags: msg:"3077-3,omitempty" + optional int32 non_delivery_report_diag_code = 261; // @gotags: msg:"3077-3,omitempty" // Contains an integer value that indicates a reason for delivery failure. - optional int32 non_delivery_report_reason_code = 85; // @gotags: msg:"3076-3,omitempty" + optional int32 non_delivery_report_reason_code = 262; // @gotags: msg:"3076-3,omitempty" // Specifies whether the client sends a non-read receipt. - optional int32 non_delivery_report_status_code = 86; // @gotags: msg:"3078-3,omitempty" + optional int32 non_delivery_report_status_code = 263; // @gotags: msg:"3078-3,omitempty" // Contains the normalized subject of the message. - optional string normalized_subject = 87; // @gotags: msg:"3613-31,omitempty" + optional string normalized_subject = 264; // @gotags: msg:"3613-31,omitempty" + // Indicates the type of Server object. + optional int32 object_type = 265; // @gotags: msg:"4094-3,omitempty" // Contains the mail user's office location. - optional string office_location = 88; // @gotags: msg:"14873-31,omitempty" + optional string office_location = 266; // @gotags: msg:"14873-31,omitempty" // Contains an identifier for the mail user used within the mail user's organization. - optional string organizational_id_number = 89; // @gotags: msg:"14864-31,omitempty" + optional string organizational_id_number = 267; // @gotags: msg:"14864-31,omitempty" // Contains the display name of the sender of the original message referenced by a report message. - optional string original_author_name = 91; // @gotags: msg:"77-31,omitempty" + optional string original_author_name = 269; // @gotags: msg:"77-31,omitempty" // Contains the delivery time, in UTC, from the original message. - optional int64 original_delivery_time = 92; // @gotags: msg:"85-64,omitempty" + optional int64 original_delivery_time = 270; // @gotags: msg:"85-64,omitempty" // Contains the value of the PidTagDisplayBcc property (section 2.674) from the original message. - optional string original_display_bcc = 93; // @gotags: msg:"114-31,omitempty" + optional string original_display_bcc = 271; // @gotags: msg:"114-31,omitempty" // Contains the value of the PidTagDisplayCc property(section 2.675) from the original message. - optional string original_display_cc = 94; // @gotags: msg:"115-31,omitempty" + optional string original_display_cc = 272; // @gotags: msg:"115-31,omitempty" // Contains the value of the PidTagDisplayTo property (section 2.678) from the original message. - optional string original_display_to = 95; // @gotags: msg:"116-31,omitempty" + optional string original_display_to = 273; // @gotags: msg:"116-31,omitempty" // Designates the PidTagMessageClass property ([MS-OXCMSG] section 2.2.1.3) from the original message. - optional string original_message_class = 97; // @gotags: msg:"75-31,omitempty" + optional string original_message_class = 275; // @gotags: msg:"75-31,omitempty" + // Contains the message ID of the original message included in replies or resent messages. + optional string original_message_id = 276; // @gotags: msg:"4166-31,omitempty" // Contains the value of the original message sender's PidTagSenderAddressType property (section 2.1000). - optional string original_sender_address_type = 98; // @gotags: msg:"102-31,omitempty" + optional string original_sender_address_type = 277; // @gotags: msg:"102-31,omitempty" // Contains the value of the original message sender's PidTagSenderEmailAddress property (section 2.1001). - optional string original_sender_email_address = 99; // @gotags: msg:"103-31,omitempty" + optional string original_sender_email_address = 278; // @gotags: msg:"103-31,omitempty" // Contains the value of the original message sender's PidTagSenderName property (section 2.1004), and is set on delivery report messages. - optional string original_sender_name = 101; // @gotags: msg:"90-31,omitempty" + optional string original_sender_name = 280; // @gotags: msg:"90-31,omitempty" // Contains the sensitivity value of the original email message. - optional int32 original_sensitivity = 103; // @gotags: msg:"46-3,omitempty" + optional int32 original_sensitivity = 282; // @gotags: msg:"46-3,omitempty" // Contains the address type of the end user who is represented by the original email message sender. - optional string original_sent_representing_address_type = 104; // @gotags: msg:"104-31,omitempty" + optional string original_sent_representing_address_type = 283; // @gotags: msg:"104-31,omitempty" // Contains the email address of the end user who is represented by the original email message sender. - optional string original_sent_representing_email_address = 105; // @gotags: msg:"105-31,omitempty" + optional string original_sent_representing_email_address = 284; // @gotags: msg:"105-31,omitempty" // Contains the display name of the end user who is represented by the original email message sender. - optional string original_sent_representing_name = 107; // @gotags: msg:"93-31,omitempty" + optional string original_sent_representing_name = 286; // @gotags: msg:"93-31,omitempty" // Specifies the subject of the original message. - optional string original_subject = 109; // @gotags: msg:"73-31,omitempty" + optional string original_subject = 288; // @gotags: msg:"73-31,omitempty" // Specifies the original email message's submission date and time, in UTC. - optional int64 original_submit_time = 110; // @gotags: msg:"78-64,omitempty" + optional int64 original_submit_time = 289; // @gotags: msg:"78-64,omitempty" // Indicates whether an email sender requests an email delivery receipt from the messaging system. - optional bool originator_delivery_report_requested = 111; // @gotags: msg:"35-11,omitempty" + optional bool originator_delivery_report_requested = 290; // @gotags: msg:"35-11,omitempty" // Specifies whether an email sender requests suppression of nondelivery receipts. - optional bool originator_non_delivery_report_requested = 112; // @gotags: msg:"3080-11,omitempty" + optional bool originator_non_delivery_report_requested = 291; // @gotags: msg:"3080-11,omitempty" // Contains the name of the mail user's other locality, such as the town or city. - optional string other_address_city = 113; // @gotags: msg:"14943-31,omitempty" + optional string other_address_city = 292; // @gotags: msg:"14943-31,omitempty" // Contains the name of the mail user's other country/region. - optional string other_address_country = 114; // @gotags: msg:"14944-31,omitempty" + optional string other_address_country = 293; // @gotags: msg:"14944-31,omitempty" // Contains the postal code for the mail user's other postal address. - optional string other_address_postal_code = 115; // @gotags: msg:"14945-31,omitempty" + optional string other_address_postal_code = 294; // @gotags: msg:"14945-31,omitempty" // Contains the number or identifier of the mail user's other post office box. - optional string other_address_post_office_box = 116; // @gotags: msg:"14948-31,omitempty" + optional string other_address_post_office_box = 295; // @gotags: msg:"14948-31,omitempty" // Contains the name of the mail user's other state or province. - optional string other_address_state_or_province = 117; // @gotags: msg:"14946-31,omitempty" + optional string other_address_state_or_province = 296; // @gotags: msg:"14946-31,omitempty" // Contains the mail user's other street address. - optional string other_address_street = 118; // @gotags: msg:"14947-31,omitempty" + optional string other_address_street = 297; // @gotags: msg:"14947-31,omitempty" // Contains an alternate telephone number for the mail user. - optional string other_telephone_number = 119; // @gotags: msg:"14879-31,omitempty" + optional string other_telephone_number = 298; // @gotags: msg:"14879-31,omitempty" + // Indicates whether the user is OOF. + optional bool out_of_office_state = 299; // @gotags: msg:"26141-11,omitempty" // Contains the mail user's pager telephone number. - optional string pager_telephone_number = 120; // @gotags: msg:"14881-31,omitempty" + optional string pager_telephone_number = 300; // @gotags: msg:"14881-31,omitempty" + // Contains a value that contains the Folder ID (FID), as specified in [MS-OXCDATA] section 2.2.1.1, that identifies the parent folder of the messaging object being synchronized. + optional double parent_folder_id = 302; // @gotags: msg:"26441-20,omitempty" + // Specifies the first server that a client is to use to send the email with. + optional string primary_send_account = 307; // @gotags: msg:"3624-31,omitempty" // Indicates the client's request for the priority with which the message is to be sent by the messaging system. - optional int32 priority = 122; // @gotags: msg:"38-3,omitempty" + optional int32 priority = 308; // @gotags: msg:"38-3,omitempty" + // Maximum size, in kilobytes, that a user is allowed to accumulate in their mailbox before no further email will be delivered to their mailbox. + optional int32 prohibit_receive_quota = 309; // @gotags: msg:"26218-3,omitempty" + // Maximum size, in kilobytes, that a user is allowed to accumulate in their mailbox before the user can no longer send any more email. + optional int32 prohibit_send_quota = 310; // @gotags: msg:"26222-3,omitempty" + // Contains the domain responsible for transmitting the current message. + optional string purported_sender_domain = 311; // @gotags: msg:"16515-31,omitempty" + // Indicates whether a message has been read. + optional bool read = 312; // @gotags: msg:"3689-11,omitempty" + // Contains the address type of the end user to whom a read receipt is directed. + optional string read_receipt_address_type = 313; // @gotags: msg:"16425-31,omitempty" + // Contains the email address of the end user to whom a read receipt is directed. + optional string read_receipt_email_address = 314; // @gotags: msg:"16426-31,omitempty" + // Contains the display name for the end user to whom a read receipt is directed. + optional string read_receipt_name = 316; // @gotags: msg:"16427-31,omitempty" // Specifies whether the email sender requests a read receipt from all recipients when this email message is read or opened. - optional bool read_receipt_requested = 123; // @gotags: msg:"41-11,omitempty" + optional bool read_receipt_requested = 317; // @gotags: msg:"41-11,omitempty" + // Contains the SMTP email address of the user to whom a read receipt is directed. + optional string read_receipt_smtp_address = 319; // @gotags: msg:"23813-31,omitempty" // Contains the sent time for a message disposition notification, as specified in [RFC3798]. - optional int64 receipt_time = 124; // @gotags: msg:"42-64,omitempty" + optional int64 receipt_time = 320; // @gotags: msg:"42-64,omitempty" + // Contains the email message receiver's email address type. + optional string received_by_address_type = 321; // @gotags: msg:"117-31,omitempty" // Contains the email message receiver's email address. - optional string received_by_email_address = 125; // @gotags: msg:"118-31,omitempty" + optional string received_by_email_address = 322; // @gotags: msg:"118-31,omitempty" // Contains the email message receiver's display name. - optional string received_by_name = 127; // @gotags: msg:"64-31,omitempty" + optional string received_by_name = 324; // @gotags: msg:"64-31,omitempty" + // Contains the email message receiver's SMTP email address. + optional string received_by_smtp_address = 326; // @gotags: msg:"23815-31,omitempty" // Contains the email address type for the end user represented by the receiving mailbox owner. - optional string received_representing_address_type = 129; // @gotags: msg:"119-31,omitempty" + optional string received_representing_address_type = 327; // @gotags: msg:"119-31,omitempty" // Contains the email address for the end user represented by the receiving mailbox owner. - optional string received_representing_email_address = 130; // @gotags: msg:"120-31,omitempty" + optional string received_representing_email_address = 328; // @gotags: msg:"120-31,omitempty" // Contains the display name for the end user represented by the receiving mailbox owner. - optional string received_representing_name = 132; // @gotags: msg:"68-31,omitempty" + optional string received_representing_name = 330; // @gotags: msg:"68-31,omitempty" + // Contains the SMTP email address of the user represented by the receiving mailbox owner. + optional string received_representing_smtp_address = 332; // @gotags: msg:"23816-31,omitempty" + // Specifies the display name of the recipient. + optional string recipient_display_name = 333; // @gotags: msg:"24566-31,omitempty" + // Specifies a bit field that describes the recipient status. + optional int32 recipient_flags = 335; // @gotags: msg:"24573-3,omitempty" + // Specifies the location of the current recipient in the recipient table. + optional int32 recipient_order = 336; // @gotags: msg:"24543-3,omitempty" + // Indicates that the attendee proposed a new date and/or time. + optional bool recipient_proposed = 337; // @gotags: msg:"24545-11,omitempty" + // Indicates the meeting end time requested by the attendee in a counter proposal. + optional int64 recipient_proposed_end_time = 338; // @gotags: msg:"24548-64,omitempty" + // Indicates the meeting start time requested by the attendee in a counter proposal. + optional int64 recipient_proposed_start_time = 339; // @gotags: msg:"24547-64,omitempty" + // Specifies whether adding additional or different recipients is prohibited for the email message when forwarding the email message. + optional bool recipient_reassignment_prohibited = 340; // @gotags: msg:"43-11,omitempty" + // Indicates the response status that is returned by the attendee. + optional int32 recipient_track_status = 341; // @gotags: msg:"24575-3,omitempty" + // Indicates the date and time at which the attendee responded. + optional int64 recipient_track_status_time = 342; // @gotags: msg:"24571-64,omitempty" // Represents the recipient type of a recipient on the message. - optional int32 recipient_type = 134; // @gotags: msg:"3093-3,omitempty" + optional int32 recipient_type = 343; // @gotags: msg:"3093-3,omitempty" // Contains the value of the Remote-MTA field for a delivery status notification, as specified in [RFC3464]. - optional string remote_message_transfer_agent = 135; // @gotags: msg:"3105-31,omitempty" + optional string remote_message_transfer_agent = 346; // @gotags: msg:"3105-31,omitempty" + // Contains a list of display names for recipients that are to receive a reply. + optional string reply_recipient_names = 348; // @gotags: msg:"80-31,omitempty" // Indicates whether a reply is requested to a Message object. - optional bool reply_requested = 136; // @gotags: msg:"3095-11,omitempty" + optional bool reply_requested = 349; // @gotags: msg:"3095-11,omitempty" + // Specifies the time, in UTC, that the sender has designated for an associated work item to be due. + optional int64 reply_time = 351; // @gotags: msg:"48-64,omitempty" // Contains a string indicating whether the original message was displayed to the user or deleted (report messages only). - optional string report_disposition = 137; // @gotags: msg:"128-31,omitempty" + optional string report_disposition = 352; // @gotags: msg:"128-31,omitempty" // Contains a description of the action that a client has performed on behalf of a user (report messages only). - optional string report_disposition_mode = 138; // @gotags: msg:"129-31,omitempty" + optional string report_disposition_mode = 353; // @gotags: msg:"129-31,omitempty" // Contains the value of the Reporting-MTA field for a delivery status notification, as specified in [RFC3464]. - optional string reporting_message_transfer_agent = 139; // @gotags: msg:"26656-31,omitempty" + optional string reporting_message_transfer_agent = 355; // @gotags: msg:"26656-31,omitempty" + // Contains the display name for the entity (usually a server agent) that generated the report message. + optional string report_name = 356; // @gotags: msg:"58-31,omitempty" + // Contains the optional text for a report message. + optional string report_text = 359; // @gotags: msg:"4097-31,omitempty" + // Indicates the last time that the contact list that is controlled by the PidTagJunkIncludeContacts property (section 2.758) was updated. + optional int64 report_time = 360; // @gotags: msg:"50-64,omitempty" + // Specifies how to resolve any conflicts with the message. + optional int32 resolve_method = 361; // @gotags: msg:"16359-3,omitempty" + // Indicates whether a response is requested to a Message object. + optional bool response_requested = 362; // @gotags: msg:"99-11,omitempty" + // Specifies whether another mail agent has ensured that the message will be delivered. + optional bool responsibility = 363; // @gotags: msg:"3599-11,omitempty" // Specifies the date, in UTC, after which a Message object is expired by the server. - optional int64 retention_date = 140; // @gotags: msg:"12316-64,omitempty" + optional int64 retention_date = 364; // @gotags: msg:"12316-64,omitempty" // Contains flags that specify the status or nature of an item's retention tag or archive tag. - optional int32 retention_flags = 141; // @gotags: msg:"12317-3,omitempty" + optional int32 retention_flags = 365; // @gotags: msg:"12317-3,omitempty" // Specifies the number of days that a Message object can remain unarchived. - optional int32 retention_period = 142; // @gotags: msg:"12314-3,omitempty" + optional int32 retention_period = 366; // @gotags: msg:"12314-3,omitempty" + // Contains a bitmask that indicates which stream properties exist on the message. + optional int32 roaming_datatypes = 367; // @gotags: msg:"31750-3,omitempty" + // Contains a unique identifier for a recipient in a message's recipient table. + optional int32 rowid = 370; // @gotags: msg:"12288-3,omitempty" + // Identifies the type of the row. + optional int32 row_type = 371; // @gotags: msg:"4085-3,omitempty" // Indicates whether the PidTagBody property (section 2.618) and the PidTagRtfCompressed property (section 2.941) contain the same text (ignoring formatting). - optional bool rtf_in_sync = 144; // @gotags: msg:"3615-11,omitempty" + optional bool rtf_in_sync = 373; // @gotags: msg:"3615-11,omitempty" + // Contains the index of a rule action that failed. + optional int32 rule_action_number = 374; // @gotags: msg:"26192-3,omitempty" + // Contains the ActionType field ([MS-OXORULE] section 2.2.5.1) of a rule that failed. + optional int32 rule_action_type = 376; // @gotags: msg:"26185-3,omitempty" + // Contains the error code that indicates the cause of an error encountered during the execution of the rule. + optional int32 rule_error = 378; // @gotags: msg:"26184-3,omitempty" + // Specifies a unique identifier that is generated by the messaging server for each rule when the rule is first created. + optional double rule_id = 380; // @gotags: msg:"26228-20,omitempty" + // Contains 0x00000000. This property is not used. + optional int32 rule_level = 382; // @gotags: msg:"26243-3,omitempty" + // Contains 0x00000000. Set on the FAI message. + optional int32 rule_message_level = 383; // @gotags: msg:"26093-3,omitempty" + // Specifies the name of the rule. Set on the FAI message. + optional string rule_message_name = 384; // @gotags: msg:"26092-31,omitempty" + // Identifies the client application that owns the rule. Set on the FAI message. + optional string rule_message_provider = 385; // @gotags: msg:"26091-31,omitempty" + // Contains a value used to determine the order in which rules are evaluated and executed. Set on the FAI message. + optional int32 rule_message_sequence = 387; // @gotags: msg:"26099-3,omitempty" + // Contains flags that specify the state of the rule. Set on the FAI message. + optional int32 rule_message_state = 388; // @gotags: msg:"26089-3,omitempty" + // Contains an opaque property that the client sets for the exclusive use of the client. Set on the FAI message. + optional int32 rule_message_user_flags = 389; // @gotags: msg:"26090-3,omitempty" + // Specifies the name of the rule. + optional string rule_name = 390; // @gotags: msg:"26242-31,omitempty" + // A string identifying the client application that owns a rule. + optional string rule_provider = 391; // @gotags: msg:"26241-31,omitempty" + // Contains a value used to determine the order in which rules are evaluated and executed. + optional int32 rule_sequence = 393; // @gotags: msg:"26230-3,omitempty" + // Contains flags that specify the state of the rule. + optional int32 rule_state = 394; // @gotags: msg:"26231-3,omitempty" + // Contains an opaque property that the client sets for the exclusive use of the client. + optional int32 rule_user_flags = 395; // @gotags: msg:"26232-3,omitempty" + // Specifies flags that control how a folder is displayed. + optional int32 search_folder_efp_flags = 399; // @gotags: msg:"26696-3,omitempty" + // Contains the time, in UTC, at which the search folder container will be stale and has to be updated or recreated. + optional int32 search_folder_expiration = 400; // @gotags: msg:"26682-3,omitempty" + // Contains the last time, in UTC, that the folder was accessed. + optional int32 search_folder_last_used = 402; // @gotags: msg:"26676-3,omitempty" + // Contains flags that specify the binary large object (BLOB) data that appears in the PidTagSearchFolderDefinition (section 2.988) property. + optional int32 search_folder_storage_type = 404; // @gotags: msg:"26694-3,omitempty" + // Contains the value of the SearchFolderTag sub-property of the PidTagExtendedFolderFlags (section 2.691) property of the search folder container. + optional int32 search_folder_tag = 405; // @gotags: msg:"26695-3,omitempty" + // Contains the ID of the template that is being used for the search. + optional int32 search_folder_template_id = 406; // @gotags: msg:"26689-3,omitempty" + // Contains security attributes in XML. + optional string security_descriptor_as_xml = 408; // @gotags: msg:"3690-31,omitempty" + // This property is not set and, if set, is ignored. + optional bool selectable = 409; // @gotags: msg:"13833-11,omitempty" // Contains the email address type of the sending mailbox owner. - optional string sender_address_type = 145; // @gotags: msg:"3102-31,omitempty" + optional string sender_address_type = 410; // @gotags: msg:"3102-31,omitempty" // Contains the email address of the sending mailbox owner. - optional string sender_email_address = 146; // @gotags: msg:"3103-31,omitempty" + optional string sender_email_address = 411; // @gotags: msg:"3103-31,omitempty" // Reports the results of a Sender-ID check. - optional int32 sender_id_status = 148; // @gotags: msg:"16505-3,omitempty" + optional int32 sender_id_status = 413; // @gotags: msg:"16505-3,omitempty" // Contains the display name of the sending mailbox owner. - optional string sender_name = 149; // @gotags: msg:"3098-31,omitempty" + optional string sender_name = 414; // @gotags: msg:"3098-31,omitempty" + // Contains the SMTP email address format of the e–mail address of the sending mailbox owner. + optional string sender_smtp_address = 416; // @gotags: msg:"23809-31,omitempty" // Contains a bitmask of message encoding preferences for email sent to an email-enabled entity that is represented by this Address Book object. - optional int32 send_internet_encoding = 151; // @gotags: msg:"14961-3,omitempty" + optional int32 send_internet_encoding = 417; // @gotags: msg:"14961-3,omitempty" // Indicates whether the email-enabled entity represented by the Address Book object can receive all message content, including Rich Text Format (RTF) and other embedded objects. - optional bool send_rich_info = 152; // @gotags: msg:"14912-11,omitempty" + optional bool send_rich_info = 418; // @gotags: msg:"14912-11,omitempty" // Indicates the sender's assessment of the sensitivity of the Message object. - optional int32 sensitivity = 153; // @gotags: msg:"54-3,omitempty" + optional int32 sensitivity = 419; // @gotags: msg:"54-3,omitempty" + // Contains an EntryID that represents the Sent Items folder for the message. + optional uint32 sent_mail_svrei_d = 420; // @gotags: msg:"26432-251,omitempty" // Contains an email address type. - optional string sent_representing_address_type = 154; // @gotags: msg:"100-31,omitempty" + optional string sent_representing_address_type = 421; // @gotags: msg:"100-31,omitempty" // Contains an email address for the end user who is represented by the sending mailbox owner. - optional string sent_representing_email_address = 155; // @gotags: msg:"101-31,omitempty" + optional string sent_representing_email_address = 422; // @gotags: msg:"101-31,omitempty" + // + optional int32 sent_representing_flags = 424; // @gotags: msg:"16410-3,omitempty" // Contains the display name for the end user who is represented by the sending mailbox owner. - optional string sent_representing_name = 157; // @gotags: msg:"66-31,omitempty" + optional string sent_representing_name = 425; // @gotags: msg:"66-31,omitempty" + // Contains the SMTP email address of the end user who is represented by the sending mailbox owner. + optional string sent_representing_smtp_address = 427; // @gotags: msg:"23810-31,omitempty" // Contains the SMTP address of the Message object. - optional string smtp_address = 159; // @gotags: msg:"14846-31,omitempty" + optional string smtp_address = 429; // @gotags: msg:"14846-31,omitempty" + // Contains the locale identifier. + optional int32 sort_locale_id = 430; // @gotags: msg:"26373-3,omitempty" + // Contains the value of the PidLidAppointmentStartWhole property (section 2.29). + optional int64 start_date = 432; // @gotags: msg:"96-64,omitempty" + // Indicates whether a mailbox has any active Search folders. + optional int32 store_state = 435; // @gotags: msg:"13326-3,omitempty" + // Indicates whether string properties within the .msg file are Unicode-encoded. + optional int32 store_support_mask = 436; // @gotags: msg:"13325-3,omitempty" + // Specifies whether a folder has subfolders. + optional bool subfolders = 437; // @gotags: msg:"13834-11,omitempty" // Contains the subject of the email message. - optional string subject = 161; // @gotags: msg:"55-31,omitempty" + optional string subject = 438; // @gotags: msg:"55-31,omitempty" // Contains the prefix for the subject of the message. - optional string subject_prefix = 162; // @gotags: msg:"61-31,omitempty" + optional string subject_prefix = 439; // @gotags: msg:"61-31,omitempty" // Contains supplementary information about a delivery status notification, as specified in [RFC3464]. - optional string supplementary_info = 163; // @gotags: msg:"3099-31,omitempty" + optional string supplementary_info = 440; // @gotags: msg:"3099-31,omitempty" + // Contains flags associated with objects. + optional int32 to_do_item_flags = 445; // @gotags: msg:"3627-3,omitempty" // Contains an Address Book object's display name that is transmitted with the message. - optional string transmittable_display_name = 164; // @gotags: msg:"14880-31,omitempty" + optional string transmittable_display_name = 446; // @gotags: msg:"14880-31,omitempty" // Contains transport-specific message envelope information for email. - optional string transport_message_headers = 165; // @gotags: msg:"125-31,omitempty" + optional string transport_message_headers = 447; // @gotags: msg:"125-31,omitempty" + // Specifies whether the associated message was delivered through a trusted transport channel. + optional int32 trust_sender = 448; // @gotags: msg:"3705-3,omitempty" + // Contains the view descriptor name. + optional string view_descriptor_name = 451; // @gotags: msg:"28678-31,omitempty" + // Contains view definitions in string format. + optional string view_descriptor_strings = 452; // @gotags: msg:"28674-31,omitempty" + // Contains the View Descriptor version. + optional int32 view_descriptor_version = 453; // @gotags: msg:"28679-3,omitempty" + // Specifies the background color of the calendar. + optional int32 wlink_calendar_color = 456; // @gotags: msg:"26707-3,omitempty" + // Specifies conditions associated with the shortcut. + optional int32 wlink_flags = 459; // @gotags: msg:"26698-3,omitempty" + // Specifies the value of the PidTagNormalizedSubject (section 2.812) of the group header associated with the shortcut. + optional string wlink_group_name = 463; // @gotags: msg:"26705-31,omitempty" + // Specifies the type of group header. + optional int32 wlinkro_group_type = 466; // @gotags: msg:"26770-3,omitempty" + // Specifies an integer that allows a client to identify with a high probability whether the navigation shortcut was saved by the current client session. + optional int32 wlink_save_stamp = 467; // @gotags: msg:"26695-3,omitempty" + // Specifies the section where the shortcut will be grouped. + optional int32 wlink_section = 468; // @gotags: msg:"26706-3,omitempty" + // Specifies the type of navigation shortcut. + optional int32 wlink_type = 470; // @gotags: msg:"26697-3,omitempty" } diff --git a/cmd/reader/main.go b/cmd/reader/main.go new file mode 100644 index 0000000..2866489 --- /dev/null +++ b/cmd/reader/main.go @@ -0,0 +1,150 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "fmt" + "github.com/mooijtech/go-pst/v6/pkg" + "github.com/mooijtech/go-pst/v6/pkg/properties" + "github.com/rotisserie/eris" + "golang.org/x/text/encoding" + "os" + "time" + + charsets "github.com/emersion/go-message/charset" +) + +func main() { + pst.ExtendCharsets(func(name string, enc encoding.Encoding) { + charsets.RegisterEncoding(name, enc) + }) + + startTime := time.Now() + + fmt.Println("Initializing...") + + reader, err := os.Open("../data/a.velasco.pst") + + if err != nil { + panic(fmt.Sprintf("Failed to open PST file: %+v\n", err)) + } + + pstFile, err := pst.New(reader) + + if err != nil { + panic(fmt.Sprintf("Failed to open PST file: %+v\n", err)) + } + + defer func() { + pstFile.Cleanup() + + if errClosing := reader.Close(); errClosing != nil { + panic(fmt.Sprintf("Failed to close PST file: %+v\n", err)) + } + }() + + // Create attachments directory + if _, err := os.Stat("attachments"); err != nil { + if err := os.Mkdir("attachments", 0755); err != nil { + panic(fmt.Sprintf("Failed to create attachments directory: %+v", err)) + } + } + + // Walk through folders. + if err := pstFile.WalkFolders(func(folder *pst.Folder) error { + fmt.Printf("Walking folder: %s\n", folder.Properties.Name) + + messageIterator, err := folder.GetMessageIterator() + + if eris.Is(err, pst.ErrMessagesNotFound) { + // Folder has no messages. + return nil + } else if err != nil { + return err + } + + // Iterate through messages. + for messageIterator.Next() { + message := messageIterator.Value() + + switch messageProperties := message.Properties.(type) { + case *properties.Appointment: + fmt.Printf("Appointment: %s\n", messageProperties.String()) + case *properties.Contact: + fmt.Printf("Contact: %s\n", messageProperties.String()) + case *properties.Task: + fmt.Printf("Task: %s\n", messageProperties.String()) + case *properties.RSS: + fmt.Printf("RSS: %s\n", messageProperties.String()) + case *properties.AddressBook: + fmt.Printf("Address book: %s\n", messageProperties.String()) + case *properties.Message: + fmt.Printf("Subject: %s\n", messageProperties.GetSubject()) + case *properties.Note: + fmt.Printf("Note: %s\n", messageProperties.String()) + default: + fmt.Printf("Unknown message type\n") + } + + attachmentIterator, err := message.GetAttachmentIterator() + + if eris.Is(err, pst.ErrAttachmentsNotFound) { + // This message has no attachments. + continue + } else if err != nil { + return err + } + + // Iterate through attachments. + for attachmentIterator.Next() { + attachment := attachmentIterator.Value() + + var attachmentOutputPath string + + if attachment.GetAttachLongFilename() != "" { + attachmentOutputPath = fmt.Sprintf("attachments/%d-%s", attachment.Identifier, attachment.GetAttachLongFilename()) + } else { + attachmentOutputPath = fmt.Sprintf("attachments/UNKNOWN_%d", attachment.Identifier) + } + + attachmentOutput, err := os.Create(attachmentOutputPath) + + if err != nil { + return err + } + + if _, err := attachment.WriteTo(attachmentOutput); err != nil { + return err + } + + if err := attachmentOutput.Close(); err != nil { + return err + } + } + + if attachmentIterator.Err() != nil { + return attachmentIterator.Err() + } + } + + return messageIterator.Err() + }); err != nil { + panic(fmt.Sprintf("Failed to walk folders: %+v\n", err)) + } + + fmt.Printf("Time: %s\n", time.Since(startTime).String()) +} diff --git a/cmd/writer.go b/cmd/writer/main.go similarity index 96% rename from cmd/writer.go rename to cmd/writer/main.go index d300d4e..0104336 100644 --- a/cmd/writer.go +++ b/cmd/writer/main.go @@ -69,12 +69,13 @@ func WritePSTFile(outputName string) (int64, error) { // Ideally all writes should be aligned on this boundary (FormatTypeUnicode4k). // We could also add support for Linux I/O URing (https://en.wikipedia.org/wiki/Io_uring). // You can use your own io.WriteSeeker. + // At the end of the day the bottleneck is still being limited by disk I/O. concurrentWriter := concurrent.NewWriterAutoFlush(outputFile, 4096, 0.75) // Write options. formatType := pst.FormatTypeUnicode4k encryptionType := pst.EncryptionTypePermute - writeOptions := pst.NewWriteOptions(formatType, encryptionType) + options := pst.NewOptions(formatType, encryptionType) // Write group for Goroutines (all writers run here). writeCancelContext, writeCancelFunc := context.WithCancel(context.Background()) @@ -83,7 +84,7 @@ func WritePSTFile(outputName string) (int64, error) { defer writeCancelFunc() // Writer. - writer, err := pst.NewWriter(concurrentWriter, writeGroup, writeOptions) + writer, err := pst.NewWriter(concurrentWriter, writeGroup, options) if err != nil { return 0, eris.Wrap(err, "failed to create writer") diff --git a/data/test-from-aspose.ost b/data/test-from-aspose.ost new file mode 100644 index 0000000000000000000000000000000000000000..3cde363a552075fe9a7d526130e4cc0c68ff452d GIT binary patch literal 271360 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®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 U4=5i6eB}Zi0?>~DFV7(V4_m1V=l}o! literal 0 HcmV?d00001 diff --git a/docs/libpff.pdf b/docs/libpff.pdf new file mode 100644 index 0000000000000000000000000000000000000000..18852ac7491de3fd37df7c185030e0ae4ee59f73 GIT binary patch literal 220508 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%0A8@2l?3E(u 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 z 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�Ht10f!O>m2S?_{krixo~B9Gf*+8)7$)Ztsrfqm@6w&N>{k%P#NV05*Tj zG5zXJdYf%q(MLvjw-2n2+Orw2QQo4#!ZdeSa{V(^c?nzcs^J1OYJbmQj}*m29=}MC zCj86UBJ-WSkh@LbP?58rHNFBQVVTkl{UpmiuajNObo?f_`234;#&a zs+Jp9Z3zbjXJrEi2b|SdHcH@~FQtw35`e{AVX=*(A%5_32t(rmH%mv}la zE}=r}k%>OME3Qy%VJp zi$DVFu=4h2@1@dsG2$MgYoARr6zkLKAyfTwKY=JlIkzRY1b}uXqO4OrW9W$-1hJM> zM2HUpWUX&(`Iy!Ya_R8AL7!@JPh>iyIah7pYV@kEW+6qUU}zfP?Qq?X_cKPV7V{R0 zO&a^dp|Sj!=y&lPjPSm_Yu<8^Am)AuvH^*YK0_6jdln*eFAua1yBkjiELV@n3H>{F zn0J6h6T2JcY#X+9Kd|1Jc#SZTLU~6~qbYL1$em%?gu!+su`xM`V-_R6bhb4}rMXNE+8 zX2s!6m{vP!m?%ou2gwDM9W*g9qT>p1!a((^tdmx#={-95RkB-x(&DtT^3-ag`cX)^ z@e(%?BhMS>k@tqL`SObbdM61HCdt{_?EJT-2&T1a^OKi|_WCauy}?_q#5Hv-Rpm(& z^G2f!z3sKlE~xd>P^Tn)m8`WzS=B6yxzqDZ&fd&sdphh!(LpBYd7HxA@9i07?u!ui zavmBqBz5$uQB&=AwKYq|ZQP{$-2r=pDC>z^)(*f? zQlKzL@Qc}W*pHSC9xZdXbjhdvp8M)5HC5x$QAijZ^v+mf`y}1%evh5QJA`msB_>98 z(-5Q(nku{8F@aa9C~s!2syNd~HEDRdRAYVqb15)Eqp|vj$!s7IIc;(N4BMs?$2+Ga zccH*lAXmO7AKzrTPBTutM%}VhXI*WT{UGl~QIKmp;I0UP8z1&+D0+{Sz8=}U5Pc|s zV_bT?KM4tC>DKfyesv)GgO8Dzg(n-FdNyBNU23l3aPz$KgA8XP9Hs z{=(Ss7F&UAJyp4!^*j2fT%=HXTA3K-?mn`uEw@6WMd4NsE%RRU-ouc7Cw@Nu9>I6v zqs5)%_#IT{*P?_%@!EozgoOnTl;v`|a(%@SpjNPx&nTueYs=!nLh;Fx#gmM_0z9aw z{Se44|5OSzLms6)8!}$SxP9>sg_oMRd$L-QP>Y0>ih=IoXP{4H5*aUA{uIIzg^xtN^h6Tq2rf5u|dYY{x)z z^0cyF|T4*iwvP;FARWkH zxibQgZJU2{K~m1*+&>Uy_(i11^p%SGYl*4CvQ)IaWS5I`#RSaH!tkU7Fpo$p(s3Fq z0HzZ+ilOCm-P$9PkOg+62cR$f^2!KMQ|vP&)q^vlFORDMLZ<%^Qw`-YGLEx_qR=B0 zV?+K^LmFR$L2WWky35oM+L;tEFPCv9*@w}fJv+>)}?@YoBVpbZA3}~LgZm784;^Rf%!b;Mt>8}(hApr$W!QQdAp&)@!J3T8`f(@)K zoDOnL{0(M`nO%?BrQjlh1X(RLB?pTPIF$`z29zH_0*(|2Fp=OzO^~}ka=|Ta;D3z= zMuqN*(^-zI5@DnP?X3jtl%H4r?C>=;C7=Ky@e|mV>aB{6t=)~0#DbF&0`9?zit?M) zC@vl%=&jY`&?vaojyjGEat;b;^fhJr2`LjHoF7k#6{XegtOOP}(ch!Nj)mj$o?Cl- zIVwx{6MdZl(4rbEGRo#jNWhVMR!()_iV_FX|0ecY)KNv3;@2{6D$W`PMikU6-E~mF zMNJeW0<2{!RN&Bwc(GBqOJo#mG*o;4ynwDN8xuNcwCtm|n8P1j2In^^{8f3jq~RG9 zQ#n%)S%@$n0BQhNfSjWob~)tV$$$+|LNj#Nk^mwQEV(}FvS?ZH_P8-l0eTJchnsLZ zfX9koWD!D!R3I`G?Fw1th@0U1f((C>I((MKrs>Rsny{Zgzfvi4KJ?Ufi|)G`JjQ6nRNg7;BSz1Px+2C17e4J=rE{(Lp!0tmd&GI!BomJVo&v1utwt{x zXc$tyQ%cBx{ra;?Vp!GXF|h*580EwDa7aC+r^XuTCg6a!Gh0yH z+_y_dtbvg5Cus@AH}$I$eU?(ASs}}zQZjlhm2X(s$P%&AN3hS=d30NRr&Zz3R^Fx% zCKC9_Tag9|e7)d&I0oyCx+guvqp-pOEAJ$}-jSSV0X39ui*tzZHr}0wK;l<#oDWuc z;j>6ju;9*U%sFovea3=>TNCL%eQX9Z0E?U%Mss0`^!DMtRvmZ$40KHrU4&e!p4xE1 z`Rb0<+E*uw%4aZl`v(r==56WksPSyfr+kTH9Nf{oc3fflg=rr8RJ0vbujig%P`>H3R=b5Zm~~vxE6$gbU|xXG@~3C89goah&ln|& zqOGVBuERp_l`7O7k4m45sVdPOV_o*WeJ+{V>@p3g^ueyC#W|US83o4MZa*w^29D53 zkL$Wzi!zT?jP|e&e1v6D@6&Swb29@UF&f5as`xbmlKhA=2vhCDxoc4|p1XYxJ@u{w zDQPvmeG^e^x7ag#9rSLTGAL8$8nSqKf%{FsrZw3eK49K5?$mHo)FPtzI6*I{Xp*2* z?<+3Vc2`GDR_A4sueTKZi$_#sjBonpw~9y4NApRmvkl9X&1?ZBHGDc|(CB19nx{uT z)TqQ;Ri75l6-2W2qj*BIpT!}0pOLY6>|O@mNK^7jug@tcmjDe=?-^$x%HnR854;dx z^BEqn(U(bDr}Q%ojT?qHheIFHmT(-f9B|XwoljR94Z=V(@c-aY9Dcp+55CK}YI8<> z?@tj7aE=lzhO1pusm0-{5&?eCCFN|@?DYKoUcdi(-}~SDUw3!@?V}?WPTF?h)e&7T zIQ^9mSG<1qmTm_pxVpjN9o#u3Ycfho6f7+ZY9{jiDp`Df625j#) zbo8)p(~tetrfVOY`_4my?%wd%FHTxKG}+qqi(?)ynbx}Ioda73UV6jSRXZ}fkFV(T z-V^h?r|m6UU-{6%{k^@1oU-Np^}DWK_Sve@FRh+m*{5~f`%iTHds%@{^pgZzgs;0 z(w5ZM&oz&IAa~r(-`w8ioNhCBjW<4AJA3%{ujlOC_v-Q6uBfOP^yV|#!ZR10yl=zh zJGS(w9MUuST=(AJ?CEuA^}!3ypWDmY-u%+?H3#3GTtBa7(D&!37K}e8_tc)LoBny` zqVjt;Hh+2DisqJ0XDrxq%g1ByJZZ^CCtcWOR+l?&9CPf=smZt%4b^QY_aXT+edR%|$9{@ckb|JZAt+qM2@xAvQUU-5rp?>0x!!#Gtp|&$ciz$T$bl|f zPVGAArYG(hw{_*@C)afTN9({oeYc-Hu=RI8Ui*i6#?{KY%;LM(bWNYQa(T_>AI&IV zzr^aj8O;k1>EL$-5y?JLQ|9t4Ymlo{*{0GKTXM5?3pQWpxTz0>` ztL4+?NB{GS*PP+ScdTmHvySqG(TDYMy0N~I-rZ_k>K@AF63LbUp7r;x~10u54YCv=qP3J>&ClAL# z2_(xkBRocXCLb4x`(G@2nRJkYrmY2v#!Mo2J*FXBU75*ENQ_C9Coaj%%1w$?Y^%mw z6UJ24WD;Yl8fZU`=W~_LG-jI`sxytarvJ+7QJE>VRrDHq(u3t$iff{m4{yje&A?`& zN^Eqfs&AY@7pb0|NLHegH`i8Y(!)y=7b!Vxf*3X|kpz!uqfwz_GpRoI?FmB}cJCUVu%nP@-edl)57)wN!sM{9Qx3Rk? z>Py%fQ)rfWKaHRzUD!=i7+*sCB56qoFbc#HBfg*|L%{pOuw=-{%_Cbu-P@3{+bB4A z8!~$H*42V)i8lm`0}5|xD=bSKX$bDk+vf_)l8oLQbQP2(KcW+~WEC8}Eg8M7f}=Nf zoJP^xDmZ#uGJ4wuM{iq3Z@b`uw=JW$U2ycaW%PCm9(y}-?Clgh_I70Sb_yPQV|#ZL z1e}7$-q@KQWyvi#db=`uy9GyYS4MBQ;OLFpBBF-#3Xa~MjNY0U3M8{lv;bsc1+<}& zR)W~fiIG+G12JMYM8=^K>ml;xCR$i{EhNh}|89u72 zn)vNtk;=Cazl@DCHp)l_wnsQaMIP-0QjlO~<(((~xO~pZU%bh$44njRUiYn{}XYu$vc! z*afS3#Rkf5W06-d(g|_{R-fwc_3 zuv4LCWwv$QE(SXtvCYa1*_MM6O^k34>m=l|f#HviZPcRnhxiZrF{_@ANuGe_kUXUJ;G4^kOd)on z9MN!@D5g^R0Hp+PWSO`VF_zk%E}4r59OM$XpNo(ci`q4Da?`Fi1|o~VDtjY?E2$$? z37HJ=#9~H72xuYjl1c)TvuZ+1tM_wiHJayBe4Tm>`;WTQw1#R_-1k7 zF?7s$7j_uxm~>3u7={86lK_Tn9D1vxhW6rFwJ5Hs7Q^{EvRK?mLO|ZGkwoKw1y(v4 zf&85~47g*CNzxz;J3K6)Zr)%#3HK#nXfSM78mL5Qh<2P<2*APT;S44kiWExz1#$QT z)>$kPlgd%orVsrlaYG|f`Orw9+hw6Kc=9fYVryR1_X6h(x(^Rwg1d1#G+;izZWrTH$#jzI1t|L2FuU6(?DhtE$V^AWpAAPT5Z~7bPlY zWa>+*bG6y}2|iOi8r3(|)hYZ>#pQoeo0*wufO)27D7TzxL~but+c=}HYIZ7H&C?Rj zFVpNMQPGsEtF7m(HG60gM&bIJ{+aso##Ii8%zt>5Cp4@ux1mlFb|4;W*_%KM#$fV5 znyYXuL9uh-fgv35xnSU;>ri2B3~i^|=Q?Bs@sq%1m`Gn0lGS zMu=W$o%$}KTn9>;Vk4vU*)NN<5`M`c=p zf3k}SMd$+UTV*0!lKbEj>OKTM(kWe!-HcqYGZ(*e?PGt?Y~blBiB zrKvg-mSa`|HzIS=@4T6V-o)aNsd0|4iEERZ4g8}(!Jt(JZXS4)!n0%gr_RSIPjxj% z^K{*G2da8MRqZ!GK)PALr6TOqvArT(D)>`u%R*Xms=_o~bzB#?Pk&0iPorZ(dioP+ zriYP1r0J@w(uN?BhGUDi8Avo+1>%V`)YWK}R;1zB)&aFqnoJd1mBhDYR5o_0Q zXe5y8nl$E%G-%hQaV|=;z)X~ec4-4)tXy1wP(i$1L_e{*n#`Z7x>h^7^5U|&7H!Om z@T_TuA+@2yMQ9a7E=PlJlx8|KE{ZhN)m2FjRWlu0eiX~8nr+e0F49ofpnYm0jmpu; z7NxlmBuYbF6I-}qKc@m5P4Bi zF6Pfrfox0Ejr$+UQK%NZo{NQpC=GROxqqMwI*z0l)r3P!zJ|JPOg5CGxG~bMX&@?y z(ool<#R0jT?0*=S4PDX;xlqi9P>y2R==D5PliEOComPzGaug#+Xn+kFPf^!YC7Tn% z(!R%NUEQRxT%@5cpgu|?t5GyAmcv*GXp7QN7b8%VM&)GwRLgN`Td8pel zT^qc_>v|M`i`N4X$1&SR&?xCe*L01xl0@s;E=^D(GzShS=>TuT*_HYcHW<-&?9-c2E*+})UEmm&BgYG5S0L7T+%GU$Sv2unL)4gX{w!|~w*^%)8 zup1vMJX4qZ8+BiKTp$|F2Ss^7^JIU~5RhpS&!EM4f$KW*m`60ZPlM*k7y&c@QcApF z?4jlU2!FcgdXi3ou!yFla)zqOc%T`8cF9kHx_E+?RM%8Z8MD!&EjfMx4IU%cMJJ5Y zOv>9vs&$4VbGA&Y{(Lkg8M1&XWt1{0vlq&fjOk~Jo zJW$Py*%CClucBOR{J@jTII9@p#j(wp4iHVsxJwbHJbr-Y%JGoqd6pdiQH&nLd#pIh zw$wqRl@5_V#NKK~4Z&I4 z^>PhWc(`W+J&v@pb`GAjXM2fsHcPo%cs)|qiHqu|X7LL=@UN6IK^fwzrR7#iD@Slu zX5dx?!z?K^&6MGRT}<|nZ~OKlv~q>@qvW(q^;L~c)0KptN?K;Byu@_P(lXWX07! 0 -func NewBTreeNodeBranch(identifier Identifier) BTreeNode { - return BTreeNode{ - Identifier: identifier, - } -} -// NewBTreeNodeLeaf creates a new BTreeNode leaf with a NodeLevel == 0 -func NewBTreeNodeLeaf(identifier Identifier) BTreeNode { - return BTreeNode{ - Identifier: identifier, - NodeLevel: 0, - } + // These variables are from the new OST format which uses ZLib. + // References https://web.archive.org/web/20160528150307/https://blog.mythicsoft.com/2015/07/10/ost-2013-file-format-the-missing-documentation/ + CompressedSize uint16 `json:"compressedSize"` + DecompressedSize uint16 `json:"decompressedSize"` } -// WriteTo writes the byte representation of the B-Tree node. -func (btreeNode *BTreeNode) WriteTo(writer io.Writer) (int64, error) { - if btreeNode.NodeLevel > 0 { - // Branch - btreeNodeBuffer := bytes.NewBuffer(make([]byte, 0)) - - // - - return btreeNodeBuffer.WriteTo(writer) - } else { - // Leaf - btreeNodeBuffer := bytes.NewBuffer(make([]byte, 0)) - - // - - return btreeNodeBuffer.WriteTo(writer) - } -} - -// NewBTreeNodeReader is used by the Heap-on-Node. +// NewBTreeNodeBranch creates a new BTreeNode with a NodeLevel > 0 +// References +//func NewBTreeNodeBranch(identifier Identifier) BTreeNode { +// return BTreeNode{ +// Identifier: identifier, +// } +//} +// +//// NewBTreeNodeLeaf creates a new BTreeNode leaf with a NodeLevel == 0 +//// References +//func NewBTreeNodeLeaf(identifier Identifier) BTreeNode { +// return BTreeNode{ +// Identifier: identifier, +// NodeLevel: 0, +// } +//} + +// NewBTreeNodeReader is used by the HeapOnNode. func NewBTreeNodeReader(btreeNode BTreeNode, reader Reader) *io.SectionReader { return io.NewSectionReader(reader, btreeNode.FileOffset, int64(btreeNode.Size)) } @@ -202,10 +197,11 @@ func (file *File) GetBTreeNodeRawEntries(btreeNodeOffset int64, callback func([] var outputBuffer []byte switch file.FormatType { + case FormatTypeUnicode4k: + // References https://web.archive.org/web/20160528150307/https://blog.mythicsoft.com/2015/07/10/ost-2013-file-format-the-missing-documentation/ + outputBuffer = make([]byte, 4056) case FormatTypeUnicode: outputBuffer = make([]byte, 512) - case FormatTypeUnicode4k: - outputBuffer = make([]byte, 4056) // TODO - Check case FormatTypeANSI: outputBuffer = make([]byte, 512) default: @@ -219,7 +215,18 @@ func (file *File) GetBTreeNodeRawEntries(btreeNodeOffset int64, callback func([] } } +// GetBTreeNodeEntryCompressedSize is only used for Unicode 4k. +func GetBTreeNodeEntryCompressedSize(btreeNodeEntryData []byte) uint16 { + return binary.LittleEndian.Uint16(btreeNodeEntryData[16 : 16+2]) +} + +// GetBTreeNodeEntryDecompressedSize is only used for Unicode 4k. +func GetBTreeNodeEntryDecompressedSize(btreeNodeEntryData []byte) uint16 { + return binary.LittleEndian.Uint16(btreeNodeEntryData[18 : 18+2]) +} + // GetBTreeNodeEntries returns the entries in the b-tree node. +// References TODO func (file *File) GetBTreeNodeEntries(btreeNodeOffset int64, btreeType BTreeType, callback func(btreeNodeEntries []BTreeNode, nodeLevel uint8, err error)) { parentBTreeNodeLevel, err := file.GetParentBTreeNodeLevel(btreeNodeOffset) @@ -265,27 +272,29 @@ func (file *File) GetBTreeNodeEntries(btreeNodeOffset int64, btreeType BTreeType NodeLevel: parentBTreeNodeLevel, } } + + // Unicode 4k is used by OST and is the new format which supports ZLib. + // ZLib support is handled by ZLibDecompressor which is used by the HeapOnNodeReader. + if file.FormatType == FormatTypeUnicode4k { + btreeNodeEntries[i].CompressedSize = GetBTreeNodeEntryCompressedSize(btreeNodeEntryData) + btreeNodeEntries[i].DecompressedSize = GetBTreeNodeEntryDecompressedSize(btreeNodeEntryData) + } } + // TODO - Use channels. callback(btreeNodeEntries, parentBTreeNodeLevel, nil) }) } // GetBTreeNodeEntryIdentifier returns the Identifier of this b-tree node entry. -// References "The b-tree entries". +// References "The b-tree entries" (TODO). func GetBTreeNodeEntryIdentifier(btreeNodeEntryData []byte, formatType FormatType) Identifier { - return GetIdentifierFromBytes(btreeNodeEntryData[:GetIdentifierSize(formatType)], formatType) + return GetIdentifierFromBytes(btreeNodeEntryData[:GetIdentifierSize(formatType)]) } // GetIdentifierFromBytes returns the Identifier type from bytes. -func GetIdentifierFromBytes(identifierBytes []byte, formatType FormatType) Identifier { - switch formatType { - case FormatTypeANSI: - return Identifier(binary.LittleEndian.Uint32(identifierBytes)) - default: - // TODO - Reference [MS-PDF] that this is actually 32-bit - return Identifier(binary.LittleEndian.Uint32(identifierBytes)) - } +func GetIdentifierFromBytes(identifierBytes []byte) Identifier { + return Identifier(binary.LittleEndian.Uint32(identifierBytes)) } // GetIdentifierSize returns the size of an Identifier. @@ -300,16 +309,16 @@ func GetIdentifierSize(formatType FormatType) uint8 { // Identifier represents a b-tree node identifier. // TODO - Document the int types per use case and use separate types. +// Used by B-Tree nodes. type Identifier int64 -// NewIdentifier creates a new identifier. -// Used by the writer so the B-Tree node can be identified. +// NewIdentifier creates a new Identifier. +// Used by the writer so the BTreeNode can be identified. func NewIdentifier(formatType FormatType) (Identifier, error) { var identifierSize int switch formatType { case FormatTypeUnicode4k: - // TODO - Check this identifierSize = 8 case FormatTypeUnicode: identifierSize = 8 @@ -376,7 +385,7 @@ func (identifier Identifier) Bytes(formatType FormatType) []byte { type IdentifierType uint8 // Constants defining the identifier types. -// References "Identifier types". +// References "Identifier types" (TODO). const ( IdentifierTypeHID IdentifierType = 0 IdentifierTypeInternal IdentifierType = 1 @@ -401,7 +410,7 @@ const ( ) // GetBTreeNodeEntryFileOffset returns the file offset for this b-tree branch or leaf node. -// References "The b-tree entries". +// References "The b-tree entries" (TODO). func GetBTreeNodeEntryFileOffset(btreeNodeEntryData []byte, isBranchNode bool, formatType FormatType) int64 { if isBranchNode { switch formatType { @@ -421,28 +430,28 @@ func GetBTreeNodeEntryFileOffset(btreeNodeEntryData []byte, isBranchNode bool, f } // GetBTreeNodeEntryDataIdentifier returns the node identifier of the data (in the block b-tree). -// References "The b-tree entries". +// References "The b-tree entries" (TODO). func GetBTreeNodeEntryDataIdentifier(btreeNodeEntryData []byte, formatType FormatType) Identifier { switch formatType { case FormatTypeANSI: - return GetIdentifierFromBytes(btreeNodeEntryData[4:4+GetIdentifierSize(formatType)], formatType) + return GetIdentifierFromBytes(btreeNodeEntryData[4 : 4+GetIdentifierSize(formatType)]) default: - return GetIdentifierFromBytes(btreeNodeEntryData[8:8+GetIdentifierSize(formatType)], formatType) + return GetIdentifierFromBytes(btreeNodeEntryData[8 : 8+GetIdentifierSize(formatType)]) } } -// GetBTreeNodeEntryLocalDescriptorsIdentifier returns the identifier to the local descriptors in the block b-tree. +// GetBTreeNodeEntryLocalDescriptorsIdentifier returns the Identifier to the local descriptors in the block b-tree. func GetBTreeNodeEntryLocalDescriptorsIdentifier(btreeNodeEntryData []byte, formatType FormatType) Identifier { switch formatType { case FormatTypeANSI: - return GetIdentifierFromBytes(btreeNodeEntryData[8:8+GetIdentifierSize(formatType)], formatType) + return GetIdentifierFromBytes(btreeNodeEntryData[8 : 8+GetIdentifierSize(formatType)]) default: - return GetIdentifierFromBytes(btreeNodeEntryData[16:16+GetIdentifierSize(formatType)], formatType) + return GetIdentifierFromBytes(btreeNodeEntryData[16 : 16+GetIdentifierSize(formatType)]) } } // GetBTreeNodeEntrySize returns the size of the data in the block b-tree leaf node entry. -// References "The b-tree entries". +// References "The b-tree entries" TODO References func GetBTreeNodeEntrySize(btreeNodeEntryData []byte, formatType FormatType) uint16 { switch formatType { case FormatTypeANSI: @@ -490,10 +499,14 @@ func (file *File) WalkAndCreateBTree(btreeOffset int64, btreeType BTreeType, btr file.GetBTreeNodeEntries(btreeOffset, btreeType, func(nodeEntries []BTreeNode, nodeLevel uint8, err error) { if nodeLevel > 0 { // Branch node entries. + // TODO - Use channels and Goroutines per walk route branch. + // TODO - Linux I/O URing + // TODO - Align to Linux 4096 bytes. for i := 0; i < len(nodeEntries); i++ { nodeEntry := nodeEntries[i] if _, exists := btreeStore.Load(nodeEntry); exists { + // TODO - *errgroup.Group so we can use errors properly. panic(errors.WithStack(ErrBTreeNodeConflict)) } @@ -503,6 +516,7 @@ func (file *File) WalkAndCreateBTree(btreeOffset int64, btreeType BTreeType, btr // Leaf node entries for i := 0; i < len(nodeEntries); i++ { if _, exists := btreeStore.Load(nodeEntries[i]); exists { + // TODO - *errgroup.Group so we can use errors properly. panic(errors.WithStack(ErrBTreeNodeConflict)) } } diff --git a/pkg/doc.go b/pkg/doc.go index c638b97..e2b6c34 100644 --- a/pkg/doc.go +++ b/pkg/doc.go @@ -15,5 +15,5 @@ // limitations under the License. // Package pst implements reading Personal Storage Table (.pst) files. -// See cmd/reader.go and cmd/writer.go +// See cmd/reader/main.go and cmd/writer/main.go package pst diff --git a/pkg/file.go b/pkg/file.go index fdb801d..0f3502d 100644 --- a/pkg/file.go +++ b/pkg/file.go @@ -28,6 +28,7 @@ import ( // File represents a PST file. type File struct { Reader Reader + Options Options FormatType FormatType EncryptionType EncryptionType NodeBTree BTreeStore @@ -35,9 +36,17 @@ type File struct { NameToIDMap *NameToIDMap } +// Options defines the options used during reading and writing. +type Options struct { + // formatType represents the FormatType (Unicode or ANSI). + formatType FormatType + // encryptionType represents the EncryptionType. + encryptionType EncryptionType +} + // Reader defines the file reader used by go-pst to support asynchronous I/O. // Non-linux systems will fall back to DefaultReader. -// See AsyncReader. +// See AsyncReader TODO. type Reader interface { ReadAtAsync(outputBuffer []byte, offset uint64, callback func(err error)) (uint64, error) io.ReaderAt // Blocking call. @@ -306,3 +315,8 @@ func (defaultReader *DefaultReader) ReadAtAsync(outputBuffer []byte, offset uint return 0, err } + +// NewOptions represents the options used during reading and writing. +func NewOptions(formatType FormatType, encryptionType EncryptionType) Options { + return Options{formatType: formatType, encryptionType: encryptionType} +} diff --git a/pkg/folder.go b/pkg/folder.go index 0046fc5..88a446c 100644 --- a/pkg/folder.go +++ b/pkg/folder.go @@ -28,40 +28,43 @@ type Folder struct { // Properties are populate by the PropertyContext. // See GetPropertyContext. Properties *properties.Folder + + // TODO - Remove pointer so this can be used by the writer separately? + File *File } // NewFolder creates a new Folder with the properties for the FolderWriter. -func NewFolder(properties *properties.Folder) *Folder { - return &Folder{ - // Identifier is set by the FolderWriter, TODO move here? - //Identifier: - Properties: properties, - } -} +//func NewFolder(properties *properties.Folder) *Folder { +// return &Folder{ +// // Identifier is set by the FolderWriter, TODO move here? +// //Identifier: +// Properties: properties, +// } +//} // NewFolderWithIdentifier creates a Folder with the specified identifier for the FolderWriter. -func NewFolderWithIdentifier(identifier Identifier, properties *properties.Folder) *Folder { - return &Folder{ - Identifier: identifier, - Properties: properties, - } -} +//func NewFolderWithIdentifier(identifier Identifier, properties *properties.Folder) *Folder { +// return &Folder{ +// Identifier: identifier, +// Properties: properties, +// } +//} // GetPropertyContext returns the PropertyContext of the Folder. -func (folder *Folder) GetPropertyContext(file *File) (*PropertyContext, error) { - rootFolderDataNode, err := file.GetDataBTreeNode(IdentifierRootFolder) +func (folder *Folder) GetPropertyContext() (*PropertyContext, error) { + rootFolderDataNode, err := folder.File.GetDataBTreeNode(IdentifierRootFolder) if err != nil { return nil, eris.Wrap(err, "failed to get data b-tree node") } - rootFolderHeapOnNode, err := file.GetHeapOnNode(rootFolderDataNode) + rootFolderHeapOnNode, err := folder.File.GetHeapOnNode(rootFolderDataNode) if err != nil { return nil, eris.Wrap(err, "failed to get Heap-on-Node") } - propertyContext, err := file.GetPropertyContext(rootFolderHeapOnNode) + propertyContext, err := folder.File.GetPropertyContext(rootFolderHeapOnNode) if err != nil { return nil, eris.Wrap(err, "failed to get property context") @@ -75,16 +78,16 @@ func (file *File) GetRootFolder() (*Folder, error) { return &Folder{ Identifier: IdentifierRootFolder, Properties: &properties.Folder{ - // TODO - Extend Name: "IdentifierRootFolder", + // TODO - Extend }, }, nil } // GetSubFoldersTableContext returns the TableContext for the sub-folders of this folder. // Note this limits the returned properties to the ones we use in the Folder struct. -func (folder *Folder) GetSubFoldersTableContext(file *File) (TableContext, error) { - nodeBTreeNode, err := file.GetNodeBTreeNode(folder.Identifier + 11) // +11 is the identifier of the sub-folders. +func (folder *Folder) GetSubFoldersTableContext() (TableContext, error) { + nodeBTreeNode, err := folder.File.GetNodeBTreeNode(folder.Identifier + 11) // +11 is the identifier of the sub-folders. if err != nil { return TableContext{}, eris.Wrap(err, "failed to get node b-tree node") @@ -119,9 +122,9 @@ func (folder *Folder) GetSubFoldersTableContext(file *File) (TableContext, error // GetSubFolders returns the sub-folders of this folder. func (folder *Folder) GetSubFolders() ([]Folder, error) { - if !folder.HasSubFolders { + if !folder.Properties.HasSubFolders { // TODO - Update from new properties.Folder // If there are actually no sub-folders this references a folder that doesn't exist. - // java-libpst doesn't perform this check so I assumed property ID 26610 always indicated there is a sub-folder. + // java-libpst doesn't perform this check, so I assumed property ID 26610 always indicated there is a sub-folder. // Special thanks to James McLeod (https://github.com/Jmcleodfoss/pstreader) for telling me to check if there are actually sub-folders. return nil, nil } @@ -147,7 +150,7 @@ func (folder *Folder) GetSubFolders() ([]Folder, error) { } switch { - case property.ID == 12289: + case property.Identifier == 12289: // TODO - Check if this is String8 on ANSI FormatType. folderName, err := propertyReader.GetString() @@ -155,8 +158,8 @@ func (folder *Folder) GetSubFolders() ([]Folder, error) { return nil, eris.Wrap(err, "failed to get folder name") } - subFolder.Name = folderName - case property.ID == 26610: + subFolder.Properties.Name = folderName + case property.Identifier == 26610: identifier, err := propertyReader.GetInteger32() if err != nil { @@ -164,22 +167,24 @@ func (folder *Folder) GetSubFolders() ([]Folder, error) { } subFolder.Identifier = Identifier(identifier) - case property.ID == 13826: + case property.Identifier == 13826: messageCount, err := propertyReader.GetInteger32() if err != nil { return nil, eris.Wrap(err, "failed to get message count") } - subFolder.MessageCount = messageCount - case property.ID == 13834: + // TODO - Extend properties.Folder + subFolder.Properties.MessageCount = messageCount + case property.Identifier == 13834: hasSubFolders, err := propertyReader.GetBoolean() if err != nil { return nil, eris.Wrap(err, "failed to get has sub folders") } - subFolder.HasSubFolders = hasSubFolders + // TODO - Extend properties.Folder + subFolder.Properties.HasSubFolders = hasSubFolders } } diff --git a/pkg/heap_on_node_reader.go b/pkg/heap_on_node_reader.go index c2a4031..f678902 100644 --- a/pkg/heap_on_node_reader.go +++ b/pkg/heap_on_node_reader.go @@ -17,12 +17,24 @@ package pst import ( + "bytes" + "fmt" + "github.com/rotisserie/eris" "io" "sort" ) +// HeapOnNodeReader implements io.SectionReader. +type HeapOnNodeReader struct { + zLibDecompressor ZLibDecompressor + blocks []io.SectionReader + blockOffsets []int64 + totalBlockSize int64 + options Options +} + // NewHeapOnNodeReader creates a new Heap-on-Node reader. -func NewHeapOnNodeReader(encryptionType EncryptionType, blocks ...io.SectionReader) *HeapOnNodeReader { +func NewHeapOnNodeReader(options Options, blocks ...io.SectionReader) *HeapOnNodeReader { blockOffsets := make([]int64, len(blocks)) blockOffset := int64(0) @@ -33,60 +45,71 @@ func NewHeapOnNodeReader(encryptionType EncryptionType, blocks ...io.SectionRead } return &HeapOnNodeReader{ - Blocks: blocks, - BlockOffsets: blockOffsets, - TotalBlockSize: blockOffset, - EncryptionType: encryptionType, + blocks: blocks, + blockOffsets: blockOffsets, + totalBlockSize: blockOffset, + options: options, } } -// HeapOnNodeReader implements io.SectionReader. -type HeapOnNodeReader struct { - Blocks []io.SectionReader - BlockOffsets []int64 - TotalBlockSize int64 - EncryptionType EncryptionType -} - // Size is the total byte size. func (heapOnNodeReader *HeapOnNodeReader) Size() int64 { - return heapOnNodeReader.TotalBlockSize + return heapOnNodeReader.totalBlockSize } // ReadAt is adapted from Brad Fitz (http://talks.golang.org/2013/oscon-dl/sizereaderat.go). -func (heapOnNodeReader *HeapOnNodeReader) ReadAt(p []byte, off int64) (n int, err error) { - wantN := len(p) +func (heapOnNodeReader *HeapOnNodeReader) ReadAt(p []byte, requestedOffset int64) (n int, err error) { + wantSize := len(p) // Skip past the requested offset. - skipParts := sort.Search(len(heapOnNodeReader.Blocks), func(i int) bool { - // This function returns whether parts[i] will + skipParts := sort.Search(len(heapOnNodeReader.blocks), func(i int) bool { + // This function returns whether blocks[i] will // contribute any bytes to our output. - part := heapOnNodeReader.Blocks[i] - return heapOnNodeReader.BlockOffsets[i]+part.Size() > off + part := heapOnNodeReader.blocks[i] + return heapOnNodeReader.blockOffsets[i]+part.Size() > requestedOffset }) - parts := heapOnNodeReader.Blocks[skipParts:] + blocks := heapOnNodeReader.blocks[skipParts:] // How far to skip in the first part. - needSkip := off - if len(parts) > 0 { - needSkip -= heapOnNodeReader.BlockOffsets[skipParts] + blockStartOffset := requestedOffset + if len(blocks) > 0 { + blockStartOffset -= heapOnNodeReader.blockOffsets[skipParts] } - for len(parts) > 0 && len(p) > 0 { + for len(blocks) > 0 && len(p) > 0 { readP := p - partSize := parts[0].Size() + partSize := blocks[0].Size() - if int64(len(readP)) > partSize-needSkip { - readP = readP[:partSize-needSkip] + if int64(len(readP)) > partSize-blockStartOffset { + readP = readP[:partSize-blockStartOffset] } - pn, err := parts[0].ReadAt(readP, needSkip) + pn, err := blocks[0].ReadAt(readP, blockStartOffset) if err != nil { return n, err } - switch heapOnNodeReader.EncryptionType { + // Detect ZLib used by BTreeNode in the Unicode 4k format (OST). + if heapOnNodeReader.options.formatType == FormatTypeUnicode4k { + zlibDecompressor, err := NewZLibDecompressor(&blocks[0]) + + if err != nil { + return 0, eris.Wrap(err, "failed to ZLib decompress, possibly not compressed") + } + + decompressedZLib := &bytes.Buffer{} + + // TODO - Which order in combination with Encryption? + if _, err := zlibDecompressor.Decompress(readP, decompressedZLib); err != nil { + return 0, eris.Wrap(err, "failed to decompress ZLib") + } + + fmt.Printf("Got decompressed ZLib: %s\n", decompressedZLib) + } + + // See DecodeCompressibleEncryption. + switch heapOnNodeReader.options.encryptionType { case EncryptionTypeNone: case EncryptionTypePermute: copy(readP, heapOnNodeReader.DecodeCompressibleEncryption(readP)) @@ -97,14 +120,14 @@ func (heapOnNodeReader *HeapOnNodeReader) ReadAt(p []byte, off int64) (n int, er n += pn p = p[pn:] - if int64(pn)+needSkip == partSize { - parts = parts[1:] + if int64(pn)+blockStartOffset == partSize { + blocks = blocks[1:] } - needSkip = 0 + blockStartOffset = 0 } - if n != wantN { + if n != wantSize { return n, io.ErrUnexpectedEOF } return n, nil @@ -138,3 +161,5 @@ func (heapOnNodeReader *HeapOnNodeReader) DecodeCompressibleEncryption(data []by return data } + +// TODO - EncodeCompressibleEncryption diff --git a/pkg/io_uring.go b/pkg/io_uring.go index 66ec93f..723c4da 100644 --- a/pkg/io_uring.go +++ b/pkg/io_uring.go @@ -37,6 +37,11 @@ func NewAsync(name string) (*File, error) { return New(asyncReader) } +// AsyncReader is an async reader using Linux I/O URing. +// TODO - This isn't properly used and is experimental. +// TODO - Note that there is a reference to Linux I/O URing in the standard libray: +// TODO - https://github.com/golang/go/issues/31908 +// TODO - We are currently using https://github.com/godzie44/go-uring switch to https://github.com/pawelgaczynski/giouring type AsyncReader struct { ring *uring.Ring eventLoop *reactor.Reactor diff --git a/pkg/message.go b/pkg/message.go index 62b486b..c9fc486 100644 --- a/pkg/message.go +++ b/pkg/message.go @@ -32,6 +32,9 @@ type Message struct { AttachmentTableContext *TableContext LocalDescriptors []LocalDescriptor // Used by the PropertyContext and TableContext. Properties msgp.Decodable // Type properties.Message, properties.Appointment, properties.Contact + + // TODO - Remove pointer so this can be used by the writer separately? + File *File } // NewMessage constructs a new Message. diff --git a/pkg/name_to_id_map_writer.go b/pkg/name_to_id_map_writer.go index cd6ca3a..a5ed4a0 100644 --- a/pkg/name_to_id_map_writer.go +++ b/pkg/name_to_id_map_writer.go @@ -16,7 +16,11 @@ package pst -import "io" +import ( + "github.com/rotisserie/eris" + "golang.org/x/sync/errgroup" + "io" +) // NameToIDMapWriter defines a writer for the Name-to-ID-Map. // References https://github.com/mooijtech/go-pst/blob/main/docs/README.md#name-to-id-map @@ -25,13 +29,20 @@ type NameToIDMapWriter struct { } // NewNameToIDMapWriter creates a new NameToIDMapWriter. -func NewNameToIDMapWriter() *NameToIDMapWriter { - return &NameToIDMapWriter{ - PropertyContextWriter: NewPropertyContextWriter(), +func NewNameToIDMapWriter(writer io.WriteSeeker, writeGroup *errgroup.Group, propertyContextWriteCallback chan int64, formatType FormatType) (*NameToIDMapWriter, error) { + propertyContextWriter, err := NewPropertyContextWriter(writer, writeGroup, propertyContextWriteCallback, formatType) + + if err != nil { + return nil, eris.Wrap(err, "failed to create Property Context writer") } + + return &NameToIDMapWriter{ + PropertyContextWriter: propertyContextWriter, + }, nil } func (nameToIDMapWriter *NameToIDMapWriter) WriteTo(writer io.Writer) (int64, error) { // The minimum requirement for the Name-to-ID Map is a PC node with a single property PidTagNameidBucketCount set to a value of 251 (0xFB) - return nameToIDMapWriter.PropertyContextWriter. -} \ No newline at end of file + //return nameToIDMapWriter.PropertyContextWriter. + return 0, nil +} diff --git a/pkg/writer.go b/pkg/writer.go index 73fb059..8948840 100644 --- a/pkg/writer.go +++ b/pkg/writer.go @@ -31,7 +31,7 @@ type Writer struct { // writeGroup represents the writers running in Goroutines. writeGroup *errgroup.Group // writeOptions represents options used while writing. - writeOptions WriteOptions + writeOptions Options // folderWriter represents the writer for folders. folderWriter *FolderWriter // folderWriteCallback represents the callback which is called after a folder is written. @@ -40,7 +40,7 @@ type Writer struct { // NewWriter returns a writer for PST files. // io.WriteSeeker must be a pointer so output can be redirected on overflow. -func NewWriter(outputFile io.WriteSeeker, writeGroup *errgroup.Group, writeOptions WriteOptions) (*Writer, error) { +func NewWriter(outputFile io.WriteSeeker, writeGroup *errgroup.Group, writeOptions Options) (*Writer, error) { // Stream writer. streamWriter := NewStreamWriter[io.WriterTo, int64](outputFile, writeGroup) @@ -63,29 +63,13 @@ func NewWriter(outputFile io.WriteSeeker, writeGroup *errgroup.Group, writeOptio }, nil } -// WriteOptions defines the options used during writing. -type WriteOptions struct { - // formatType represents the FormatType (Unicode or ANSI). - formatType FormatType - // encryptionType represents the EncryptionType. - encryptionType EncryptionType -} - -// NewWriteOptions creates a new WriteOptions used during writing PST files. -func NewWriteOptions(formatType FormatType, encryptionType EncryptionType) WriteOptions { - return WriteOptions{ - formatType: formatType, - encryptionType: encryptionType, - } -} - // IsANSI returns true if the FormatType is ANSI. func (pstWriter *Writer) IsANSI() bool { return pstWriter.writeOptions.formatType == FormatTypeANSI } -// IsUnicode returns true if the FormatType is Unicode. -func (pstWriter *Writer) IsUnicode() bool { +// IsUnicode4kOrUnicode returns true if the FormatType is Unicode. +func (pstWriter *Writer) IsUnicode4kOrUnicode() bool { return pstWriter.writeOptions.formatType == FormatTypeUnicode || pstWriter.writeOptions.formatType == FormatTypeUnicode4k } @@ -172,7 +156,7 @@ func (pstWriter *Writer) OverflowTo(writer io.WriteSeeker) { func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNodeBTree Identifier, rootBlockBTree Identifier) (int64, error) { var headerSize int - if pstWriter.IsUnicode() { + if pstWriter.IsUnicode4kOrUnicode() { // TODO - Where is the documentation for Unicode4k? // 4+4+2+2+2+1+1+4+4+8+8+4+128+8+ROOT+4+128+128+1+1+2+8+4+3+1+32 // Header + header root @@ -190,7 +174,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode header.Write([]byte{0x53, 0x4D}) // Magic client // File format version - if pstWriter.IsUnicode() { + if pstWriter.IsUnicode4kOrUnicode() { // TODO - Where is the documentation for Unicode4k? // MUST be greater than 23 if the file is a Unicode PST file. header.Write([]byte{30}) @@ -211,7 +195,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode header.Write(make([]byte, 4)) // Padding (bidUnused) for Unicode. - if pstWriter.IsUnicode() { + if pstWriter.IsUnicode4kOrUnicode() { header.Write(make([]byte, 8)) } @@ -225,7 +209,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // This can be used to increment a value for generating identifiers used by B-Tree nodes. // I assume it's faster to generate an identifier with crypto/rand instead of having to read and update this value. // go-pst does not read this. - if pstWriter.IsUnicode() { + if pstWriter.IsUnicode4kOrUnicode() { header.Write(make([]byte, 8)) } else if pstWriter.IsANSI() { header.Write(make([]byte, 4)) @@ -243,7 +227,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // Unused space; MUST be set to zero. Unicode PST file format only. // (qwUnused) - if pstWriter.IsUnicode() { + if pstWriter.IsUnicode4kOrUnicode() { header.Write(make([]byte, 8)) } @@ -254,7 +238,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // Unused alignment bytes; MUST be set to zero. // Unicode PST file format only. - if pstWriter.IsUnicode() { + if pstWriter.IsUnicode4kOrUnicode() { header.Write(make([]byte, 4)) } @@ -270,7 +254,7 @@ func (pstWriter *Writer) WriteHeader(writer io.Writer, totalSize int64, rootNode // rgbReserved header.Write(make([]byte, 2)) - if pstWriter.IsUnicode() { + if pstWriter.IsUnicode4kOrUnicode() { // Next BID. // go-pst does not read this value (bidNextB) header.Write(make([]byte, 8)) @@ -329,7 +313,7 @@ func (pstWriter *Writer) WriteInternalBTreeNodes(writer io.Writer) (int64, error func (pstWriter *Writer) WriteHeaderRoot(writer io.Writer, totalSize int64, rootNodeBTree Identifier, rootBlockBTree Identifier) (int64, error) { var headerSize int - if pstWriter.IsUnicode() { + if pstWriter.IsUnicode4kOrUnicode() { // 4+8+8+8+8+16+16+1+1+2 headerSize = 72 } else if pstWriter.IsANSI() { @@ -341,7 +325,7 @@ func (pstWriter *Writer) WriteHeaderRoot(writer io.Writer, totalSize int64, root header.Write(make([]byte, 4)) // dwReserved - if pstWriter.IsUnicode() { + if pstWriter.IsUnicode4kOrUnicode() { // The size of the PST file, in bytes. (ibFileEof) header.Write(GetUint64(uint64(totalSize))) // An IB structure (section 2.2.2.3) that contains the absolute file offset to the last AMap page of the PST file. diff --git a/pkg/zlib.go b/pkg/zlib.go new file mode 100644 index 0000000..7d6cc51 --- /dev/null +++ b/pkg/zlib.go @@ -0,0 +1,65 @@ +// go-pst is a library for reading Personal Storage Table (.pst) files (written in Go/Golang). +// +// Copyright 2023 Marten Mooij +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package pst + +import ( + "github.com/klauspost/compress/zlib" + "github.com/klauspost/readahead" + "github.com/rotisserie/eris" + "io" +) + +// ZLibDecompressor represents the ZLib decompressor used for Unicode 4k. +// Used by HeapOnNodeReader. +type ZLibDecompressor struct { + // reader Read-Ahead which uses a Goroutine to get the result. + // References: + // - https://github.com/klauspost/readahead + // - https://blog.klauspost.com/an-async-read-ahead-package-for-go/ + reader readahead.ReadSeekCloser + // zlibReader inflates (decompresses compressed) bytes using ZLib + // References https://github.com/klauspost/compress + zlibReader io.ReadCloser +} + +// NewZLibDecompressor creates a new ZLibDecompressor. +func NewZLibDecompressor(reader io.ReadSeeker) (*ZLibDecompressor, error) { + readAheadReader := readahead.NewReadSeeker(reader) + zlibReader, err := zlib.NewReader(readAheadReader) + + if err != nil { + return nil, eris.Wrap(err, "failed to create Z-Lib reader") + } + + return &ZLibDecompressor{ + reader: readAheadReader, + zlibReader: zlibReader, + }, nil +} + +// Decompress ZLib. +func (zlibDecompressor *ZLibDecompressor) Decompress(compressed []byte, outputBuffer io.Writer) (int64, error) { + // Decompress using ZLib. + if _, err := zlibDecompressor.zlibReader.Read(compressed); err != nil { + return 0, eris.Wrap(err, "failed to read compressed bytes for ZLib") + } + + // Copy the decompressed bytes to the output buffer. + return io.Copy(outputBuffer, zlibDecompressor.reader) +} + +// TODO - Compress.