// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.29.1 // protoc v3.20.3 // source: pairing.proto package protobuf 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 SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision int32 const ( SyncActivityCenterCommunityRequestDecision_ACCEPTED SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision = 0 SyncActivityCenterCommunityRequestDecision_DECLINED SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision = 1 ) // Enum value maps for SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision. var ( SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision_name = map[int32]string{ 0: "ACCEPTED", 1: "DECLINED", } SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision_value = map[string]int32{ "ACCEPTED": 0, "DECLINED": 1, } ) func (x SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision) Enum() *SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision { p := new(SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision) *p = x return p } func (x SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision) Descriptor() protoreflect.EnumDescriptor { return file_pairing_proto_enumTypes[0].Descriptor() } func (SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision) Type() protoreflect.EnumType { return &file_pairing_proto_enumTypes[0] } func (x SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision.Descriptor instead. func (SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision) EnumDescriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{20, 0} } type SyncTrustedUser_TrustStatus int32 const ( SyncTrustedUser_UNKNOWN SyncTrustedUser_TrustStatus = 0 SyncTrustedUser_TRUSTED SyncTrustedUser_TrustStatus = 1 SyncTrustedUser_UNTRUSTWORTHY SyncTrustedUser_TrustStatus = 2 ) // Enum value maps for SyncTrustedUser_TrustStatus. var ( SyncTrustedUser_TrustStatus_name = map[int32]string{ 0: "UNKNOWN", 1: "TRUSTED", 2: "UNTRUSTWORTHY", } SyncTrustedUser_TrustStatus_value = map[string]int32{ "UNKNOWN": 0, "TRUSTED": 1, "UNTRUSTWORTHY": 2, } ) func (x SyncTrustedUser_TrustStatus) Enum() *SyncTrustedUser_TrustStatus { p := new(SyncTrustedUser_TrustStatus) *p = x return p } func (x SyncTrustedUser_TrustStatus) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (SyncTrustedUser_TrustStatus) Descriptor() protoreflect.EnumDescriptor { return file_pairing_proto_enumTypes[1].Descriptor() } func (SyncTrustedUser_TrustStatus) Type() protoreflect.EnumType { return &file_pairing_proto_enumTypes[1] } func (x SyncTrustedUser_TrustStatus) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use SyncTrustedUser_TrustStatus.Descriptor instead. func (SyncTrustedUser_TrustStatus) EnumDescriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{31, 0} } type SyncVerificationRequest_VerificationStatus int32 const ( SyncVerificationRequest_UNKNOWN SyncVerificationRequest_VerificationStatus = 0 SyncVerificationRequest_PENDING SyncVerificationRequest_VerificationStatus = 1 SyncVerificationRequest_ACCEPTED SyncVerificationRequest_VerificationStatus = 2 SyncVerificationRequest_DECLINED SyncVerificationRequest_VerificationStatus = 3 SyncVerificationRequest_CANCELED SyncVerificationRequest_VerificationStatus = 4 ) // Enum value maps for SyncVerificationRequest_VerificationStatus. var ( SyncVerificationRequest_VerificationStatus_name = map[int32]string{ 0: "UNKNOWN", 1: "PENDING", 2: "ACCEPTED", 3: "DECLINED", 4: "CANCELED", } SyncVerificationRequest_VerificationStatus_value = map[string]int32{ "UNKNOWN": 0, "PENDING": 1, "ACCEPTED": 2, "DECLINED": 3, "CANCELED": 4, } ) func (x SyncVerificationRequest_VerificationStatus) Enum() *SyncVerificationRequest_VerificationStatus { p := new(SyncVerificationRequest_VerificationStatus) *p = x return p } func (x SyncVerificationRequest_VerificationStatus) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (SyncVerificationRequest_VerificationStatus) Descriptor() protoreflect.EnumDescriptor { return file_pairing_proto_enumTypes[2].Descriptor() } func (SyncVerificationRequest_VerificationStatus) Type() protoreflect.EnumType { return &file_pairing_proto_enumTypes[2] } func (x SyncVerificationRequest_VerificationStatus) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use SyncVerificationRequest_VerificationStatus.Descriptor instead. func (SyncVerificationRequest_VerificationStatus) EnumDescriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{32, 0} } type SyncContactRequestDecision_DecisionStatus int32 const ( SyncContactRequestDecision_ACCEPTED SyncContactRequestDecision_DecisionStatus = 0 SyncContactRequestDecision_DECLINED SyncContactRequestDecision_DecisionStatus = 1 ) // Enum value maps for SyncContactRequestDecision_DecisionStatus. var ( SyncContactRequestDecision_DecisionStatus_name = map[int32]string{ 0: "ACCEPTED", 1: "DECLINED", } SyncContactRequestDecision_DecisionStatus_value = map[string]int32{ "ACCEPTED": 0, "DECLINED": 1, } ) func (x SyncContactRequestDecision_DecisionStatus) Enum() *SyncContactRequestDecision_DecisionStatus { p := new(SyncContactRequestDecision_DecisionStatus) *p = x return p } func (x SyncContactRequestDecision_DecisionStatus) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (SyncContactRequestDecision_DecisionStatus) Descriptor() protoreflect.EnumDescriptor { return file_pairing_proto_enumTypes[3].Descriptor() } func (SyncContactRequestDecision_DecisionStatus) Type() protoreflect.EnumType { return &file_pairing_proto_enumTypes[3] } func (x SyncContactRequestDecision_DecisionStatus) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use SyncContactRequestDecision_DecisionStatus.Descriptor instead. func (SyncContactRequestDecision_DecisionStatus) EnumDescriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{33, 0} } // `FetchingBackedUpDataDetails` is used to describe how many messages a single backup data structure consists of type FetchingBackedUpDataDetails struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DataNumber uint32 `protobuf:"varint,1,opt,name=data_number,json=dataNumber,proto3" json:"data_number,omitempty"` TotalNumber uint32 `protobuf:"varint,2,opt,name=total_number,json=totalNumber,proto3" json:"total_number,omitempty"` } func (x *FetchingBackedUpDataDetails) Reset() { *x = FetchingBackedUpDataDetails{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FetchingBackedUpDataDetails) String() string { return protoimpl.X.MessageStringOf(x) } func (*FetchingBackedUpDataDetails) ProtoMessage() {} func (x *FetchingBackedUpDataDetails) ProtoReflect() protoreflect.Message { mi := &file_pairing_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 FetchingBackedUpDataDetails.ProtoReflect.Descriptor instead. func (*FetchingBackedUpDataDetails) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{0} } func (x *FetchingBackedUpDataDetails) GetDataNumber() uint32 { if x != nil { return x.DataNumber } return 0 } func (x *FetchingBackedUpDataDetails) GetTotalNumber() uint32 { if x != nil { return x.TotalNumber } return 0 } type Backup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // this is what we already had Contacts []*SyncInstallationContactV2 `protobuf:"bytes,3,rep,name=contacts,proto3" json:"contacts,omitempty"` Communities []*SyncInstallationCommunity `protobuf:"bytes,4,rep,name=communities,proto3" json:"communities,omitempty"` // newly added details to be backed up to and fetched from waku ContactsDetails *FetchingBackedUpDataDetails `protobuf:"bytes,5,opt,name=contactsDetails,proto3" json:"contactsDetails,omitempty"` CommunitiesDetails *FetchingBackedUpDataDetails `protobuf:"bytes,6,opt,name=communitiesDetails,proto3" json:"communitiesDetails,omitempty"` Profile *BackedUpProfile `protobuf:"bytes,7,opt,name=profile,proto3" json:"profile,omitempty"` ProfileDetails *FetchingBackedUpDataDetails `protobuf:"bytes,8,opt,name=profileDetails,proto3" json:"profileDetails,omitempty"` Setting *SyncSetting `protobuf:"bytes,9,opt,name=setting,proto3" json:"setting,omitempty"` SettingsDetails *FetchingBackedUpDataDetails `protobuf:"bytes,10,opt,name=settingsDetails,proto3" json:"settingsDetails,omitempty"` Keypair *SyncKeypair `protobuf:"bytes,11,opt,name=keypair,proto3" json:"keypair,omitempty"` KeypairDetails *FetchingBackedUpDataDetails `protobuf:"bytes,12,opt,name=keypairDetails,proto3" json:"keypairDetails,omitempty"` WatchOnlyAccount *SyncAccount `protobuf:"bytes,13,opt,name=watchOnlyAccount,proto3" json:"watchOnlyAccount,omitempty"` WatchOnlyAccountDetails *FetchingBackedUpDataDetails `protobuf:"bytes,14,opt,name=watchOnlyAccountDetails,proto3" json:"watchOnlyAccountDetails,omitempty"` Chats []*SyncChat `protobuf:"bytes,15,rep,name=chats,proto3" json:"chats,omitempty"` ChatsDetails *FetchingBackedUpDataDetails `protobuf:"bytes,16,opt,name=chatsDetails,proto3" json:"chatsDetails,omitempty"` } func (x *Backup) Reset() { *x = Backup{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Backup) String() string { return protoimpl.X.MessageStringOf(x) } func (*Backup) ProtoMessage() {} func (x *Backup) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[1] 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 Backup.ProtoReflect.Descriptor instead. func (*Backup) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{1} } func (x *Backup) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *Backup) GetId() string { if x != nil { return x.Id } return "" } func (x *Backup) GetContacts() []*SyncInstallationContactV2 { if x != nil { return x.Contacts } return nil } func (x *Backup) GetCommunities() []*SyncInstallationCommunity { if x != nil { return x.Communities } return nil } func (x *Backup) GetContactsDetails() *FetchingBackedUpDataDetails { if x != nil { return x.ContactsDetails } return nil } func (x *Backup) GetCommunitiesDetails() *FetchingBackedUpDataDetails { if x != nil { return x.CommunitiesDetails } return nil } func (x *Backup) GetProfile() *BackedUpProfile { if x != nil { return x.Profile } return nil } func (x *Backup) GetProfileDetails() *FetchingBackedUpDataDetails { if x != nil { return x.ProfileDetails } return nil } func (x *Backup) GetSetting() *SyncSetting { if x != nil { return x.Setting } return nil } func (x *Backup) GetSettingsDetails() *FetchingBackedUpDataDetails { if x != nil { return x.SettingsDetails } return nil } func (x *Backup) GetKeypair() *SyncKeypair { if x != nil { return x.Keypair } return nil } func (x *Backup) GetKeypairDetails() *FetchingBackedUpDataDetails { if x != nil { return x.KeypairDetails } return nil } func (x *Backup) GetWatchOnlyAccount() *SyncAccount { if x != nil { return x.WatchOnlyAccount } return nil } func (x *Backup) GetWatchOnlyAccountDetails() *FetchingBackedUpDataDetails { if x != nil { return x.WatchOnlyAccountDetails } return nil } func (x *Backup) GetChats() []*SyncChat { if x != nil { return x.Chats } return nil } func (x *Backup) GetChatsDetails() *FetchingBackedUpDataDetails { if x != nil { return x.ChatsDetails } return nil } type MultiAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Timestamp int64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Identicon string `protobuf:"bytes,3,opt,name=identicon,proto3" json:"identicon,omitempty"` ColorHash []*MultiAccount_ColorHash `protobuf:"bytes,4,rep,name=color_hash,json=colorHash,proto3" json:"color_hash,omitempty"` ColorId int64 `protobuf:"varint,5,opt,name=color_id,json=colorId,proto3" json:"color_id,omitempty"` KeycardPairing string `protobuf:"bytes,6,opt,name=keycard_pairing,json=keycardPairing,proto3" json:"keycard_pairing,omitempty"` KeyUid string `protobuf:"bytes,7,opt,name=key_uid,json=keyUid,proto3" json:"key_uid,omitempty"` Images []*MultiAccount_IdentityImage `protobuf:"bytes,8,rep,name=images,proto3" json:"images,omitempty"` CustomizationColor string `protobuf:"bytes,9,opt,name=customization_color,json=customizationColor,proto3" json:"customization_color,omitempty"` CustomizationColorClock uint64 `protobuf:"varint,10,opt,name=customization_color_clock,json=customizationColorClock,proto3" json:"customization_color_clock,omitempty"` } func (x *MultiAccount) Reset() { *x = MultiAccount{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MultiAccount) String() string { return protoimpl.X.MessageStringOf(x) } func (*MultiAccount) ProtoMessage() {} func (x *MultiAccount) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[2] 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 MultiAccount.ProtoReflect.Descriptor instead. func (*MultiAccount) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{2} } func (x *MultiAccount) GetName() string { if x != nil { return x.Name } return "" } func (x *MultiAccount) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } func (x *MultiAccount) GetIdenticon() string { if x != nil { return x.Identicon } return "" } func (x *MultiAccount) GetColorHash() []*MultiAccount_ColorHash { if x != nil { return x.ColorHash } return nil } func (x *MultiAccount) GetColorId() int64 { if x != nil { return x.ColorId } return 0 } func (x *MultiAccount) GetKeycardPairing() string { if x != nil { return x.KeycardPairing } return "" } func (x *MultiAccount) GetKeyUid() string { if x != nil { return x.KeyUid } return "" } func (x *MultiAccount) GetImages() []*MultiAccount_IdentityImage { if x != nil { return x.Images } return nil } func (x *MultiAccount) GetCustomizationColor() string { if x != nil { return x.CustomizationColor } return "" } func (x *MultiAccount) GetCustomizationColorClock() uint64 { if x != nil { return x.CustomizationColorClock } return 0 } type LocalPairingPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Keys []*LocalPairingPayload_Key `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` Multiaccount *MultiAccount `protobuf:"bytes,2,opt,name=multiaccount,proto3" json:"multiaccount,omitempty"` Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` ChatKey string `protobuf:"bytes,4,opt,name=chatKey,proto3" json:"chatKey,omitempty"` KeycardPairings string `protobuf:"bytes,5,opt,name=keycardPairings,proto3" json:"keycardPairings,omitempty"` } func (x *LocalPairingPayload) Reset() { *x = LocalPairingPayload{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LocalPairingPayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*LocalPairingPayload) ProtoMessage() {} func (x *LocalPairingPayload) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[3] 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 LocalPairingPayload.ProtoReflect.Descriptor instead. func (*LocalPairingPayload) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{3} } func (x *LocalPairingPayload) GetKeys() []*LocalPairingPayload_Key { if x != nil { return x.Keys } return nil } func (x *LocalPairingPayload) GetMultiaccount() *MultiAccount { if x != nil { return x.Multiaccount } return nil } func (x *LocalPairingPayload) GetPassword() string { if x != nil { return x.Password } return "" } func (x *LocalPairingPayload) GetChatKey() string { if x != nil { return x.ChatKey } return "" } func (x *LocalPairingPayload) GetKeycardPairings() string { if x != nil { return x.KeycardPairings } return "" } type LocalPairingPeerHello struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PairingVersion int32 `protobuf:"varint,1,opt,name=pairing_version,json=pairingVersion,proto3" json:"pairing_version,omitempty"` PeerId []byte `protobuf:"bytes,2,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` DeviceName string `protobuf:"bytes,3,opt,name=device_name,json=deviceName,proto3" json:"device_name,omitempty"` DeviceType string `protobuf:"bytes,4,opt,name=device_type,json=deviceType,proto3" json:"device_type,omitempty"` Signature []byte `protobuf:"bytes,5,opt,name=signature,proto3" json:"signature,omitempty"` } func (x *LocalPairingPeerHello) Reset() { *x = LocalPairingPeerHello{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LocalPairingPeerHello) String() string { return protoimpl.X.MessageStringOf(x) } func (*LocalPairingPeerHello) ProtoMessage() {} func (x *LocalPairingPeerHello) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[4] 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 LocalPairingPeerHello.ProtoReflect.Descriptor instead. func (*LocalPairingPeerHello) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{4} } func (x *LocalPairingPeerHello) GetPairingVersion() int32 { if x != nil { return x.PairingVersion } return 0 } func (x *LocalPairingPeerHello) GetPeerId() []byte { if x != nil { return x.PeerId } return nil } func (x *LocalPairingPeerHello) GetDeviceName() string { if x != nil { return x.DeviceName } return "" } func (x *LocalPairingPeerHello) GetDeviceType() string { if x != nil { return x.DeviceType } return "" } func (x *LocalPairingPeerHello) GetSignature() []byte { if x != nil { return x.Signature } return nil } type SyncPairInstallation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` InstallationId string `protobuf:"bytes,2,opt,name=installation_id,json=installationId,proto3" json:"installation_id,omitempty"` DeviceType string `protobuf:"bytes,3,opt,name=device_type,json=deviceType,proto3" json:"device_type,omitempty"` Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` // following fields used for local pairing Version uint32 `protobuf:"varint,5,opt,name=version,proto3" json:"version,omitempty"` } func (x *SyncPairInstallation) Reset() { *x = SyncPairInstallation{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncPairInstallation) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncPairInstallation) ProtoMessage() {} func (x *SyncPairInstallation) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[5] 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 SyncPairInstallation.ProtoReflect.Descriptor instead. func (*SyncPairInstallation) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{5} } func (x *SyncPairInstallation) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncPairInstallation) GetInstallationId() string { if x != nil { return x.InstallationId } return "" } func (x *SyncPairInstallation) GetDeviceType() string { if x != nil { return x.DeviceType } return "" } func (x *SyncPairInstallation) GetName() string { if x != nil { return x.Name } return "" } func (x *SyncPairInstallation) GetVersion() uint32 { if x != nil { return x.Version } return 0 } type SyncInstallationContactV2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LastUpdatedLocally uint64 `protobuf:"varint,1,opt,name=last_updated_locally,json=lastUpdatedLocally,proto3" json:"last_updated_locally,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` ProfileImage string `protobuf:"bytes,3,opt,name=profile_image,json=profileImage,proto3" json:"profile_image,omitempty"` EnsName string `protobuf:"bytes,4,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"` LastUpdated uint64 `protobuf:"varint,5,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"` SystemTags []string `protobuf:"bytes,6,rep,name=system_tags,json=systemTags,proto3" json:"system_tags,omitempty"` LocalNickname string `protobuf:"bytes,7,opt,name=local_nickname,json=localNickname,proto3" json:"local_nickname,omitempty"` Added bool `protobuf:"varint,9,opt,name=added,proto3" json:"added,omitempty"` Blocked bool `protobuf:"varint,10,opt,name=blocked,proto3" json:"blocked,omitempty"` Muted bool `protobuf:"varint,11,opt,name=muted,proto3" json:"muted,omitempty"` Removed bool `protobuf:"varint,12,opt,name=removed,proto3" json:"removed,omitempty"` HasAddedUs bool `protobuf:"varint,13,opt,name=has_added_us,json=hasAddedUs,proto3" json:"has_added_us,omitempty"` VerificationStatus int64 `protobuf:"varint,14,opt,name=verification_status,json=verificationStatus,proto3" json:"verification_status,omitempty"` TrustStatus int64 `protobuf:"varint,15,opt,name=trust_status,json=trustStatus,proto3" json:"trust_status,omitempty"` ContactRequestLocalState int64 `protobuf:"varint,16,opt,name=contact_request_local_state,json=contactRequestLocalState,proto3" json:"contact_request_local_state,omitempty"` ContactRequestLocalClock int64 `protobuf:"varint,17,opt,name=contact_request_local_clock,json=contactRequestLocalClock,proto3" json:"contact_request_local_clock,omitempty"` ContactRequestRemoteState int64 `protobuf:"varint,18,opt,name=contact_request_remote_state,json=contactRequestRemoteState,proto3" json:"contact_request_remote_state,omitempty"` ContactRequestRemoteClock int64 `protobuf:"varint,19,opt,name=contact_request_remote_clock,json=contactRequestRemoteClock,proto3" json:"contact_request_remote_clock,omitempty"` DisplayName string `protobuf:"bytes,20,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` } func (x *SyncInstallationContactV2) Reset() { *x = SyncInstallationContactV2{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncInstallationContactV2) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncInstallationContactV2) ProtoMessage() {} func (x *SyncInstallationContactV2) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[6] 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 SyncInstallationContactV2.ProtoReflect.Descriptor instead. func (*SyncInstallationContactV2) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{6} } func (x *SyncInstallationContactV2) GetLastUpdatedLocally() uint64 { if x != nil { return x.LastUpdatedLocally } return 0 } func (x *SyncInstallationContactV2) GetId() string { if x != nil { return x.Id } return "" } func (x *SyncInstallationContactV2) GetProfileImage() string { if x != nil { return x.ProfileImage } return "" } func (x *SyncInstallationContactV2) GetEnsName() string { if x != nil { return x.EnsName } return "" } func (x *SyncInstallationContactV2) GetLastUpdated() uint64 { if x != nil { return x.LastUpdated } return 0 } func (x *SyncInstallationContactV2) GetSystemTags() []string { if x != nil { return x.SystemTags } return nil } func (x *SyncInstallationContactV2) GetLocalNickname() string { if x != nil { return x.LocalNickname } return "" } func (x *SyncInstallationContactV2) GetAdded() bool { if x != nil { return x.Added } return false } func (x *SyncInstallationContactV2) GetBlocked() bool { if x != nil { return x.Blocked } return false } func (x *SyncInstallationContactV2) GetMuted() bool { if x != nil { return x.Muted } return false } func (x *SyncInstallationContactV2) GetRemoved() bool { if x != nil { return x.Removed } return false } func (x *SyncInstallationContactV2) GetHasAddedUs() bool { if x != nil { return x.HasAddedUs } return false } func (x *SyncInstallationContactV2) GetVerificationStatus() int64 { if x != nil { return x.VerificationStatus } return 0 } func (x *SyncInstallationContactV2) GetTrustStatus() int64 { if x != nil { return x.TrustStatus } return 0 } func (x *SyncInstallationContactV2) GetContactRequestLocalState() int64 { if x != nil { return x.ContactRequestLocalState } return 0 } func (x *SyncInstallationContactV2) GetContactRequestLocalClock() int64 { if x != nil { return x.ContactRequestLocalClock } return 0 } func (x *SyncInstallationContactV2) GetContactRequestRemoteState() int64 { if x != nil { return x.ContactRequestRemoteState } return 0 } func (x *SyncInstallationContactV2) GetContactRequestRemoteClock() int64 { if x != nil { return x.ContactRequestRemoteClock } return 0 } func (x *SyncInstallationContactV2) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } type SyncInstallationAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` ProfileImage string `protobuf:"bytes,2,opt,name=profile_image,json=profileImage,proto3" json:"profile_image,omitempty"` LastUpdated uint64 `protobuf:"varint,3,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"` } func (x *SyncInstallationAccount) Reset() { *x = SyncInstallationAccount{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncInstallationAccount) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncInstallationAccount) ProtoMessage() {} func (x *SyncInstallationAccount) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[7] 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 SyncInstallationAccount.ProtoReflect.Descriptor instead. func (*SyncInstallationAccount) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{7} } func (x *SyncInstallationAccount) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncInstallationAccount) GetProfileImage() string { if x != nil { return x.ProfileImage } return "" } func (x *SyncInstallationAccount) GetLastUpdated() uint64 { if x != nil { return x.LastUpdated } return 0 } type SyncInstallationCommunity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Id []byte `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // Don't sync private_key because we want to have only one control node // // Deprecated: Marked as deprecated in pairing.proto. PrivateKey []byte `protobuf:"bytes,3,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` Description []byte `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` Joined bool `protobuf:"varint,5,opt,name=joined,proto3" json:"joined,omitempty"` Verified bool `protobuf:"varint,6,opt,name=verified,proto3" json:"verified,omitempty"` Muted bool `protobuf:"varint,7,opt,name=muted,proto3" json:"muted,omitempty"` RequestsToJoin []*SyncCommunityRequestsToJoin `protobuf:"bytes,8,rep,name=requests_to_join,json=requestsToJoin,proto3" json:"requests_to_join,omitempty"` Settings *SyncCommunitySettings `protobuf:"bytes,9,opt,name=settings,proto3" json:"settings,omitempty"` Encrypted bool `protobuf:"varint,10,opt,name=encrypted,proto3" json:"encrypted,omitempty"` Spectated bool `protobuf:"varint,11,opt,name=spectated,proto3" json:"spectated,omitempty"` EncryptionKeys []byte `protobuf:"bytes,12,opt,name=encryption_keys,json=encryptionKeys,proto3" json:"encryption_keys,omitempty"` ControlNode *SyncCommunityControlNode `protobuf:"bytes,13,opt,name=control_node,json=controlNode,proto3" json:"control_node,omitempty"` JoinedAt int64 `protobuf:"varint,14,opt,name=joined_at,json=joinedAt,proto3" json:"joined_at,omitempty"` LastOpenedAt int64 `protobuf:"varint,15,opt,name=last_opened_at,json=lastOpenedAt,proto3" json:"last_opened_at,omitempty"` } func (x *SyncInstallationCommunity) Reset() { *x = SyncInstallationCommunity{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncInstallationCommunity) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncInstallationCommunity) ProtoMessage() {} func (x *SyncInstallationCommunity) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[8] 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 SyncInstallationCommunity.ProtoReflect.Descriptor instead. func (*SyncInstallationCommunity) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{8} } func (x *SyncInstallationCommunity) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncInstallationCommunity) GetId() []byte { if x != nil { return x.Id } return nil } // Deprecated: Marked as deprecated in pairing.proto. func (x *SyncInstallationCommunity) GetPrivateKey() []byte { if x != nil { return x.PrivateKey } return nil } func (x *SyncInstallationCommunity) GetDescription() []byte { if x != nil { return x.Description } return nil } func (x *SyncInstallationCommunity) GetJoined() bool { if x != nil { return x.Joined } return false } func (x *SyncInstallationCommunity) GetVerified() bool { if x != nil { return x.Verified } return false } func (x *SyncInstallationCommunity) GetMuted() bool { if x != nil { return x.Muted } return false } func (x *SyncInstallationCommunity) GetRequestsToJoin() []*SyncCommunityRequestsToJoin { if x != nil { return x.RequestsToJoin } return nil } func (x *SyncInstallationCommunity) GetSettings() *SyncCommunitySettings { if x != nil { return x.Settings } return nil } func (x *SyncInstallationCommunity) GetEncrypted() bool { if x != nil { return x.Encrypted } return false } func (x *SyncInstallationCommunity) GetSpectated() bool { if x != nil { return x.Spectated } return false } func (x *SyncInstallationCommunity) GetEncryptionKeys() []byte { if x != nil { return x.EncryptionKeys } return nil } func (x *SyncInstallationCommunity) GetControlNode() *SyncCommunityControlNode { if x != nil { return x.ControlNode } return nil } func (x *SyncInstallationCommunity) GetJoinedAt() int64 { if x != nil { return x.JoinedAt } return 0 } func (x *SyncInstallationCommunity) GetLastOpenedAt() int64 { if x != nil { return x.LastOpenedAt } return 0 } type SyncCommunityRequestsToJoin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` Clock uint64 `protobuf:"varint,3,opt,name=clock,proto3" json:"clock,omitempty"` EnsName string `protobuf:"bytes,4,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"` ChatId string `protobuf:"bytes,5,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"` CommunityId []byte `protobuf:"bytes,6,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` State uint64 `protobuf:"varint,7,opt,name=state,proto3" json:"state,omitempty"` RevealedAccounts []*RevealedAccount `protobuf:"bytes,8,rep,name=revealed_accounts,json=revealedAccounts,proto3" json:"revealed_accounts,omitempty"` } func (x *SyncCommunityRequestsToJoin) Reset() { *x = SyncCommunityRequestsToJoin{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncCommunityRequestsToJoin) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncCommunityRequestsToJoin) ProtoMessage() {} func (x *SyncCommunityRequestsToJoin) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[9] 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 SyncCommunityRequestsToJoin.ProtoReflect.Descriptor instead. func (*SyncCommunityRequestsToJoin) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{9} } func (x *SyncCommunityRequestsToJoin) GetId() []byte { if x != nil { return x.Id } return nil } func (x *SyncCommunityRequestsToJoin) GetPublicKey() string { if x != nil { return x.PublicKey } return "" } func (x *SyncCommunityRequestsToJoin) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncCommunityRequestsToJoin) GetEnsName() string { if x != nil { return x.EnsName } return "" } func (x *SyncCommunityRequestsToJoin) GetChatId() string { if x != nil { return x.ChatId } return "" } func (x *SyncCommunityRequestsToJoin) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } func (x *SyncCommunityRequestsToJoin) GetState() uint64 { if x != nil { return x.State } return 0 } func (x *SyncCommunityRequestsToJoin) GetRevealedAccounts() []*RevealedAccount { if x != nil { return x.RevealedAccounts } return nil } type SyncCommunityControlNode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Lamport timestamp of control node change Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` // The device id of the control node // Empty if there is no control node InstallationId string `protobuf:"bytes,2,opt,name=installation_id,json=installationId,proto3" json:"installation_id,omitempty"` } func (x *SyncCommunityControlNode) Reset() { *x = SyncCommunityControlNode{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncCommunityControlNode) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncCommunityControlNode) ProtoMessage() {} func (x *SyncCommunityControlNode) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[10] 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 SyncCommunityControlNode.ProtoReflect.Descriptor instead. func (*SyncCommunityControlNode) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{10} } func (x *SyncCommunityControlNode) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncCommunityControlNode) GetInstallationId() string { if x != nil { return x.InstallationId } return "" } type SyncChat struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` ChatType uint32 `protobuf:"varint,2,opt,name=chat_type,json=chatType,proto3" json:"chat_type,omitempty"` Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` MembershipUpdateEvents []*MembershipUpdateEvents `protobuf:"bytes,4,rep,name=membershipUpdateEvents,proto3" json:"membershipUpdateEvents,omitempty"` Active bool `protobuf:"varint,5,opt,name=active,proto3" json:"active,omitempty"` Clock uint64 `protobuf:"varint,6,opt,name=clock,proto3" json:"clock,omitempty"` Muted bool `protobuf:"varint,7,opt,name=muted,proto3" json:"muted,omitempty"` } func (x *SyncChat) Reset() { *x = SyncChat{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncChat) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncChat) ProtoMessage() {} func (x *SyncChat) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[11] 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 SyncChat.ProtoReflect.Descriptor instead. func (*SyncChat) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{11} } func (x *SyncChat) GetId() string { if x != nil { return x.Id } return "" } func (x *SyncChat) GetChatType() uint32 { if x != nil { return x.ChatType } return 0 } func (x *SyncChat) GetName() string { if x != nil { return x.Name } return "" } func (x *SyncChat) GetMembershipUpdateEvents() []*MembershipUpdateEvents { if x != nil { return x.MembershipUpdateEvents } return nil } func (x *SyncChat) GetActive() bool { if x != nil { return x.Active } return false } func (x *SyncChat) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncChat) GetMuted() bool { if x != nil { return x.Muted } return false } type MembershipUpdateEvents struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Type uint32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` Members []string `protobuf:"bytes,3,rep,name=members,proto3" json:"members,omitempty"` Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` Signature []byte `protobuf:"bytes,5,opt,name=signature,proto3" json:"signature,omitempty"` ChatId string `protobuf:"bytes,6,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"` From string `protobuf:"bytes,7,opt,name=from,proto3" json:"from,omitempty"` RawPayload []byte `protobuf:"bytes,8,opt,name=raw_payload,json=rawPayload,proto3" json:"raw_payload,omitempty"` Color string `protobuf:"bytes,9,opt,name=color,proto3" json:"color,omitempty"` Image []byte `protobuf:"bytes,10,opt,name=image,proto3" json:"image,omitempty"` } func (x *MembershipUpdateEvents) Reset() { *x = MembershipUpdateEvents{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MembershipUpdateEvents) String() string { return protoimpl.X.MessageStringOf(x) } func (*MembershipUpdateEvents) ProtoMessage() {} func (x *MembershipUpdateEvents) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[12] 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 MembershipUpdateEvents.ProtoReflect.Descriptor instead. func (*MembershipUpdateEvents) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{12} } func (x *MembershipUpdateEvents) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *MembershipUpdateEvents) GetType() uint32 { if x != nil { return x.Type } return 0 } func (x *MembershipUpdateEvents) GetMembers() []string { if x != nil { return x.Members } return nil } func (x *MembershipUpdateEvents) GetName() string { if x != nil { return x.Name } return "" } func (x *MembershipUpdateEvents) GetSignature() []byte { if x != nil { return x.Signature } return nil } func (x *MembershipUpdateEvents) GetChatId() string { if x != nil { return x.ChatId } return "" } func (x *MembershipUpdateEvents) GetFrom() string { if x != nil { return x.From } return "" } func (x *MembershipUpdateEvents) GetRawPayload() []byte { if x != nil { return x.RawPayload } return nil } func (x *MembershipUpdateEvents) GetColor() string { if x != nil { return x.Color } return "" } func (x *MembershipUpdateEvents) GetImage() []byte { if x != nil { return x.Image } return nil } type SyncChatRemoved struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } func (x *SyncChatRemoved) Reset() { *x = SyncChatRemoved{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncChatRemoved) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncChatRemoved) ProtoMessage() {} func (x *SyncChatRemoved) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[13] 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 SyncChatRemoved.ProtoReflect.Descriptor instead. func (*SyncChatRemoved) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{13} } func (x *SyncChatRemoved) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncChatRemoved) GetId() string { if x != nil { return x.Id } return "" } type SyncChatMessagesRead struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } func (x *SyncChatMessagesRead) Reset() { *x = SyncChatMessagesRead{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncChatMessagesRead) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncChatMessagesRead) ProtoMessage() {} func (x *SyncChatMessagesRead) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[14] 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 SyncChatMessagesRead.ProtoReflect.Descriptor instead. func (*SyncChatMessagesRead) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{14} } func (x *SyncChatMessagesRead) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncChatMessagesRead) GetId() string { if x != nil { return x.Id } return "" } type SyncActivityCenterRead struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Ids [][]byte `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"` } func (x *SyncActivityCenterRead) Reset() { *x = SyncActivityCenterRead{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncActivityCenterRead) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncActivityCenterRead) ProtoMessage() {} func (x *SyncActivityCenterRead) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[15] 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 SyncActivityCenterRead.ProtoReflect.Descriptor instead. func (*SyncActivityCenterRead) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{15} } func (x *SyncActivityCenterRead) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncActivityCenterRead) GetIds() [][]byte { if x != nil { return x.Ids } return nil } type SyncActivityCenterAccepted struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Ids [][]byte `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"` } func (x *SyncActivityCenterAccepted) Reset() { *x = SyncActivityCenterAccepted{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncActivityCenterAccepted) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncActivityCenterAccepted) ProtoMessage() {} func (x *SyncActivityCenterAccepted) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[16] 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 SyncActivityCenterAccepted.ProtoReflect.Descriptor instead. func (*SyncActivityCenterAccepted) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{16} } func (x *SyncActivityCenterAccepted) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncActivityCenterAccepted) GetIds() [][]byte { if x != nil { return x.Ids } return nil } type SyncActivityCenterDismissed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Ids [][]byte `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"` } func (x *SyncActivityCenterDismissed) Reset() { *x = SyncActivityCenterDismissed{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncActivityCenterDismissed) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncActivityCenterDismissed) ProtoMessage() {} func (x *SyncActivityCenterDismissed) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[17] 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 SyncActivityCenterDismissed.ProtoReflect.Descriptor instead. func (*SyncActivityCenterDismissed) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{17} } func (x *SyncActivityCenterDismissed) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncActivityCenterDismissed) GetIds() [][]byte { if x != nil { return x.Ids } return nil } type SyncActivityCenterDeleted struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Ids [][]byte `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"` } func (x *SyncActivityCenterDeleted) Reset() { *x = SyncActivityCenterDeleted{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncActivityCenterDeleted) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncActivityCenterDeleted) ProtoMessage() {} func (x *SyncActivityCenterDeleted) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[18] 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 SyncActivityCenterDeleted.ProtoReflect.Descriptor instead. func (*SyncActivityCenterDeleted) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{18} } func (x *SyncActivityCenterDeleted) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncActivityCenterDeleted) GetIds() [][]byte { if x != nil { return x.Ids } return nil } type SyncActivityCenterUnread struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Ids [][]byte `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"` } func (x *SyncActivityCenterUnread) Reset() { *x = SyncActivityCenterUnread{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncActivityCenterUnread) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncActivityCenterUnread) ProtoMessage() {} func (x *SyncActivityCenterUnread) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[19] 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 SyncActivityCenterUnread.ProtoReflect.Descriptor instead. func (*SyncActivityCenterUnread) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{19} } func (x *SyncActivityCenterUnread) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncActivityCenterUnread) GetIds() [][]byte { if x != nil { return x.Ids } return nil } type SyncActivityCenterCommunityRequestDecision struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Id []byte `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` MembershipStatus uint32 `protobuf:"varint,3,opt,name=membership_status,json=membershipStatus,proto3" json:"membership_status,omitempty"` Decision SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision `protobuf:"varint,4,opt,name=decision,proto3,enum=protobuf.SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision" json:"decision,omitempty"` } func (x *SyncActivityCenterCommunityRequestDecision) Reset() { *x = SyncActivityCenterCommunityRequestDecision{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncActivityCenterCommunityRequestDecision) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncActivityCenterCommunityRequestDecision) ProtoMessage() {} func (x *SyncActivityCenterCommunityRequestDecision) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[20] 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 SyncActivityCenterCommunityRequestDecision.ProtoReflect.Descriptor instead. func (*SyncActivityCenterCommunityRequestDecision) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{20} } func (x *SyncActivityCenterCommunityRequestDecision) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncActivityCenterCommunityRequestDecision) GetId() []byte { if x != nil { return x.Id } return nil } func (x *SyncActivityCenterCommunityRequestDecision) GetMembershipStatus() uint32 { if x != nil { return x.MembershipStatus } return 0 } func (x *SyncActivityCenterCommunityRequestDecision) GetDecision() SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision { if x != nil { return x.Decision } return SyncActivityCenterCommunityRequestDecision_ACCEPTED } type SyncBookmark struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` ImageUrl string `protobuf:"bytes,4,opt,name=image_url,json=imageUrl,proto3" json:"image_url,omitempty"` Removed bool `protobuf:"varint,5,opt,name=removed,proto3" json:"removed,omitempty"` DeletedAt uint64 `protobuf:"varint,6,opt,name=deleted_at,json=deletedAt,proto3" json:"deleted_at,omitempty"` } func (x *SyncBookmark) Reset() { *x = SyncBookmark{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncBookmark) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncBookmark) ProtoMessage() {} func (x *SyncBookmark) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[21] 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 SyncBookmark.ProtoReflect.Descriptor instead. func (*SyncBookmark) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{21} } func (x *SyncBookmark) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncBookmark) GetUrl() string { if x != nil { return x.Url } return "" } func (x *SyncBookmark) GetName() string { if x != nil { return x.Name } return "" } func (x *SyncBookmark) GetImageUrl() string { if x != nil { return x.ImageUrl } return "" } func (x *SyncBookmark) GetRemoved() bool { if x != nil { return x.Removed } return false } func (x *SyncBookmark) GetDeletedAt() uint64 { if x != nil { return x.DeletedAt } return 0 } type SyncEnsUsernameDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` ChainId uint64 `protobuf:"varint,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` Removed bool `protobuf:"varint,4,opt,name=removed,proto3" json:"removed,omitempty"` } func (x *SyncEnsUsernameDetail) Reset() { *x = SyncEnsUsernameDetail{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncEnsUsernameDetail) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncEnsUsernameDetail) ProtoMessage() {} func (x *SyncEnsUsernameDetail) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[22] 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 SyncEnsUsernameDetail.ProtoReflect.Descriptor instead. func (*SyncEnsUsernameDetail) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{22} } func (x *SyncEnsUsernameDetail) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncEnsUsernameDetail) GetUsername() string { if x != nil { return x.Username } return "" } func (x *SyncEnsUsernameDetail) GetChainId() uint64 { if x != nil { return x.ChainId } return 0 } func (x *SyncEnsUsernameDetail) GetRemoved() bool { if x != nil { return x.Removed } return false } type SyncClearHistory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChatId string `protobuf:"bytes,1,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"` ClearedAt uint64 `protobuf:"varint,2,opt,name=cleared_at,json=clearedAt,proto3" json:"cleared_at,omitempty"` } func (x *SyncClearHistory) Reset() { *x = SyncClearHistory{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncClearHistory) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncClearHistory) ProtoMessage() {} func (x *SyncClearHistory) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[23] 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 SyncClearHistory.ProtoReflect.Descriptor instead. func (*SyncClearHistory) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{23} } func (x *SyncClearHistory) GetChatId() string { if x != nil { return x.ChatId } return "" } func (x *SyncClearHistory) GetClearedAt() uint64 { if x != nil { return x.ClearedAt } return 0 } type SyncProfilePicture struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` Width uint32 `protobuf:"varint,3,opt,name=width,proto3" json:"width,omitempty"` Height uint32 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"` FileSize uint32 `protobuf:"varint,5,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"` ResizeTarget uint32 `protobuf:"varint,6,opt,name=resize_target,json=resizeTarget,proto3" json:"resize_target,omitempty"` Clock uint64 `protobuf:"varint,7,opt,name=clock,proto3" json:"clock,omitempty"` } func (x *SyncProfilePicture) Reset() { *x = SyncProfilePicture{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncProfilePicture) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncProfilePicture) ProtoMessage() {} func (x *SyncProfilePicture) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[24] 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 SyncProfilePicture.ProtoReflect.Descriptor instead. func (*SyncProfilePicture) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{24} } func (x *SyncProfilePicture) GetName() string { if x != nil { return x.Name } return "" } func (x *SyncProfilePicture) GetPayload() []byte { if x != nil { return x.Payload } return nil } func (x *SyncProfilePicture) GetWidth() uint32 { if x != nil { return x.Width } return 0 } func (x *SyncProfilePicture) GetHeight() uint32 { if x != nil { return x.Height } return 0 } func (x *SyncProfilePicture) GetFileSize() uint32 { if x != nil { return x.FileSize } return 0 } func (x *SyncProfilePicture) GetResizeTarget() uint32 { if x != nil { return x.ResizeTarget } return 0 } func (x *SyncProfilePicture) GetClock() uint64 { if x != nil { return x.Clock } return 0 } type SyncProfilePictures struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields KeyUid string `protobuf:"bytes,1,opt,name=key_uid,json=keyUid,proto3" json:"key_uid,omitempty"` Pictures []*SyncProfilePicture `protobuf:"bytes,2,rep,name=pictures,proto3" json:"pictures,omitempty"` } func (x *SyncProfilePictures) Reset() { *x = SyncProfilePictures{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncProfilePictures) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncProfilePictures) ProtoMessage() {} func (x *SyncProfilePictures) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[25] 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 SyncProfilePictures.ProtoReflect.Descriptor instead. func (*SyncProfilePictures) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{25} } func (x *SyncProfilePictures) GetKeyUid() string { if x != nil { return x.KeyUid } return "" } func (x *SyncProfilePictures) GetPictures() []*SyncProfilePicture { if x != nil { return x.Pictures } return nil } type SyncAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Address []byte `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` KeyUid string `protobuf:"bytes,3,opt,name=key_uid,json=keyUid,proto3" json:"key_uid,omitempty"` PublicKey []byte `protobuf:"bytes,4,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` Path string `protobuf:"bytes,5,opt,name=path,proto3" json:"path,omitempty"` Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` ColorId string `protobuf:"bytes,7,opt,name=color_id,json=colorId,proto3" json:"color_id,omitempty"` Emoji string `protobuf:"bytes,8,opt,name=emoji,proto3" json:"emoji,omitempty"` Wallet bool `protobuf:"varint,9,opt,name=wallet,proto3" json:"wallet,omitempty"` Chat bool `protobuf:"varint,10,opt,name=chat,proto3" json:"chat,omitempty"` Hidden bool `protobuf:"varint,11,opt,name=hidden,proto3" json:"hidden,omitempty"` Removed bool `protobuf:"varint,12,opt,name=removed,proto3" json:"removed,omitempty"` Position int64 `protobuf:"varint,13,opt,name=position,proto3" json:"position,omitempty"` ProdPreferredChainIDs string `protobuf:"bytes,14,opt,name=prodPreferredChainIDs,proto3" json:"prodPreferredChainIDs,omitempty"` TestPreferredChainIDs string `protobuf:"bytes,15,opt,name=testPreferredChainIDs,proto3" json:"testPreferredChainIDs,omitempty"` Operable string `protobuf:"bytes,16,opt,name=operable,proto3" json:"operable,omitempty"` } func (x *SyncAccount) Reset() { *x = SyncAccount{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncAccount) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncAccount) ProtoMessage() {} func (x *SyncAccount) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[26] 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 SyncAccount.ProtoReflect.Descriptor instead. func (*SyncAccount) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{26} } func (x *SyncAccount) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncAccount) GetAddress() []byte { if x != nil { return x.Address } return nil } func (x *SyncAccount) GetKeyUid() string { if x != nil { return x.KeyUid } return "" } func (x *SyncAccount) GetPublicKey() []byte { if x != nil { return x.PublicKey } return nil } func (x *SyncAccount) GetPath() string { if x != nil { return x.Path } return "" } func (x *SyncAccount) GetName() string { if x != nil { return x.Name } return "" } func (x *SyncAccount) GetColorId() string { if x != nil { return x.ColorId } return "" } func (x *SyncAccount) GetEmoji() string { if x != nil { return x.Emoji } return "" } func (x *SyncAccount) GetWallet() bool { if x != nil { return x.Wallet } return false } func (x *SyncAccount) GetChat() bool { if x != nil { return x.Chat } return false } func (x *SyncAccount) GetHidden() bool { if x != nil { return x.Hidden } return false } func (x *SyncAccount) GetRemoved() bool { if x != nil { return x.Removed } return false } func (x *SyncAccount) GetPosition() int64 { if x != nil { return x.Position } return 0 } func (x *SyncAccount) GetProdPreferredChainIDs() string { if x != nil { return x.ProdPreferredChainIDs } return "" } func (x *SyncAccount) GetTestPreferredChainIDs() string { if x != nil { return x.TestPreferredChainIDs } return "" } func (x *SyncAccount) GetOperable() string { if x != nil { return x.Operable } return "" } type SyncKeypair struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` KeyUid string `protobuf:"bytes,2,opt,name=key_uid,json=keyUid,proto3" json:"key_uid,omitempty"` Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` DerivedFrom string `protobuf:"bytes,5,opt,name=derived_from,json=derivedFrom,proto3" json:"derived_from,omitempty"` LastUsedDerivationIndex uint64 `protobuf:"varint,6,opt,name=last_used_derivation_index,json=lastUsedDerivationIndex,proto3" json:"last_used_derivation_index,omitempty"` SyncedFrom string `protobuf:"bytes,7,opt,name=synced_from,json=syncedFrom,proto3" json:"synced_from,omitempty"` Accounts []*SyncAccount `protobuf:"bytes,8,rep,name=accounts,proto3" json:"accounts,omitempty"` Keycards []*SyncKeycard `protobuf:"bytes,9,rep,name=keycards,proto3" json:"keycards,omitempty"` Removed bool `protobuf:"varint,10,opt,name=removed,proto3" json:"removed,omitempty"` KeycardPairings []byte `protobuf:"bytes,11,opt,name=keycard_pairings,json=keycardPairings,proto3" json:"keycard_pairings,omitempty"` } func (x *SyncKeypair) Reset() { *x = SyncKeypair{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncKeypair) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncKeypair) ProtoMessage() {} func (x *SyncKeypair) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[27] 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 SyncKeypair.ProtoReflect.Descriptor instead. func (*SyncKeypair) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{27} } func (x *SyncKeypair) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncKeypair) GetKeyUid() string { if x != nil { return x.KeyUid } return "" } func (x *SyncKeypair) GetName() string { if x != nil { return x.Name } return "" } func (x *SyncKeypair) GetType() string { if x != nil { return x.Type } return "" } func (x *SyncKeypair) GetDerivedFrom() string { if x != nil { return x.DerivedFrom } return "" } func (x *SyncKeypair) GetLastUsedDerivationIndex() uint64 { if x != nil { return x.LastUsedDerivationIndex } return 0 } func (x *SyncKeypair) GetSyncedFrom() string { if x != nil { return x.SyncedFrom } return "" } func (x *SyncKeypair) GetAccounts() []*SyncAccount { if x != nil { return x.Accounts } return nil } func (x *SyncKeypair) GetKeycards() []*SyncKeycard { if x != nil { return x.Keycards } return nil } func (x *SyncKeypair) GetRemoved() bool { if x != nil { return x.Removed } return false } func (x *SyncKeypair) GetKeycardPairings() []byte { if x != nil { return x.KeycardPairings } return nil } // this message is used for syncing accounts positions only, for syncing any other info consider // `SyncAccount` or `SyncKeypair` message type SyncAccountsPositions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Accounts []*SyncAccount `protobuf:"bytes,2,rep,name=accounts,proto3" json:"accounts,omitempty"` } func (x *SyncAccountsPositions) Reset() { *x = SyncAccountsPositions{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncAccountsPositions) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncAccountsPositions) ProtoMessage() {} func (x *SyncAccountsPositions) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[28] 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 SyncAccountsPositions.ProtoReflect.Descriptor instead. func (*SyncAccountsPositions) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{28} } func (x *SyncAccountsPositions) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncAccountsPositions) GetAccounts() []*SyncAccount { if x != nil { return x.Accounts } return nil } type SyncSavedAddress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Removed bool `protobuf:"varint,5,opt,name=removed,proto3" json:"removed,omitempty"` UpdateClock uint64 `protobuf:"varint,7,opt,name=update_clock,json=updateClock,proto3" json:"update_clock,omitempty"` ChainShortNames string `protobuf:"bytes,8,opt,name=chain_short_names,json=chainShortNames,proto3" json:"chain_short_names,omitempty"` Ens string `protobuf:"bytes,9,opt,name=ens,proto3" json:"ens,omitempty"` IsTest bool `protobuf:"varint,10,opt,name=is_test,json=isTest,proto3" json:"is_test,omitempty"` Color string `protobuf:"bytes,11,opt,name=color,proto3" json:"color,omitempty"` } func (x *SyncSavedAddress) Reset() { *x = SyncSavedAddress{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncSavedAddress) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncSavedAddress) ProtoMessage() {} func (x *SyncSavedAddress) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[29] 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 SyncSavedAddress.ProtoReflect.Descriptor instead. func (*SyncSavedAddress) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{29} } func (x *SyncSavedAddress) GetAddress() []byte { if x != nil { return x.Address } return nil } func (x *SyncSavedAddress) GetName() string { if x != nil { return x.Name } return "" } func (x *SyncSavedAddress) GetRemoved() bool { if x != nil { return x.Removed } return false } func (x *SyncSavedAddress) GetUpdateClock() uint64 { if x != nil { return x.UpdateClock } return 0 } func (x *SyncSavedAddress) GetChainShortNames() string { if x != nil { return x.ChainShortNames } return "" } func (x *SyncSavedAddress) GetEns() string { if x != nil { return x.Ens } return "" } func (x *SyncSavedAddress) GetIsTest() bool { if x != nil { return x.IsTest } return false } func (x *SyncSavedAddress) GetColor() string { if x != nil { return x.Color } return "" } type SyncCommunitySettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` CommunityId string `protobuf:"bytes,2,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` HistoryArchiveSupportEnabled bool `protobuf:"varint,3,opt,name=history_archive_support_enabled,json=historyArchiveSupportEnabled,proto3" json:"history_archive_support_enabled,omitempty"` } func (x *SyncCommunitySettings) Reset() { *x = SyncCommunitySettings{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncCommunitySettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncCommunitySettings) ProtoMessage() {} func (x *SyncCommunitySettings) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[30] 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 SyncCommunitySettings.ProtoReflect.Descriptor instead. func (*SyncCommunitySettings) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{30} } func (x *SyncCommunitySettings) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncCommunitySettings) GetCommunityId() string { if x != nil { return x.CommunityId } return "" } func (x *SyncCommunitySettings) GetHistoryArchiveSupportEnabled() bool { if x != nil { return x.HistoryArchiveSupportEnabled } return false } type SyncTrustedUser struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` Status SyncTrustedUser_TrustStatus `protobuf:"varint,3,opt,name=status,proto3,enum=protobuf.SyncTrustedUser_TrustStatus" json:"status,omitempty"` } func (x *SyncTrustedUser) Reset() { *x = SyncTrustedUser{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncTrustedUser) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncTrustedUser) ProtoMessage() {} func (x *SyncTrustedUser) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[31] 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 SyncTrustedUser.ProtoReflect.Descriptor instead. func (*SyncTrustedUser) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{31} } func (x *SyncTrustedUser) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncTrustedUser) GetId() string { if x != nil { return x.Id } return "" } func (x *SyncTrustedUser) GetStatus() SyncTrustedUser_TrustStatus { if x != nil { return x.Status } return SyncTrustedUser_UNKNOWN } type SyncVerificationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` From string `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"` To string `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"` Challenge string `protobuf:"bytes,4,opt,name=challenge,proto3" json:"challenge,omitempty"` RequestedAt uint64 `protobuf:"varint,5,opt,name=requested_at,json=requestedAt,proto3" json:"requested_at,omitempty"` Response string `protobuf:"bytes,6,opt,name=response,proto3" json:"response,omitempty"` RepliedAt uint64 `protobuf:"varint,7,opt,name=replied_at,json=repliedAt,proto3" json:"replied_at,omitempty"` VerificationStatus SyncVerificationRequest_VerificationStatus `protobuf:"varint,8,opt,name=verification_status,json=verificationStatus,proto3,enum=protobuf.SyncVerificationRequest_VerificationStatus" json:"verification_status,omitempty"` Id string `protobuf:"bytes,9,opt,name=id,proto3" json:"id,omitempty"` } func (x *SyncVerificationRequest) Reset() { *x = SyncVerificationRequest{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncVerificationRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncVerificationRequest) ProtoMessage() {} func (x *SyncVerificationRequest) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[32] 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 SyncVerificationRequest.ProtoReflect.Descriptor instead. func (*SyncVerificationRequest) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{32} } func (x *SyncVerificationRequest) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncVerificationRequest) GetFrom() string { if x != nil { return x.From } return "" } func (x *SyncVerificationRequest) GetTo() string { if x != nil { return x.To } return "" } func (x *SyncVerificationRequest) GetChallenge() string { if x != nil { return x.Challenge } return "" } func (x *SyncVerificationRequest) GetRequestedAt() uint64 { if x != nil { return x.RequestedAt } return 0 } func (x *SyncVerificationRequest) GetResponse() string { if x != nil { return x.Response } return "" } func (x *SyncVerificationRequest) GetRepliedAt() uint64 { if x != nil { return x.RepliedAt } return 0 } func (x *SyncVerificationRequest) GetVerificationStatus() SyncVerificationRequest_VerificationStatus { if x != nil { return x.VerificationStatus } return SyncVerificationRequest_UNKNOWN } func (x *SyncVerificationRequest) GetId() string { if x != nil { return x.Id } return "" } type SyncContactRequestDecision struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` RequestId string `protobuf:"bytes,2,opt,name=requestId,proto3" json:"requestId,omitempty"` DecisionStatus SyncContactRequestDecision_DecisionStatus `protobuf:"varint,3,opt,name=decision_status,json=decisionStatus,proto3,enum=protobuf.SyncContactRequestDecision_DecisionStatus" json:"decision_status,omitempty"` } func (x *SyncContactRequestDecision) Reset() { *x = SyncContactRequestDecision{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncContactRequestDecision) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncContactRequestDecision) ProtoMessage() {} func (x *SyncContactRequestDecision) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[33] 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 SyncContactRequestDecision.ProtoReflect.Descriptor instead. func (*SyncContactRequestDecision) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{33} } func (x *SyncContactRequestDecision) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncContactRequestDecision) GetRequestId() string { if x != nil { return x.RequestId } return "" } func (x *SyncContactRequestDecision) GetDecisionStatus() SyncContactRequestDecision_DecisionStatus { if x != nil { return x.DecisionStatus } return SyncContactRequestDecision_ACCEPTED } // `BackedUpProfile` is used to describe profile of logged in user type BackedUpProfile struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields KeyUid string `protobuf:"bytes,1,opt,name=key_uid,json=keyUid,proto3" json:"key_uid,omitempty"` DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` DisplayNameClock uint64 `protobuf:"varint,3,opt,name=display_name_clock,json=displayNameClock,proto3" json:"display_name_clock,omitempty"` Pictures []*SyncProfilePicture `protobuf:"bytes,4,rep,name=pictures,proto3" json:"pictures,omitempty"` SocialLinks *SyncSocialLinks `protobuf:"bytes,5,opt,name=social_links,json=socialLinks,proto3" json:"social_links,omitempty"` EnsUsernameDetails []*SyncEnsUsernameDetail `protobuf:"bytes,6,rep,name=ens_username_details,json=ensUsernameDetails,proto3" json:"ens_username_details,omitempty"` } func (x *BackedUpProfile) Reset() { *x = BackedUpProfile{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BackedUpProfile) String() string { return protoimpl.X.MessageStringOf(x) } func (*BackedUpProfile) ProtoMessage() {} func (x *BackedUpProfile) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[34] 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 BackedUpProfile.ProtoReflect.Descriptor instead. func (*BackedUpProfile) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{34} } func (x *BackedUpProfile) GetKeyUid() string { if x != nil { return x.KeyUid } return "" } func (x *BackedUpProfile) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *BackedUpProfile) GetDisplayNameClock() uint64 { if x != nil { return x.DisplayNameClock } return 0 } func (x *BackedUpProfile) GetPictures() []*SyncProfilePicture { if x != nil { return x.Pictures } return nil } func (x *BackedUpProfile) GetSocialLinks() *SyncSocialLinks { if x != nil { return x.SocialLinks } return nil } func (x *BackedUpProfile) GetEnsUsernameDetails() []*SyncEnsUsernameDetail { if x != nil { return x.EnsUsernameDetails } return nil } type RawMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` MessageType ApplicationMetadataMessage_Type `protobuf:"varint,2,opt,name=messageType,proto3,enum=protobuf.ApplicationMetadataMessage_Type" json:"messageType,omitempty"` } func (x *RawMessage) Reset() { *x = RawMessage{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RawMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*RawMessage) ProtoMessage() {} func (x *RawMessage) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[35] 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 RawMessage.ProtoReflect.Descriptor instead. func (*RawMessage) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{35} } func (x *RawMessage) GetPayload() []byte { if x != nil { return x.Payload } return nil } func (x *RawMessage) GetMessageType() ApplicationMetadataMessage_Type { if x != nil { return x.MessageType } return ApplicationMetadataMessage_UNKNOWN } type SyncRawMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RawMessages []*RawMessage `protobuf:"bytes,1,rep,name=rawMessages,proto3" json:"rawMessages,omitempty"` // we need these to be able to login SubAccountsJsonBytes []byte `protobuf:"bytes,2,opt,name=subAccountsJsonBytes,proto3" json:"subAccountsJsonBytes,omitempty"` SettingsJsonBytes []byte `protobuf:"bytes,3,opt,name=settingsJsonBytes,proto3" json:"settingsJsonBytes,omitempty"` } func (x *SyncRawMessage) Reset() { *x = SyncRawMessage{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncRawMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncRawMessage) ProtoMessage() {} func (x *SyncRawMessage) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[36] 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 SyncRawMessage.ProtoReflect.Descriptor instead. func (*SyncRawMessage) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{36} } func (x *SyncRawMessage) GetRawMessages() []*RawMessage { if x != nil { return x.RawMessages } return nil } func (x *SyncRawMessage) GetSubAccountsJsonBytes() []byte { if x != nil { return x.SubAccountsJsonBytes } return nil } func (x *SyncRawMessage) GetSettingsJsonBytes() []byte { if x != nil { return x.SettingsJsonBytes } return nil } type SyncKeycard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Locked bool `protobuf:"varint,3,opt,name=locked,proto3" json:"locked,omitempty"` KeyUid string `protobuf:"bytes,4,opt,name=key_uid,json=keyUid,proto3" json:"key_uid,omitempty"` Addresses [][]byte `protobuf:"bytes,5,rep,name=addresses,proto3" json:"addresses,omitempty"` Position uint64 `protobuf:"varint,6,opt,name=position,proto3" json:"position,omitempty"` } func (x *SyncKeycard) Reset() { *x = SyncKeycard{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncKeycard) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncKeycard) ProtoMessage() {} func (x *SyncKeycard) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[37] 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 SyncKeycard.ProtoReflect.Descriptor instead. func (*SyncKeycard) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{37} } func (x *SyncKeycard) GetUid() string { if x != nil { return x.Uid } return "" } func (x *SyncKeycard) GetName() string { if x != nil { return x.Name } return "" } func (x *SyncKeycard) GetLocked() bool { if x != nil { return x.Locked } return false } func (x *SyncKeycard) GetKeyUid() string { if x != nil { return x.KeyUid } return "" } func (x *SyncKeycard) GetAddresses() [][]byte { if x != nil { return x.Addresses } return nil } func (x *SyncKeycard) GetPosition() uint64 { if x != nil { return x.Position } return 0 } type SyncSocialLinks struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SocialLinks []*SocialLink `protobuf:"bytes,1,rep,name=social_links,json=socialLinks,proto3" json:"social_links,omitempty"` Clock uint64 `protobuf:"varint,2,opt,name=clock,proto3" json:"clock,omitempty"` } func (x *SyncSocialLinks) Reset() { *x = SyncSocialLinks{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncSocialLinks) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncSocialLinks) ProtoMessage() {} func (x *SyncSocialLinks) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[38] 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 SyncSocialLinks.ProtoReflect.Descriptor instead. func (*SyncSocialLinks) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{38} } func (x *SyncSocialLinks) GetSocialLinks() []*SocialLink { if x != nil { return x.SocialLinks } return nil } func (x *SyncSocialLinks) GetClock() uint64 { if x != nil { return x.Clock } return 0 } type SyncAccountCustomizationColor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UpdatedAt uint64 `protobuf:"varint,1,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` CustomizationColor string `protobuf:"bytes,2,opt,name=customization_color,json=customizationColor,proto3" json:"customization_color,omitempty"` KeyUid string `protobuf:"bytes,3,opt,name=key_uid,json=keyUid,proto3" json:"key_uid,omitempty"` } func (x *SyncAccountCustomizationColor) Reset() { *x = SyncAccountCustomizationColor{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncAccountCustomizationColor) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncAccountCustomizationColor) ProtoMessage() {} func (x *SyncAccountCustomizationColor) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[39] 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 SyncAccountCustomizationColor.ProtoReflect.Descriptor instead. func (*SyncAccountCustomizationColor) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{39} } func (x *SyncAccountCustomizationColor) GetUpdatedAt() uint64 { if x != nil { return x.UpdatedAt } return 0 } func (x *SyncAccountCustomizationColor) GetCustomizationColor() string { if x != nil { return x.CustomizationColor } return "" } func (x *SyncAccountCustomizationColor) GetKeyUid() string { if x != nil { return x.KeyUid } return "" } type TokenPreferences struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` Position int64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` GroupPosition int64 `protobuf:"varint,3,opt,name=groupPosition,proto3" json:"groupPosition,omitempty"` Visible bool `protobuf:"varint,4,opt,name=visible,proto3" json:"visible,omitempty"` CommunityId string `protobuf:"bytes,5,opt,name=communityId,proto3" json:"communityId,omitempty"` } func (x *TokenPreferences) Reset() { *x = TokenPreferences{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TokenPreferences) String() string { return protoimpl.X.MessageStringOf(x) } func (*TokenPreferences) ProtoMessage() {} func (x *TokenPreferences) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[40] 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 TokenPreferences.ProtoReflect.Descriptor instead. func (*TokenPreferences) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{40} } func (x *TokenPreferences) GetKey() string { if x != nil { return x.Key } return "" } func (x *TokenPreferences) GetPosition() int64 { if x != nil { return x.Position } return 0 } func (x *TokenPreferences) GetGroupPosition() int64 { if x != nil { return x.GroupPosition } return 0 } func (x *TokenPreferences) GetVisible() bool { if x != nil { return x.Visible } return false } func (x *TokenPreferences) GetCommunityId() string { if x != nil { return x.CommunityId } return "" } type SyncTokenPreferences struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Testnet bool `protobuf:"varint,2,opt,name=testnet,proto3" json:"testnet,omitempty"` Preferences []*TokenPreferences `protobuf:"bytes,3,rep,name=preferences,proto3" json:"preferences,omitempty"` } func (x *SyncTokenPreferences) Reset() { *x = SyncTokenPreferences{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncTokenPreferences) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncTokenPreferences) ProtoMessage() {} func (x *SyncTokenPreferences) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[41] 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 SyncTokenPreferences.ProtoReflect.Descriptor instead. func (*SyncTokenPreferences) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{41} } func (x *SyncTokenPreferences) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncTokenPreferences) GetTestnet() bool { if x != nil { return x.Testnet } return false } func (x *SyncTokenPreferences) GetPreferences() []*TokenPreferences { if x != nil { return x.Preferences } return nil } type CollectiblePreferences struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type int64 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` Position int64 `protobuf:"varint,3,opt,name=position,proto3" json:"position,omitempty"` Visible bool `protobuf:"varint,4,opt,name=visible,proto3" json:"visible,omitempty"` } func (x *CollectiblePreferences) Reset() { *x = CollectiblePreferences{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CollectiblePreferences) String() string { return protoimpl.X.MessageStringOf(x) } func (*CollectiblePreferences) ProtoMessage() {} func (x *CollectiblePreferences) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[42] 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 CollectiblePreferences.ProtoReflect.Descriptor instead. func (*CollectiblePreferences) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{42} } func (x *CollectiblePreferences) GetType() int64 { if x != nil { return x.Type } return 0 } func (x *CollectiblePreferences) GetKey() string { if x != nil { return x.Key } return "" } func (x *CollectiblePreferences) GetPosition() int64 { if x != nil { return x.Position } return 0 } func (x *CollectiblePreferences) GetVisible() bool { if x != nil { return x.Visible } return false } type SyncCollectiblePreferences struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Testnet bool `protobuf:"varint,2,opt,name=testnet,proto3" json:"testnet,omitempty"` Preferences []*CollectiblePreferences `protobuf:"bytes,3,rep,name=preferences,proto3" json:"preferences,omitempty"` } func (x *SyncCollectiblePreferences) Reset() { *x = SyncCollectiblePreferences{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncCollectiblePreferences) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncCollectiblePreferences) ProtoMessage() {} func (x *SyncCollectiblePreferences) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[43] 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 SyncCollectiblePreferences.ProtoReflect.Descriptor instead. func (*SyncCollectiblePreferences) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{43} } func (x *SyncCollectiblePreferences) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *SyncCollectiblePreferences) GetTestnet() bool { if x != nil { return x.Testnet } return false } func (x *SyncCollectiblePreferences) GetPreferences() []*CollectiblePreferences { if x != nil { return x.Preferences } return nil } type MultiAccount_ColorHash struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Index []int64 `protobuf:"varint,1,rep,packed,name=index,proto3" json:"index,omitempty"` } func (x *MultiAccount_ColorHash) Reset() { *x = MultiAccount_ColorHash{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MultiAccount_ColorHash) String() string { return protoimpl.X.MessageStringOf(x) } func (*MultiAccount_ColorHash) ProtoMessage() {} func (x *MultiAccount_ColorHash) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[44] 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 MultiAccount_ColorHash.ProtoReflect.Descriptor instead. func (*MultiAccount_ColorHash) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{2, 0} } func (x *MultiAccount_ColorHash) GetIndex() []int64 { if x != nil { return x.Index } return nil } type MultiAccount_IdentityImage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields KeyUid string `protobuf:"bytes,1,opt,name=key_uid,json=keyUid,proto3" json:"key_uid,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Payload []byte `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"` Width int64 `protobuf:"varint,4,opt,name=width,proto3" json:"width,omitempty"` Height int64 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"` Filesize int64 `protobuf:"varint,6,opt,name=filesize,proto3" json:"filesize,omitempty"` ResizeTarget int64 `protobuf:"varint,7,opt,name=resize_target,json=resizeTarget,proto3" json:"resize_target,omitempty"` Clock uint64 `protobuf:"varint,8,opt,name=clock,proto3" json:"clock,omitempty"` } func (x *MultiAccount_IdentityImage) Reset() { *x = MultiAccount_IdentityImage{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MultiAccount_IdentityImage) String() string { return protoimpl.X.MessageStringOf(x) } func (*MultiAccount_IdentityImage) ProtoMessage() {} func (x *MultiAccount_IdentityImage) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[45] 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 MultiAccount_IdentityImage.ProtoReflect.Descriptor instead. func (*MultiAccount_IdentityImage) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{2, 1} } func (x *MultiAccount_IdentityImage) GetKeyUid() string { if x != nil { return x.KeyUid } return "" } func (x *MultiAccount_IdentityImage) GetName() string { if x != nil { return x.Name } return "" } func (x *MultiAccount_IdentityImage) GetPayload() []byte { if x != nil { return x.Payload } return nil } func (x *MultiAccount_IdentityImage) GetWidth() int64 { if x != nil { return x.Width } return 0 } func (x *MultiAccount_IdentityImage) GetHeight() int64 { if x != nil { return x.Height } return 0 } func (x *MultiAccount_IdentityImage) GetFilesize() int64 { if x != nil { return x.Filesize } return 0 } func (x *MultiAccount_IdentityImage) GetResizeTarget() int64 { if x != nil { return x.ResizeTarget } return 0 } func (x *MultiAccount_IdentityImage) GetClock() uint64 { if x != nil { return x.Clock } return 0 } type LocalPairingPayload_Key struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` } func (x *LocalPairingPayload_Key) Reset() { *x = LocalPairingPayload_Key{} if protoimpl.UnsafeEnabled { mi := &file_pairing_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LocalPairingPayload_Key) String() string { return protoimpl.X.MessageStringOf(x) } func (*LocalPairingPayload_Key) ProtoMessage() {} func (x *LocalPairingPayload_Key) ProtoReflect() protoreflect.Message { mi := &file_pairing_proto_msgTypes[46] 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 LocalPairingPayload_Key.ProtoReflect.Descriptor instead. func (*LocalPairingPayload_Key) Descriptor() ([]byte, []int) { return file_pairing_proto_rawDescGZIP(), []int{3, 0} } func (x *LocalPairingPayload_Key) GetName() string { if x != nil { return x.Name } return "" } func (x *LocalPairingPayload_Key) GetData() []byte { if x != nil { return x.Data } return nil } var File_pairing_proto protoreflect.FileDescriptor var file_pairing_proto_rawDesc = []byte{ 0x0a, 0x0d, 0x70, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x13, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x61, 0x0a, 0x1b, 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xfd, 0x07, 0x0a, 0x06, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x56, 0x32, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x55, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x4d, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2f, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x4f, 0x0a, 0x0f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2f, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x69, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x70, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x69, 0x72, 0x12, 0x4d, 0x0a, 0x0e, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x69, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0e, 0x6b, 0x65, 0x79, 0x70, 0x61, 0x69, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x41, 0x0a, 0x10, 0x77, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x77, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5f, 0x0a, 0x17, 0x77, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x17, 0x77, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x6e, 0x6c, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x63, 0x68, 0x61, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x68, 0x61, 0x74, 0x52, 0x05, 0x63, 0x68, 0x61, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x74, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x70, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x74, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xa8, 0x05, 0x0a, 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x48, 0x61, 0x73, 0x68, 0x52, 0x09, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x72, 0x64, 0x50, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x55, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x3a, 0x0a, 0x19, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x21, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0xdb, 0x01, 0x0a, 0x0d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x97, 0x02, 0x0a, 0x13, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x35, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x3a, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x72, 0x64, 0x50, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x72, 0x64, 0x50, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x2d, 0x0a, 0x03, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x01, 0x0a, 0x15, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x65, 0x72, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x14, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x61, 0x69, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x06, 0x0a, 0x19, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x61, 0x67, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x41, 0x64, 0x64, 0x65, 0x64, 0x55, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x72, 0x75, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3f, 0x0a, 0x1c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x77, 0x0a, 0x17, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0xcf, 0x04, 0x0a, 0x19, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x12, 0x4f, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x54, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x54, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x41, 0x74, 0x22, 0x97, 0x02, 0x0a, 0x1b, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x54, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x59, 0x0a, 0x18, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xe9, 0x01, 0x0a, 0x08, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x68, 0x61, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x58, 0x0a, 0x16, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x16, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x22, 0x88, 0x02, 0x0a, 0x16, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, 0x61, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x37, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3c, 0x0a, 0x14, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x40, 0x0a, 0x16, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x44, 0x0a, 0x1a, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x45, 0x0a, 0x1b, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x43, 0x0a, 0x19, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x42, 0x0a, 0x18, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0xa6, 0x02, 0x0a, 0x2a, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6b, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x38, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x22, 0xa0, 0x01, 0x0a, 0x0c, 0x53, 0x79, 0x6e, 0x63, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x7e, 0x0a, 0x15, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x73, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x22, 0x4a, 0x0a, 0x10, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x41, 0x74, 0x22, 0xc8, 0x01, 0x0a, 0x12, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x68, 0x0a, 0x13, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x55, 0x69, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x55, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x68, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x63, 0x68, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x64, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x72, 0x6f, 0x64, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x74, 0x65, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x65, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x90, 0x03, 0x0a, 0x0b, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x70, 0x61, 0x69, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x3b, 0x0a, 0x1a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x63, 0x61, 0x72, 0x64, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x72, 0x64, 0x50, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x60, 0x0a, 0x15, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xf6, 0x01, 0x0a, 0x10, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x61, 0x76, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x54, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x97, 0x01, 0x0a, 0x15, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x1f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3a, 0x0a, 0x0b, 0x54, 0x72, 0x75, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x52, 0x55, 0x53, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x54, 0x52, 0x55, 0x53, 0x54, 0x57, 0x4f, 0x52, 0x54, 0x48, 0x59, 0x10, 0x02, 0x22, 0xa0, 0x03, 0x0a, 0x17, 0x53, 0x79, 0x6e, 0x63, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x41, 0x74, 0x12, 0x65, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x12, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x58, 0x0a, 0x12, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x5c, 0x0a, 0x0f, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2c, 0x0a, 0x0e, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x22, 0xc6, 0x02, 0x0a, 0x0f, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x55, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x0b, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x65, 0x6e, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x73, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x12, 0x65, 0x6e, 0x73, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x73, 0x0a, 0x0a, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x0e, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x0b, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x73, 0x75, 0x62, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x73, 0x75, 0x62, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x9e, 0x01, 0x0a, 0x0b, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x63, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x55, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x60, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x0b, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x88, 0x01, 0x0a, 0x1d, 0x53, 0x79, 0x6e, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x55, 0x69, 0x64, 0x22, 0xa2, 0x01, 0x0a, 0x10, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x84, 0x01, 0x0a, 0x14, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x73, 0x74, 0x6e, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x74, 0x65, 0x73, 0x74, 0x6e, 0x65, 0x74, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x74, 0x0a, 0x16, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x1a, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x73, 0x74, 0x6e, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x74, 0x65, 0x73, 0x74, 0x6e, 0x65, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_pairing_proto_rawDescOnce sync.Once file_pairing_proto_rawDescData = file_pairing_proto_rawDesc ) func file_pairing_proto_rawDescGZIP() []byte { file_pairing_proto_rawDescOnce.Do(func() { file_pairing_proto_rawDescData = protoimpl.X.CompressGZIP(file_pairing_proto_rawDescData) }) return file_pairing_proto_rawDescData } var file_pairing_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_pairing_proto_msgTypes = make([]protoimpl.MessageInfo, 47) var file_pairing_proto_goTypes = []interface{}{ (SyncActivityCenterCommunityRequestDecisionCommunityRequestDecision)(0), // 0: protobuf.SyncActivityCenterCommunityRequestDecision.community_request_decision (SyncTrustedUser_TrustStatus)(0), // 1: protobuf.SyncTrustedUser.TrustStatus (SyncVerificationRequest_VerificationStatus)(0), // 2: protobuf.SyncVerificationRequest.VerificationStatus (SyncContactRequestDecision_DecisionStatus)(0), // 3: protobuf.SyncContactRequestDecision.DecisionStatus (*FetchingBackedUpDataDetails)(nil), // 4: protobuf.FetchingBackedUpDataDetails (*Backup)(nil), // 5: protobuf.Backup (*MultiAccount)(nil), // 6: protobuf.MultiAccount (*LocalPairingPayload)(nil), // 7: protobuf.LocalPairingPayload (*LocalPairingPeerHello)(nil), // 8: protobuf.LocalPairingPeerHello (*SyncPairInstallation)(nil), // 9: protobuf.SyncPairInstallation (*SyncInstallationContactV2)(nil), // 10: protobuf.SyncInstallationContactV2 (*SyncInstallationAccount)(nil), // 11: protobuf.SyncInstallationAccount (*SyncInstallationCommunity)(nil), // 12: protobuf.SyncInstallationCommunity (*SyncCommunityRequestsToJoin)(nil), // 13: protobuf.SyncCommunityRequestsToJoin (*SyncCommunityControlNode)(nil), // 14: protobuf.SyncCommunityControlNode (*SyncChat)(nil), // 15: protobuf.SyncChat (*MembershipUpdateEvents)(nil), // 16: protobuf.MembershipUpdateEvents (*SyncChatRemoved)(nil), // 17: protobuf.SyncChatRemoved (*SyncChatMessagesRead)(nil), // 18: protobuf.SyncChatMessagesRead (*SyncActivityCenterRead)(nil), // 19: protobuf.SyncActivityCenterRead (*SyncActivityCenterAccepted)(nil), // 20: protobuf.SyncActivityCenterAccepted (*SyncActivityCenterDismissed)(nil), // 21: protobuf.SyncActivityCenterDismissed (*SyncActivityCenterDeleted)(nil), // 22: protobuf.SyncActivityCenterDeleted (*SyncActivityCenterUnread)(nil), // 23: protobuf.SyncActivityCenterUnread (*SyncActivityCenterCommunityRequestDecision)(nil), // 24: protobuf.SyncActivityCenterCommunityRequestDecision (*SyncBookmark)(nil), // 25: protobuf.SyncBookmark (*SyncEnsUsernameDetail)(nil), // 26: protobuf.SyncEnsUsernameDetail (*SyncClearHistory)(nil), // 27: protobuf.SyncClearHistory (*SyncProfilePicture)(nil), // 28: protobuf.SyncProfilePicture (*SyncProfilePictures)(nil), // 29: protobuf.SyncProfilePictures (*SyncAccount)(nil), // 30: protobuf.SyncAccount (*SyncKeypair)(nil), // 31: protobuf.SyncKeypair (*SyncAccountsPositions)(nil), // 32: protobuf.SyncAccountsPositions (*SyncSavedAddress)(nil), // 33: protobuf.SyncSavedAddress (*SyncCommunitySettings)(nil), // 34: protobuf.SyncCommunitySettings (*SyncTrustedUser)(nil), // 35: protobuf.SyncTrustedUser (*SyncVerificationRequest)(nil), // 36: protobuf.SyncVerificationRequest (*SyncContactRequestDecision)(nil), // 37: protobuf.SyncContactRequestDecision (*BackedUpProfile)(nil), // 38: protobuf.BackedUpProfile (*RawMessage)(nil), // 39: protobuf.RawMessage (*SyncRawMessage)(nil), // 40: protobuf.SyncRawMessage (*SyncKeycard)(nil), // 41: protobuf.SyncKeycard (*SyncSocialLinks)(nil), // 42: protobuf.SyncSocialLinks (*SyncAccountCustomizationColor)(nil), // 43: protobuf.SyncAccountCustomizationColor (*TokenPreferences)(nil), // 44: protobuf.TokenPreferences (*SyncTokenPreferences)(nil), // 45: protobuf.SyncTokenPreferences (*CollectiblePreferences)(nil), // 46: protobuf.CollectiblePreferences (*SyncCollectiblePreferences)(nil), // 47: protobuf.SyncCollectiblePreferences (*MultiAccount_ColorHash)(nil), // 48: protobuf.MultiAccount.ColorHash (*MultiAccount_IdentityImage)(nil), // 49: protobuf.MultiAccount.IdentityImage (*LocalPairingPayload_Key)(nil), // 50: protobuf.LocalPairingPayload.Key (*SyncSetting)(nil), // 51: protobuf.SyncSetting (*RevealedAccount)(nil), // 52: protobuf.RevealedAccount (ApplicationMetadataMessage_Type)(0), // 53: protobuf.ApplicationMetadataMessage.Type (*SocialLink)(nil), // 54: protobuf.SocialLink } var file_pairing_proto_depIdxs = []int32{ 10, // 0: protobuf.Backup.contacts:type_name -> protobuf.SyncInstallationContactV2 12, // 1: protobuf.Backup.communities:type_name -> protobuf.SyncInstallationCommunity 4, // 2: protobuf.Backup.contactsDetails:type_name -> protobuf.FetchingBackedUpDataDetails 4, // 3: protobuf.Backup.communitiesDetails:type_name -> protobuf.FetchingBackedUpDataDetails 38, // 4: protobuf.Backup.profile:type_name -> protobuf.BackedUpProfile 4, // 5: protobuf.Backup.profileDetails:type_name -> protobuf.FetchingBackedUpDataDetails 51, // 6: protobuf.Backup.setting:type_name -> protobuf.SyncSetting 4, // 7: protobuf.Backup.settingsDetails:type_name -> protobuf.FetchingBackedUpDataDetails 31, // 8: protobuf.Backup.keypair:type_name -> protobuf.SyncKeypair 4, // 9: protobuf.Backup.keypairDetails:type_name -> protobuf.FetchingBackedUpDataDetails 30, // 10: protobuf.Backup.watchOnlyAccount:type_name -> protobuf.SyncAccount 4, // 11: protobuf.Backup.watchOnlyAccountDetails:type_name -> protobuf.FetchingBackedUpDataDetails 15, // 12: protobuf.Backup.chats:type_name -> protobuf.SyncChat 4, // 13: protobuf.Backup.chatsDetails:type_name -> protobuf.FetchingBackedUpDataDetails 48, // 14: protobuf.MultiAccount.color_hash:type_name -> protobuf.MultiAccount.ColorHash 49, // 15: protobuf.MultiAccount.images:type_name -> protobuf.MultiAccount.IdentityImage 50, // 16: protobuf.LocalPairingPayload.keys:type_name -> protobuf.LocalPairingPayload.Key 6, // 17: protobuf.LocalPairingPayload.multiaccount:type_name -> protobuf.MultiAccount 13, // 18: protobuf.SyncInstallationCommunity.requests_to_join:type_name -> protobuf.SyncCommunityRequestsToJoin 34, // 19: protobuf.SyncInstallationCommunity.settings:type_name -> protobuf.SyncCommunitySettings 14, // 20: protobuf.SyncInstallationCommunity.control_node:type_name -> protobuf.SyncCommunityControlNode 52, // 21: protobuf.SyncCommunityRequestsToJoin.revealed_accounts:type_name -> protobuf.RevealedAccount 16, // 22: protobuf.SyncChat.membershipUpdateEvents:type_name -> protobuf.MembershipUpdateEvents 0, // 23: protobuf.SyncActivityCenterCommunityRequestDecision.decision:type_name -> protobuf.SyncActivityCenterCommunityRequestDecision.community_request_decision 28, // 24: protobuf.SyncProfilePictures.pictures:type_name -> protobuf.SyncProfilePicture 30, // 25: protobuf.SyncKeypair.accounts:type_name -> protobuf.SyncAccount 41, // 26: protobuf.SyncKeypair.keycards:type_name -> protobuf.SyncKeycard 30, // 27: protobuf.SyncAccountsPositions.accounts:type_name -> protobuf.SyncAccount 1, // 28: protobuf.SyncTrustedUser.status:type_name -> protobuf.SyncTrustedUser.TrustStatus 2, // 29: protobuf.SyncVerificationRequest.verification_status:type_name -> protobuf.SyncVerificationRequest.VerificationStatus 3, // 30: protobuf.SyncContactRequestDecision.decision_status:type_name -> protobuf.SyncContactRequestDecision.DecisionStatus 28, // 31: protobuf.BackedUpProfile.pictures:type_name -> protobuf.SyncProfilePicture 42, // 32: protobuf.BackedUpProfile.social_links:type_name -> protobuf.SyncSocialLinks 26, // 33: protobuf.BackedUpProfile.ens_username_details:type_name -> protobuf.SyncEnsUsernameDetail 53, // 34: protobuf.RawMessage.messageType:type_name -> protobuf.ApplicationMetadataMessage.Type 39, // 35: protobuf.SyncRawMessage.rawMessages:type_name -> protobuf.RawMessage 54, // 36: protobuf.SyncSocialLinks.social_links:type_name -> protobuf.SocialLink 44, // 37: protobuf.SyncTokenPreferences.preferences:type_name -> protobuf.TokenPreferences 46, // 38: protobuf.SyncCollectiblePreferences.preferences:type_name -> protobuf.CollectiblePreferences 39, // [39:39] is the sub-list for method output_type 39, // [39:39] is the sub-list for method input_type 39, // [39:39] is the sub-list for extension type_name 39, // [39:39] is the sub-list for extension extendee 0, // [0:39] is the sub-list for field type_name } func init() { file_pairing_proto_init() } func file_pairing_proto_init() { if File_pairing_proto != nil { return } file_chat_identity_proto_init() file_sync_settings_proto_init() file_application_metadata_message_proto_init() file_communities_proto_init() if !protoimpl.UnsafeEnabled { file_pairing_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FetchingBackedUpDataDetails); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Backup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MultiAccount); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LocalPairingPayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LocalPairingPeerHello); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncPairInstallation); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncInstallationContactV2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncInstallationAccount); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncInstallationCommunity); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncCommunityRequestsToJoin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncCommunityControlNode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncChat); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MembershipUpdateEvents); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncChatRemoved); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncChatMessagesRead); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncActivityCenterRead); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncActivityCenterAccepted); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncActivityCenterDismissed); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncActivityCenterDeleted); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncActivityCenterUnread); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncActivityCenterCommunityRequestDecision); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncBookmark); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncEnsUsernameDetail); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncClearHistory); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncProfilePicture); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncProfilePictures); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncAccount); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncKeypair); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncAccountsPositions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncSavedAddress); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncCommunitySettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncTrustedUser); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncVerificationRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncContactRequestDecision); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BackedUpProfile); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RawMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncRawMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncKeycard); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncSocialLinks); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncAccountCustomizationColor); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokenPreferences); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncTokenPreferences); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CollectiblePreferences); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncCollectiblePreferences); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MultiAccount_ColorHash); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MultiAccount_IdentityImage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pairing_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LocalPairingPayload_Key); 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_pairing_proto_rawDesc, NumEnums: 4, NumMessages: 47, NumExtensions: 0, NumServices: 0, }, GoTypes: file_pairing_proto_goTypes, DependencyIndexes: file_pairing_proto_depIdxs, EnumInfos: file_pairing_proto_enumTypes, MessageInfos: file_pairing_proto_msgTypes, }.Build() File_pairing_proto = out.File file_pairing_proto_rawDesc = nil file_pairing_proto_goTypes = nil file_pairing_proto_depIdxs = nil }