// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.34.2
// 	protoc        (unknown)
// source: protocoltypes.proto

package protocoltypes

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 GroupType int32

const (
	// GroupTypeUndefined indicates that the value has not been set. For example, happens if group is replicated.
	GroupType_GroupTypeUndefined GroupType = 0
	// GroupTypeAccount is the group managing an account, available to all its devices.
	GroupType_GroupTypeAccount GroupType = 1
	// GroupTypeContact is the group created between two accounts, available to all their devices.
	GroupType_GroupTypeContact GroupType = 2
	// GroupTypeMultiMember is a group containing an undefined number of members.
	GroupType_GroupTypeMultiMember GroupType = 3
)

// Enum value maps for GroupType.
var (
	GroupType_name = map[int32]string{
		0: "GroupTypeUndefined",
		1: "GroupTypeAccount",
		2: "GroupTypeContact",
		3: "GroupTypeMultiMember",
	}
	GroupType_value = map[string]int32{
		"GroupTypeUndefined":   0,
		"GroupTypeAccount":     1,
		"GroupTypeContact":     2,
		"GroupTypeMultiMember": 3,
	}
)

func (x GroupType) Enum() *GroupType {
	p := new(GroupType)
	*p = x
	return p
}

func (x GroupType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (GroupType) Descriptor() protoreflect.EnumDescriptor {
	return file_protocoltypes_proto_enumTypes[0].Descriptor()
}

func (GroupType) Type() protoreflect.EnumType {
	return &file_protocoltypes_proto_enumTypes[0]
}

func (x GroupType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use GroupType.Descriptor instead.
func (GroupType) EnumDescriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{0}
}

type EventType int32

const (
	// EventTypeUndefined indicates that the value has not been set. Should not happen.
	EventType_EventTypeUndefined EventType = 0
	// EventTypeGroupMemberDeviceAdded indicates the payload includes that a member has added their device to the group
	EventType_EventTypeGroupMemberDeviceAdded EventType = 1
	// EventTypeGroupDeviceChainKeyAdded indicates the payload includes that a member has sent their device chain key to another member
	EventType_EventTypeGroupDeviceChainKeyAdded EventType = 2
	// EventTypeAccountGroupJoined indicates the payload includes that the account has joined a group
	EventType_EventTypeAccountGroupJoined EventType = 101
	// EventTypeAccountGroupLeft indicates the payload includes that the account has left a group
	EventType_EventTypeAccountGroupLeft EventType = 102
	// EventTypeAccountContactRequestDisabled indicates the payload includes that the account has disabled incoming contact requests
	EventType_EventTypeAccountContactRequestDisabled EventType = 103
	// EventTypeAccountContactRequestEnabled indicates the payload includes that the account has enabled incoming contact requests
	EventType_EventTypeAccountContactRequestEnabled EventType = 104
	// EventTypeAccountContactRequestReferenceReset indicates the payload includes that the account has a new contact request rendezvous seed
	EventType_EventTypeAccountContactRequestReferenceReset EventType = 105
	// EventTypeAccountContactRequestOutgoingEnqueued indicates the payload includes that the account will attempt to send a new contact request
	EventType_EventTypeAccountContactRequestOutgoingEnqueued EventType = 106
	// EventTypeAccountContactRequestOutgoingSent indicates the payload includes that the account has sent a contact request
	EventType_EventTypeAccountContactRequestOutgoingSent EventType = 107
	// EventTypeAccountContactRequestIncomingReceived indicates the payload includes that the account has received a contact request
	EventType_EventTypeAccountContactRequestIncomingReceived EventType = 108
	// EventTypeAccountContactRequestIncomingDiscarded indicates the payload includes that the account has ignored a contact request
	EventType_EventTypeAccountContactRequestIncomingDiscarded EventType = 109
	// EventTypeAccountContactRequestIncomingAccepted indicates the payload includes that the account has accepted a contact request
	EventType_EventTypeAccountContactRequestIncomingAccepted EventType = 110
	// EventTypeAccountContactBlocked indicates the payload includes that the account has blocked a contact
	EventType_EventTypeAccountContactBlocked EventType = 111
	// EventTypeAccountContactUnblocked indicates the payload includes that the account has unblocked a contact
	EventType_EventTypeAccountContactUnblocked EventType = 112
	// EventTypeContactAliasKeyAdded indicates the payload includes that the contact group has received an alias key
	EventType_EventTypeContactAliasKeyAdded EventType = 201
	// EventTypeMultiMemberGroupAliasResolverAdded indicates the payload includes that a member of the group sent their alias proof
	EventType_EventTypeMultiMemberGroupAliasResolverAdded EventType = 301
	// EventTypeMultiMemberGroupInitialMemberAnnounced indicates the payload includes that a member has authenticated themselves as the group owner
	EventType_EventTypeMultiMemberGroupInitialMemberAnnounced EventType = 302
	// EventTypeMultiMemberGroupAdminRoleGranted indicates the payload includes that an admin of the group granted another member as an admin
	EventType_EventTypeMultiMemberGroupAdminRoleGranted EventType = 303
	// EventTypeGroupReplicating indicates that the group has been registered for replication on a server
	EventType_EventTypeGroupReplicating EventType = 403
	// EventTypeAccountVerifiedCredentialRegistered
	EventType_EventTypeAccountVerifiedCredentialRegistered EventType = 500
	// EventTypeGroupMetadataPayloadSent indicates the payload includes an app specific event, unlike messages stored on the message store it is encrypted using a static key
	EventType_EventTypeGroupMetadataPayloadSent EventType = 1001
)

// Enum value maps for EventType.
var (
	EventType_name = map[int32]string{
		0:    "EventTypeUndefined",
		1:    "EventTypeGroupMemberDeviceAdded",
		2:    "EventTypeGroupDeviceChainKeyAdded",
		101:  "EventTypeAccountGroupJoined",
		102:  "EventTypeAccountGroupLeft",
		103:  "EventTypeAccountContactRequestDisabled",
		104:  "EventTypeAccountContactRequestEnabled",
		105:  "EventTypeAccountContactRequestReferenceReset",
		106:  "EventTypeAccountContactRequestOutgoingEnqueued",
		107:  "EventTypeAccountContactRequestOutgoingSent",
		108:  "EventTypeAccountContactRequestIncomingReceived",
		109:  "EventTypeAccountContactRequestIncomingDiscarded",
		110:  "EventTypeAccountContactRequestIncomingAccepted",
		111:  "EventTypeAccountContactBlocked",
		112:  "EventTypeAccountContactUnblocked",
		201:  "EventTypeContactAliasKeyAdded",
		301:  "EventTypeMultiMemberGroupAliasResolverAdded",
		302:  "EventTypeMultiMemberGroupInitialMemberAnnounced",
		303:  "EventTypeMultiMemberGroupAdminRoleGranted",
		403:  "EventTypeGroupReplicating",
		500:  "EventTypeAccountVerifiedCredentialRegistered",
		1001: "EventTypeGroupMetadataPayloadSent",
	}
	EventType_value = map[string]int32{
		"EventTypeUndefined":                              0,
		"EventTypeGroupMemberDeviceAdded":                 1,
		"EventTypeGroupDeviceChainKeyAdded":               2,
		"EventTypeAccountGroupJoined":                     101,
		"EventTypeAccountGroupLeft":                       102,
		"EventTypeAccountContactRequestDisabled":          103,
		"EventTypeAccountContactRequestEnabled":           104,
		"EventTypeAccountContactRequestReferenceReset":    105,
		"EventTypeAccountContactRequestOutgoingEnqueued":  106,
		"EventTypeAccountContactRequestOutgoingSent":      107,
		"EventTypeAccountContactRequestIncomingReceived":  108,
		"EventTypeAccountContactRequestIncomingDiscarded": 109,
		"EventTypeAccountContactRequestIncomingAccepted":  110,
		"EventTypeAccountContactBlocked":                  111,
		"EventTypeAccountContactUnblocked":                112,
		"EventTypeContactAliasKeyAdded":                   201,
		"EventTypeMultiMemberGroupAliasResolverAdded":     301,
		"EventTypeMultiMemberGroupInitialMemberAnnounced": 302,
		"EventTypeMultiMemberGroupAdminRoleGranted":       303,
		"EventTypeGroupReplicating":                       403,
		"EventTypeAccountVerifiedCredentialRegistered":    500,
		"EventTypeGroupMetadataPayloadSent":               1001,
	}
)

func (x EventType) Enum() *EventType {
	p := new(EventType)
	*p = x
	return p
}

func (x EventType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (EventType) Descriptor() protoreflect.EnumDescriptor {
	return file_protocoltypes_proto_enumTypes[1].Descriptor()
}

func (EventType) Type() protoreflect.EnumType {
	return &file_protocoltypes_proto_enumTypes[1]
}

func (x EventType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use EventType.Descriptor instead.
func (EventType) EnumDescriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{1}
}

type DebugInspectGroupLogType int32

const (
	DebugInspectGroupLogType_DebugInspectGroupLogTypeUndefined DebugInspectGroupLogType = 0
	DebugInspectGroupLogType_DebugInspectGroupLogTypeMessage   DebugInspectGroupLogType = 1
	DebugInspectGroupLogType_DebugInspectGroupLogTypeMetadata  DebugInspectGroupLogType = 2
)

// Enum value maps for DebugInspectGroupLogType.
var (
	DebugInspectGroupLogType_name = map[int32]string{
		0: "DebugInspectGroupLogTypeUndefined",
		1: "DebugInspectGroupLogTypeMessage",
		2: "DebugInspectGroupLogTypeMetadata",
	}
	DebugInspectGroupLogType_value = map[string]int32{
		"DebugInspectGroupLogTypeUndefined": 0,
		"DebugInspectGroupLogTypeMessage":   1,
		"DebugInspectGroupLogTypeMetadata":  2,
	}
)

func (x DebugInspectGroupLogType) Enum() *DebugInspectGroupLogType {
	p := new(DebugInspectGroupLogType)
	*p = x
	return p
}

func (x DebugInspectGroupLogType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DebugInspectGroupLogType) Descriptor() protoreflect.EnumDescriptor {
	return file_protocoltypes_proto_enumTypes[2].Descriptor()
}

func (DebugInspectGroupLogType) Type() protoreflect.EnumType {
	return &file_protocoltypes_proto_enumTypes[2]
}

func (x DebugInspectGroupLogType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use DebugInspectGroupLogType.Descriptor instead.
func (DebugInspectGroupLogType) EnumDescriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{2}
}

type ContactState int32

const (
	ContactState_ContactStateUndefined ContactState = 0
	ContactState_ContactStateToRequest ContactState = 1
	ContactState_ContactStateReceived  ContactState = 2
	ContactState_ContactStateAdded     ContactState = 3
	ContactState_ContactStateRemoved   ContactState = 4
	ContactState_ContactStateDiscarded ContactState = 5
	ContactState_ContactStateBlocked   ContactState = 6
)

// Enum value maps for ContactState.
var (
	ContactState_name = map[int32]string{
		0: "ContactStateUndefined",
		1: "ContactStateToRequest",
		2: "ContactStateReceived",
		3: "ContactStateAdded",
		4: "ContactStateRemoved",
		5: "ContactStateDiscarded",
		6: "ContactStateBlocked",
	}
	ContactState_value = map[string]int32{
		"ContactStateUndefined": 0,
		"ContactStateToRequest": 1,
		"ContactStateReceived":  2,
		"ContactStateAdded":     3,
		"ContactStateRemoved":   4,
		"ContactStateDiscarded": 5,
		"ContactStateBlocked":   6,
	}
)

func (x ContactState) Enum() *ContactState {
	p := new(ContactState)
	*p = x
	return p
}

func (x ContactState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ContactState) Descriptor() protoreflect.EnumDescriptor {
	return file_protocoltypes_proto_enumTypes[3].Descriptor()
}

func (ContactState) Type() protoreflect.EnumType {
	return &file_protocoltypes_proto_enumTypes[3]
}

func (x ContactState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ContactState.Descriptor instead.
func (ContactState) EnumDescriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{3}
}

type Direction int32

const (
	Direction_UnknownDir  Direction = 0
	Direction_InboundDir  Direction = 1
	Direction_OutboundDir Direction = 2
	Direction_BiDir       Direction = 3
)

// Enum value maps for Direction.
var (
	Direction_name = map[int32]string{
		0: "UnknownDir",
		1: "InboundDir",
		2: "OutboundDir",
		3: "BiDir",
	}
	Direction_value = map[string]int32{
		"UnknownDir":  0,
		"InboundDir":  1,
		"OutboundDir": 2,
		"BiDir":       3,
	}
)

func (x Direction) Enum() *Direction {
	p := new(Direction)
	*p = x
	return p
}

func (x Direction) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Direction) Descriptor() protoreflect.EnumDescriptor {
	return file_protocoltypes_proto_enumTypes[4].Descriptor()
}

func (Direction) Type() protoreflect.EnumType {
	return &file_protocoltypes_proto_enumTypes[4]
}

func (x Direction) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Direction.Descriptor instead.
func (Direction) EnumDescriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{4}
}

type ServiceGetConfiguration_SettingState int32

const (
	ServiceGetConfiguration_Unknown     ServiceGetConfiguration_SettingState = 0
	ServiceGetConfiguration_Enabled     ServiceGetConfiguration_SettingState = 1
	ServiceGetConfiguration_Disabled    ServiceGetConfiguration_SettingState = 2
	ServiceGetConfiguration_Unavailable ServiceGetConfiguration_SettingState = 3
)

// Enum value maps for ServiceGetConfiguration_SettingState.
var (
	ServiceGetConfiguration_SettingState_name = map[int32]string{
		0: "Unknown",
		1: "Enabled",
		2: "Disabled",
		3: "Unavailable",
	}
	ServiceGetConfiguration_SettingState_value = map[string]int32{
		"Unknown":     0,
		"Enabled":     1,
		"Disabled":    2,
		"Unavailable": 3,
	}
)

func (x ServiceGetConfiguration_SettingState) Enum() *ServiceGetConfiguration_SettingState {
	p := new(ServiceGetConfiguration_SettingState)
	*p = x
	return p
}

func (x ServiceGetConfiguration_SettingState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ServiceGetConfiguration_SettingState) Descriptor() protoreflect.EnumDescriptor {
	return file_protocoltypes_proto_enumTypes[5].Descriptor()
}

func (ServiceGetConfiguration_SettingState) Type() protoreflect.EnumType {
	return &file_protocoltypes_proto_enumTypes[5]
}

func (x ServiceGetConfiguration_SettingState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ServiceGetConfiguration_SettingState.Descriptor instead.
func (ServiceGetConfiguration_SettingState) EnumDescriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{34, 0}
}

type GroupDeviceStatus_Type int32

const (
	GroupDeviceStatus_TypeUnknown          GroupDeviceStatus_Type = 0
	GroupDeviceStatus_TypePeerDisconnected GroupDeviceStatus_Type = 1
	GroupDeviceStatus_TypePeerConnected    GroupDeviceStatus_Type = 2
	GroupDeviceStatus_TypePeerReconnecting GroupDeviceStatus_Type = 3
)

// Enum value maps for GroupDeviceStatus_Type.
var (
	GroupDeviceStatus_Type_name = map[int32]string{
		0: "TypeUnknown",
		1: "TypePeerDisconnected",
		2: "TypePeerConnected",
		3: "TypePeerReconnecting",
	}
	GroupDeviceStatus_Type_value = map[string]int32{
		"TypeUnknown":          0,
		"TypePeerDisconnected": 1,
		"TypePeerConnected":    2,
		"TypePeerReconnecting": 3,
	}
)

func (x GroupDeviceStatus_Type) Enum() *GroupDeviceStatus_Type {
	p := new(GroupDeviceStatus_Type)
	*p = x
	return p
}

func (x GroupDeviceStatus_Type) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (GroupDeviceStatus_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_protocoltypes_proto_enumTypes[6].Descriptor()
}

func (GroupDeviceStatus_Type) Type() protoreflect.EnumType {
	return &file_protocoltypes_proto_enumTypes[6]
}

func (x GroupDeviceStatus_Type) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use GroupDeviceStatus_Type.Descriptor instead.
func (GroupDeviceStatus_Type) EnumDescriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{62, 0}
}

type GroupDeviceStatus_Transport int32

const (
	GroupDeviceStatus_TptUnknown   GroupDeviceStatus_Transport = 0
	GroupDeviceStatus_TptLAN       GroupDeviceStatus_Transport = 1
	GroupDeviceStatus_TptWAN       GroupDeviceStatus_Transport = 2
	GroupDeviceStatus_TptProximity GroupDeviceStatus_Transport = 3
)

// Enum value maps for GroupDeviceStatus_Transport.
var (
	GroupDeviceStatus_Transport_name = map[int32]string{
		0: "TptUnknown",
		1: "TptLAN",
		2: "TptWAN",
		3: "TptProximity",
	}
	GroupDeviceStatus_Transport_value = map[string]int32{
		"TptUnknown":   0,
		"TptLAN":       1,
		"TptWAN":       2,
		"TptProximity": 3,
	}
)

func (x GroupDeviceStatus_Transport) Enum() *GroupDeviceStatus_Transport {
	p := new(GroupDeviceStatus_Transport)
	*p = x
	return p
}

func (x GroupDeviceStatus_Transport) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (GroupDeviceStatus_Transport) Descriptor() protoreflect.EnumDescriptor {
	return file_protocoltypes_proto_enumTypes[7].Descriptor()
}

func (GroupDeviceStatus_Transport) Type() protoreflect.EnumType {
	return &file_protocoltypes_proto_enumTypes[7]
}

func (x GroupDeviceStatus_Transport) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use GroupDeviceStatus_Transport.Descriptor instead.
func (GroupDeviceStatus_Transport) EnumDescriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{62, 1}
}

type PeerList_Feature int32

const (
	PeerList_UnknownFeature PeerList_Feature = 0
	PeerList_WeshFeature    PeerList_Feature = 1
	PeerList_BLEFeature     PeerList_Feature = 2
	PeerList_LocalFeature   PeerList_Feature = 3
	PeerList_TorFeature     PeerList_Feature = 4
	PeerList_QuicFeature    PeerList_Feature = 5
)

// Enum value maps for PeerList_Feature.
var (
	PeerList_Feature_name = map[int32]string{
		0: "UnknownFeature",
		1: "WeshFeature",
		2: "BLEFeature",
		3: "LocalFeature",
		4: "TorFeature",
		5: "QuicFeature",
	}
	PeerList_Feature_value = map[string]int32{
		"UnknownFeature": 0,
		"WeshFeature":    1,
		"BLEFeature":     2,
		"LocalFeature":   3,
		"TorFeature":     4,
		"QuicFeature":    5,
	}
)

func (x PeerList_Feature) Enum() *PeerList_Feature {
	p := new(PeerList_Feature)
	*p = x
	return p
}

func (x PeerList_Feature) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (PeerList_Feature) Descriptor() protoreflect.EnumDescriptor {
	return file_protocoltypes_proto_enumTypes[8].Descriptor()
}

func (PeerList_Feature) Type() protoreflect.EnumType {
	return &file_protocoltypes_proto_enumTypes[8]
}

func (x PeerList_Feature) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use PeerList_Feature.Descriptor instead.
func (PeerList_Feature) EnumDescriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{75, 0}
}

// Account describes all the secrets that identifies an Account
type Account struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group specifies which group is used to manage the account
	Group *Group `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
	// account_private_key, private part is used to signs handshake, signs device, create contacts group keys via ECDH -- public part is used to have a shareable identity
	AccountPrivateKey []byte `protobuf:"bytes,2,opt,name=account_private_key,json=accountPrivateKey,proto3" json:"account_private_key,omitempty"`
	// alias_private_key, private part is use to derive group members private keys, signs alias proofs, public part can be shared to contacts to prove identity
	AliasPrivateKey []byte `protobuf:"bytes,3,opt,name=alias_private_key,json=aliasPrivateKey,proto3" json:"alias_private_key,omitempty"`
	// public_rendezvous_seed, rendezvous seed used for direct communication
	PublicRendezvousSeed []byte `protobuf:"bytes,4,opt,name=public_rendezvous_seed,json=publicRendezvousSeed,proto3" json:"public_rendezvous_seed,omitempty"`
}

func (x *Account) Reset() {
	*x = Account{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Account) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Account) ProtoMessage() {}

func (x *Account) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 Account.ProtoReflect.Descriptor instead.
func (*Account) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{0}
}

func (x *Account) GetGroup() *Group {
	if x != nil {
		return x.Group
	}
	return nil
}

func (x *Account) GetAccountPrivateKey() []byte {
	if x != nil {
		return x.AccountPrivateKey
	}
	return nil
}

func (x *Account) GetAliasPrivateKey() []byte {
	if x != nil {
		return x.AliasPrivateKey
	}
	return nil
}

func (x *Account) GetPublicRendezvousSeed() []byte {
	if x != nil {
		return x.PublicRendezvousSeed
	}
	return nil
}

// Group define a group and is enough to invite someone to it
type Group struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// public_key is the identifier of the group, it signs the group secret and the initial member of a multi-member group
	PublicKey []byte `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
	// secret is the symmetric secret of the group, which is used to encrypt the metadata
	Secret []byte `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"`
	// secret_sig is the signature of the secret used to ensure the validity of the group
	SecretSig []byte `protobuf:"bytes,3,opt,name=secret_sig,json=secretSig,proto3" json:"secret_sig,omitempty"`
	// group_type specifies the type of the group, used to determine how device chain key is generated
	GroupType GroupType `protobuf:"varint,4,opt,name=group_type,json=groupType,proto3,enum=weshnet.protocol.v1.GroupType" json:"group_type,omitempty"`
	// sign_pub is the signature public key used to verify entries, not required when secret and secret_sig are provided
	SignPub []byte `protobuf:"bytes,5,opt,name=sign_pub,json=signPub,proto3" json:"sign_pub,omitempty"`
	// link_key is the secret key used to exchange group updates and links to attachments, useful for replication services
	LinkKey []byte `protobuf:"bytes,6,opt,name=link_key,json=linkKey,proto3" json:"link_key,omitempty"`
	// link_key_sig is the signature of the link_key using the group private key
	LinkKeySig []byte `protobuf:"bytes,7,opt,name=link_key_sig,json=linkKeySig,proto3" json:"link_key_sig,omitempty"`
}

func (x *Group) Reset() {
	*x = Group{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Group) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Group) ProtoMessage() {}

func (x *Group) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 Group.ProtoReflect.Descriptor instead.
func (*Group) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{1}
}

func (x *Group) GetPublicKey() []byte {
	if x != nil {
		return x.PublicKey
	}
	return nil
}

func (x *Group) GetSecret() []byte {
	if x != nil {
		return x.Secret
	}
	return nil
}

func (x *Group) GetSecretSig() []byte {
	if x != nil {
		return x.SecretSig
	}
	return nil
}

func (x *Group) GetGroupType() GroupType {
	if x != nil {
		return x.GroupType
	}
	return GroupType_GroupTypeUndefined
}

func (x *Group) GetSignPub() []byte {
	if x != nil {
		return x.SignPub
	}
	return nil
}

func (x *Group) GetLinkKey() []byte {
	if x != nil {
		return x.LinkKey
	}
	return nil
}

func (x *Group) GetLinkKeySig() []byte {
	if x != nil {
		return x.LinkKeySig
	}
	return nil
}

type GroupHeadsExport struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// public_key is the identifier of the group, it signs the group secret and the initial member of a multi-member group
	PublicKey []byte `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
	// sign_pub is the signature public key used to verify entries
	SignPub []byte `protobuf:"bytes,2,opt,name=sign_pub,json=signPub,proto3" json:"sign_pub,omitempty"`
	// metadata_heads_cids are the heads of the metadata store that should be restored from an export
	MetadataHeadsCids [][]byte `protobuf:"bytes,3,rep,name=metadata_heads_cids,json=metadataHeadsCids,proto3" json:"metadata_heads_cids,omitempty"`
	// messages_heads_cids are the heads of the metadata store that should be restored from an export
	MessagesHeadsCids [][]byte `protobuf:"bytes,4,rep,name=messages_heads_cids,json=messagesHeadsCids,proto3" json:"messages_heads_cids,omitempty"`
	// link_key
	LinkKey []byte `protobuf:"bytes,5,opt,name=link_key,json=linkKey,proto3" json:"link_key,omitempty"`
}

func (x *GroupHeadsExport) Reset() {
	*x = GroupHeadsExport{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupHeadsExport) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupHeadsExport) ProtoMessage() {}

func (x *GroupHeadsExport) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 GroupHeadsExport.ProtoReflect.Descriptor instead.
func (*GroupHeadsExport) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{2}
}

func (x *GroupHeadsExport) GetPublicKey() []byte {
	if x != nil {
		return x.PublicKey
	}
	return nil
}

func (x *GroupHeadsExport) GetSignPub() []byte {
	if x != nil {
		return x.SignPub
	}
	return nil
}

func (x *GroupHeadsExport) GetMetadataHeadsCids() [][]byte {
	if x != nil {
		return x.MetadataHeadsCids
	}
	return nil
}

func (x *GroupHeadsExport) GetMessagesHeadsCids() [][]byte {
	if x != nil {
		return x.MessagesHeadsCids
	}
	return nil
}

func (x *GroupHeadsExport) GetLinkKey() []byte {
	if x != nil {
		return x.LinkKey
	}
	return nil
}

// GroupMetadata is used in GroupEnvelope and only readable by invited group members
type GroupMetadata struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// event_type defines which event type is used
	EventType EventType `protobuf:"varint,1,opt,name=event_type,json=eventType,proto3,enum=weshnet.protocol.v1.EventType" json:"event_type,omitempty"`
	// the serialization depends on event_type, event is symmetrically encrypted
	Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
	// sig is the signature of the payload, it depends on the event_type for the used key
	Sig []byte `protobuf:"bytes,3,opt,name=sig,proto3" json:"sig,omitempty"`
	// protocol_metadata is protocol layer data
	ProtocolMetadata *ProtocolMetadata `protobuf:"bytes,4,opt,name=protocol_metadata,json=protocolMetadata,proto3" json:"protocol_metadata,omitempty"`
}

func (x *GroupMetadata) Reset() {
	*x = GroupMetadata{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupMetadata) ProtoMessage() {}

func (x *GroupMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 GroupMetadata.ProtoReflect.Descriptor instead.
func (*GroupMetadata) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{3}
}

func (x *GroupMetadata) GetEventType() EventType {
	if x != nil {
		return x.EventType
	}
	return EventType_EventTypeUndefined
}

func (x *GroupMetadata) GetPayload() []byte {
	if x != nil {
		return x.Payload
	}
	return nil
}

func (x *GroupMetadata) GetSig() []byte {
	if x != nil {
		return x.Sig
	}
	return nil
}

func (x *GroupMetadata) GetProtocolMetadata() *ProtocolMetadata {
	if x != nil {
		return x.ProtocolMetadata
	}
	return nil
}

// GroupEnvelope is a publicly exposed structure containing a group metadata event
type GroupEnvelope struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// nonce is used to encrypt the message
	Nonce []byte `protobuf:"bytes,1,opt,name=nonce,proto3" json:"nonce,omitempty"`
	// event is encrypted using a symmetric key shared among group members
	Event []byte `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"`
}

func (x *GroupEnvelope) Reset() {
	*x = GroupEnvelope{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupEnvelope) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupEnvelope) ProtoMessage() {}

func (x *GroupEnvelope) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 GroupEnvelope.ProtoReflect.Descriptor instead.
func (*GroupEnvelope) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{4}
}

func (x *GroupEnvelope) GetNonce() []byte {
	if x != nil {
		return x.Nonce
	}
	return nil
}

func (x *GroupEnvelope) GetEvent() []byte {
	if x != nil {
		return x.Event
	}
	return nil
}

// MessageHeaders is used in MessageEnvelope and only readable by invited group members
type MessageHeaders struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// counter is the current counter value for the specified device
	Counter uint64 `protobuf:"varint,1,opt,name=counter,proto3" json:"counter,omitempty"`
	// device_pk is the public key of the device sending the message
	DevicePk []byte `protobuf:"bytes,2,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// sig is the signature of the encrypted message using the device's private key
	Sig []byte `protobuf:"bytes,3,opt,name=sig,proto3" json:"sig,omitempty"`
	// metadata allow to pass custom informations
	Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *MessageHeaders) Reset() {
	*x = MessageHeaders{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MessageHeaders) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MessageHeaders) ProtoMessage() {}

func (x *MessageHeaders) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 MessageHeaders.ProtoReflect.Descriptor instead.
func (*MessageHeaders) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{5}
}

func (x *MessageHeaders) GetCounter() uint64 {
	if x != nil {
		return x.Counter
	}
	return 0
}

func (x *MessageHeaders) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *MessageHeaders) GetSig() []byte {
	if x != nil {
		return x.Sig
	}
	return nil
}

func (x *MessageHeaders) GetMetadata() map[string]string {
	if x != nil {
		return x.Metadata
	}
	return nil
}

type ProtocolMetadata struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ProtocolMetadata) Reset() {
	*x = ProtocolMetadata{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ProtocolMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ProtocolMetadata) ProtoMessage() {}

func (x *ProtocolMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ProtocolMetadata.ProtoReflect.Descriptor instead.
func (*ProtocolMetadata) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{6}
}

// EncryptedMessage is used in MessageEnvelope and only readable by groups members that joined before the message was sent
type EncryptedMessage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// plaintext is the app layer data
	Plaintext []byte `protobuf:"bytes,1,opt,name=plaintext,proto3" json:"plaintext,omitempty"`
	// protocol_metadata is protocol layer data
	ProtocolMetadata *ProtocolMetadata `protobuf:"bytes,2,opt,name=protocol_metadata,json=protocolMetadata,proto3" json:"protocol_metadata,omitempty"`
}

func (x *EncryptedMessage) Reset() {
	*x = EncryptedMessage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *EncryptedMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EncryptedMessage) ProtoMessage() {}

func (x *EncryptedMessage) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 EncryptedMessage.ProtoReflect.Descriptor instead.
func (*EncryptedMessage) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{7}
}

func (x *EncryptedMessage) GetPlaintext() []byte {
	if x != nil {
		return x.Plaintext
	}
	return nil
}

func (x *EncryptedMessage) GetProtocolMetadata() *ProtocolMetadata {
	if x != nil {
		return x.ProtocolMetadata
	}
	return nil
}

// MessageEnvelope is a publicly exposed structure containing a group secure message
type MessageEnvelope struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// message_headers is an encrypted serialization using a symmetric key of a MessageHeaders message
	MessageHeaders []byte `protobuf:"bytes,1,opt,name=message_headers,json=messageHeaders,proto3" json:"message_headers,omitempty"`
	// message is an encrypted message, only readable by group members who previously received the appropriate chain key
	Message []byte `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
	// nonce is a nonce for message headers
	Nonce []byte `protobuf:"bytes,3,opt,name=nonce,proto3" json:"nonce,omitempty"`
}

func (x *MessageEnvelope) Reset() {
	*x = MessageEnvelope{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MessageEnvelope) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MessageEnvelope) ProtoMessage() {}

func (x *MessageEnvelope) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 MessageEnvelope.ProtoReflect.Descriptor instead.
func (*MessageEnvelope) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{8}
}

func (x *MessageEnvelope) GetMessageHeaders() []byte {
	if x != nil {
		return x.MessageHeaders
	}
	return nil
}

func (x *MessageEnvelope) GetMessage() []byte {
	if x != nil {
		return x.Message
	}
	return nil
}

func (x *MessageEnvelope) GetNonce() []byte {
	if x != nil {
		return x.Nonce
	}
	return nil
}

// EventContext adds context (its id, its parents and its attachments) to an event
type EventContext struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// id is the CID of the underlying OrbitDB event
	Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// id are the the CIDs of the underlying parents of the OrbitDB event
	ParentIds [][]byte `protobuf:"bytes,2,rep,name=parent_ids,json=parentIds,proto3" json:"parent_ids,omitempty"`
	// group_pk receiving the event
	GroupPk []byte `protobuf:"bytes,3,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
}

func (x *EventContext) Reset() {
	*x = EventContext{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *EventContext) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EventContext) ProtoMessage() {}

func (x *EventContext) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 EventContext.ProtoReflect.Descriptor instead.
func (*EventContext) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{9}
}

func (x *EventContext) GetId() []byte {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *EventContext) GetParentIds() [][]byte {
	if x != nil {
		return x.ParentIds
	}
	return nil
}

func (x *EventContext) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

// GroupMetadataPayloadSent is an app defined message, accessible to future group members
type GroupMetadataPayloadSent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// message is the payload
	Message []byte `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *GroupMetadataPayloadSent) Reset() {
	*x = GroupMetadataPayloadSent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupMetadataPayloadSent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupMetadataPayloadSent) ProtoMessage() {}

func (x *GroupMetadataPayloadSent) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 GroupMetadataPayloadSent.ProtoReflect.Descriptor instead.
func (*GroupMetadataPayloadSent) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{10}
}

func (x *GroupMetadataPayloadSent) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *GroupMetadataPayloadSent) GetMessage() []byte {
	if x != nil {
		return x.Message
	}
	return nil
}

// ContactAliasKeyAdded is an event type where ones shares their alias public key
type ContactAliasKeyAdded struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// alias_pk is the alias key which will be used to verify a contact identity
	AliasPk []byte `protobuf:"bytes,2,opt,name=alias_pk,json=aliasPk,proto3" json:"alias_pk,omitempty"`
}

func (x *ContactAliasKeyAdded) Reset() {
	*x = ContactAliasKeyAdded{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactAliasKeyAdded) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactAliasKeyAdded) ProtoMessage() {}

func (x *ContactAliasKeyAdded) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ContactAliasKeyAdded.ProtoReflect.Descriptor instead.
func (*ContactAliasKeyAdded) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{11}
}

func (x *ContactAliasKeyAdded) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *ContactAliasKeyAdded) GetAliasPk() []byte {
	if x != nil {
		return x.AliasPk
	}
	return nil
}

// GroupMemberDeviceAdded is an event which indicates to a group a new device (and eventually a new member) is joining it
// When added on AccountGroup, this event should be followed by appropriate GroupMemberDeviceAdded and GroupDeviceChainKeyAdded events
type GroupMemberDeviceAdded struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// member_pk is the member sending the event
	MemberPk []byte `protobuf:"bytes,1,opt,name=member_pk,json=memberPk,proto3" json:"member_pk,omitempty"`
	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,2,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// member_sig is used to prove the ownership of the member pk
	MemberSig []byte `protobuf:"bytes,3,opt,name=member_sig,json=memberSig,proto3" json:"member_sig,omitempty"` // TODO: signature of what ??? ensure it can't be replayed
}

func (x *GroupMemberDeviceAdded) Reset() {
	*x = GroupMemberDeviceAdded{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupMemberDeviceAdded) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupMemberDeviceAdded) ProtoMessage() {}

func (x *GroupMemberDeviceAdded) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 GroupMemberDeviceAdded.ProtoReflect.Descriptor instead.
func (*GroupMemberDeviceAdded) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{12}
}

func (x *GroupMemberDeviceAdded) GetMemberPk() []byte {
	if x != nil {
		return x.MemberPk
	}
	return nil
}

func (x *GroupMemberDeviceAdded) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *GroupMemberDeviceAdded) GetMemberSig() []byte {
	if x != nil {
		return x.MemberSig
	}
	return nil
}

// DeviceChainKey is a chain key, which will be encrypted for a specific member of the group
type DeviceChainKey struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// chain_key is the current value of the chain key of the group device
	ChainKey []byte `protobuf:"bytes,1,opt,name=chain_key,json=chainKey,proto3" json:"chain_key,omitempty"`
	// counter is the current value of the counter of the group device
	Counter uint64 `protobuf:"varint,2,opt,name=counter,proto3" json:"counter,omitempty"`
}

func (x *DeviceChainKey) Reset() {
	*x = DeviceChainKey{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeviceChainKey) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeviceChainKey) ProtoMessage() {}

func (x *DeviceChainKey) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 DeviceChainKey.ProtoReflect.Descriptor instead.
func (*DeviceChainKey) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{13}
}

func (x *DeviceChainKey) GetChainKey() []byte {
	if x != nil {
		return x.ChainKey
	}
	return nil
}

func (x *DeviceChainKey) GetCounter() uint64 {
	if x != nil {
		return x.Counter
	}
	return 0
}

// GroupDeviceChainKeyAdded is an event which indicates to a group member a device chain key
type GroupDeviceChainKeyAdded struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// dest_member_pk is the member who should receive the secret
	DestMemberPk []byte `protobuf:"bytes,2,opt,name=dest_member_pk,json=destMemberPk,proto3" json:"dest_member_pk,omitempty"`
	// payload is the serialization of Payload encrypted for the specified member
	Payload []byte `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"`
}

func (x *GroupDeviceChainKeyAdded) Reset() {
	*x = GroupDeviceChainKeyAdded{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupDeviceChainKeyAdded) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupDeviceChainKeyAdded) ProtoMessage() {}

func (x *GroupDeviceChainKeyAdded) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 GroupDeviceChainKeyAdded.ProtoReflect.Descriptor instead.
func (*GroupDeviceChainKeyAdded) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{14}
}

func (x *GroupDeviceChainKeyAdded) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *GroupDeviceChainKeyAdded) GetDestMemberPk() []byte {
	if x != nil {
		return x.DestMemberPk
	}
	return nil
}

func (x *GroupDeviceChainKeyAdded) GetPayload() []byte {
	if x != nil {
		return x.Payload
	}
	return nil
}

// MultiMemberGroupAliasResolverAdded indicates that a group member want to disclose their presence in the group to their contacts
type MultiMemberGroupAliasResolverAdded struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// alias_resolver allows contact of an account to resolve the real identity behind an alias (Multi-Member Group Member)
	// Generated by both contacts and account independently using: hmac(aliasPK, GroupID)
	AliasResolver []byte `protobuf:"bytes,2,opt,name=alias_resolver,json=aliasResolver,proto3" json:"alias_resolver,omitempty"`
	// alias_proof ensures that the associated alias_resolver has been issued by the right account
	// Generated using aliasSKSig(GroupID)
	AliasProof []byte `protobuf:"bytes,3,opt,name=alias_proof,json=aliasProof,proto3" json:"alias_proof,omitempty"`
}

func (x *MultiMemberGroupAliasResolverAdded) Reset() {
	*x = MultiMemberGroupAliasResolverAdded{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupAliasResolverAdded) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupAliasResolverAdded) ProtoMessage() {}

func (x *MultiMemberGroupAliasResolverAdded) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 MultiMemberGroupAliasResolverAdded.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupAliasResolverAdded) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{15}
}

func (x *MultiMemberGroupAliasResolverAdded) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *MultiMemberGroupAliasResolverAdded) GetAliasResolver() []byte {
	if x != nil {
		return x.AliasResolver
	}
	return nil
}

func (x *MultiMemberGroupAliasResolverAdded) GetAliasProof() []byte {
	if x != nil {
		return x.AliasProof
	}
	return nil
}

// MultiMemberGroupAdminRoleGranted indicates that a group admin allows another group member to act as an admin
type MultiMemberGroupAdminRoleGranted struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message, must be the device of an admin of the group
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// grantee_member_pk is the member public key of the member granted of the admin role
	GranteeMemberPk []byte `protobuf:"bytes,2,opt,name=grantee_member_pk,json=granteeMemberPk,proto3" json:"grantee_member_pk,omitempty"`
}

func (x *MultiMemberGroupAdminRoleGranted) Reset() {
	*x = MultiMemberGroupAdminRoleGranted{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupAdminRoleGranted) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupAdminRoleGranted) ProtoMessage() {}

func (x *MultiMemberGroupAdminRoleGranted) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 MultiMemberGroupAdminRoleGranted.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupAdminRoleGranted) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{16}
}

func (x *MultiMemberGroupAdminRoleGranted) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *MultiMemberGroupAdminRoleGranted) GetGranteeMemberPk() []byte {
	if x != nil {
		return x.GranteeMemberPk
	}
	return nil
}

// MultiMemberGroupInitialMemberAnnounced indicates that a member is the group creator, this event is signed using the group ID private key
type MultiMemberGroupInitialMemberAnnounced struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// member_pk is the public key of the member who is the group creator
	MemberPk []byte `protobuf:"bytes,1,opt,name=member_pk,json=memberPk,proto3" json:"member_pk,omitempty"`
}

func (x *MultiMemberGroupInitialMemberAnnounced) Reset() {
	*x = MultiMemberGroupInitialMemberAnnounced{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupInitialMemberAnnounced) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupInitialMemberAnnounced) ProtoMessage() {}

func (x *MultiMemberGroupInitialMemberAnnounced) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 MultiMemberGroupInitialMemberAnnounced.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupInitialMemberAnnounced) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{17}
}

func (x *MultiMemberGroupInitialMemberAnnounced) GetMemberPk() []byte {
	if x != nil {
		return x.MemberPk
	}
	return nil
}

// GroupAddAdditionalRendezvousSeed indicates that an additional rendezvous point should be used for data synchronization
type GroupAddAdditionalRendezvousSeed struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message, must be the device of an admin of the group
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// seed is the additional rendezvous point seed which should be used
	Seed []byte `protobuf:"bytes,2,opt,name=seed,proto3" json:"seed,omitempty"`
}

func (x *GroupAddAdditionalRendezvousSeed) Reset() {
	*x = GroupAddAdditionalRendezvousSeed{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupAddAdditionalRendezvousSeed) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupAddAdditionalRendezvousSeed) ProtoMessage() {}

func (x *GroupAddAdditionalRendezvousSeed) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 GroupAddAdditionalRendezvousSeed.ProtoReflect.Descriptor instead.
func (*GroupAddAdditionalRendezvousSeed) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{18}
}

func (x *GroupAddAdditionalRendezvousSeed) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *GroupAddAdditionalRendezvousSeed) GetSeed() []byte {
	if x != nil {
		return x.Seed
	}
	return nil
}

// GroupRemoveAdditionalRendezvousSeed indicates that a previously added rendezvous point should be removed
type GroupRemoveAdditionalRendezvousSeed struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message, must be the device of an admin of the group
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// seed is the additional rendezvous point seed which should be removed
	Seed []byte `protobuf:"bytes,2,opt,name=seed,proto3" json:"seed,omitempty"`
}

func (x *GroupRemoveAdditionalRendezvousSeed) Reset() {
	*x = GroupRemoveAdditionalRendezvousSeed{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupRemoveAdditionalRendezvousSeed) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupRemoveAdditionalRendezvousSeed) ProtoMessage() {}

func (x *GroupRemoveAdditionalRendezvousSeed) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 GroupRemoveAdditionalRendezvousSeed.ProtoReflect.Descriptor instead.
func (*GroupRemoveAdditionalRendezvousSeed) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{19}
}

func (x *GroupRemoveAdditionalRendezvousSeed) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *GroupRemoveAdditionalRendezvousSeed) GetSeed() []byte {
	if x != nil {
		return x.Seed
	}
	return nil
}

// AccountGroupJoined indicates that the account is now part of a new group
type AccountGroupJoined struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// group describe the joined group
	Group *Group `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"`
}

func (x *AccountGroupJoined) Reset() {
	*x = AccountGroupJoined{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AccountGroupJoined) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccountGroupJoined) ProtoMessage() {}

func (x *AccountGroupJoined) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 AccountGroupJoined.ProtoReflect.Descriptor instead.
func (*AccountGroupJoined) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{20}
}

func (x *AccountGroupJoined) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *AccountGroupJoined) GetGroup() *Group {
	if x != nil {
		return x.Group
	}
	return nil
}

// AccountGroupLeft indicates that the account has left a group
type AccountGroupLeft struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// group_pk references the group left
	GroupPk []byte `protobuf:"bytes,2,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
}

func (x *AccountGroupLeft) Reset() {
	*x = AccountGroupLeft{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AccountGroupLeft) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccountGroupLeft) ProtoMessage() {}

func (x *AccountGroupLeft) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 AccountGroupLeft.ProtoReflect.Descriptor instead.
func (*AccountGroupLeft) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{21}
}

func (x *AccountGroupLeft) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *AccountGroupLeft) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

// AccountContactRequestDisabled indicates that the account should not be advertised on a public rendezvous point
type AccountContactRequestDisabled struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
}

func (x *AccountContactRequestDisabled) Reset() {
	*x = AccountContactRequestDisabled{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AccountContactRequestDisabled) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccountContactRequestDisabled) ProtoMessage() {}

func (x *AccountContactRequestDisabled) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 AccountContactRequestDisabled.ProtoReflect.Descriptor instead.
func (*AccountContactRequestDisabled) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{22}
}

func (x *AccountContactRequestDisabled) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

// AccountContactRequestEnabled indicates that the account should be advertised on a public rendezvous point
type AccountContactRequestEnabled struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
}

func (x *AccountContactRequestEnabled) Reset() {
	*x = AccountContactRequestEnabled{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AccountContactRequestEnabled) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccountContactRequestEnabled) ProtoMessage() {}

func (x *AccountContactRequestEnabled) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 AccountContactRequestEnabled.ProtoReflect.Descriptor instead.
func (*AccountContactRequestEnabled) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{23}
}

func (x *AccountContactRequestEnabled) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

// AccountContactRequestReferenceReset indicates that the account should be advertised on different public rendezvous points
type AccountContactRequestReferenceReset struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// public_rendezvous_seed is the new rendezvous point seed
	PublicRendezvousSeed []byte `protobuf:"bytes,2,opt,name=public_rendezvous_seed,json=publicRendezvousSeed,proto3" json:"public_rendezvous_seed,omitempty"`
}

func (x *AccountContactRequestReferenceReset) Reset() {
	*x = AccountContactRequestReferenceReset{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AccountContactRequestReferenceReset) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccountContactRequestReferenceReset) ProtoMessage() {}

func (x *AccountContactRequestReferenceReset) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 AccountContactRequestReferenceReset.ProtoReflect.Descriptor instead.
func (*AccountContactRequestReferenceReset) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{24}
}

func (x *AccountContactRequestReferenceReset) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *AccountContactRequestReferenceReset) GetPublicRendezvousSeed() []byte {
	if x != nil {
		return x.PublicRendezvousSeed
	}
	return nil
}

// This event should be followed by an AccountGroupJoined event
// This event should be followed by a GroupMemberDeviceAdded event within the AccountGroup
// This event should be followed by a GroupDeviceChainKeyAdded event within the AccountGroup
// AccountContactRequestOutgoingEnqueued indicates that the account will attempt to send a contact request when a matching peer is discovered
type AccountContactRequestOutgoingEnqueued struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// group_pk is the 1to1 group with the requested user
	GroupPk []byte `protobuf:"bytes,2,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
	// contact is a message describing how to connect to the other account
	Contact *ShareableContact `protobuf:"bytes,3,opt,name=contact,proto3" json:"contact,omitempty"`
	// own_metadata is the identifying metadata that will be shared to the other account
	OwnMetadata []byte `protobuf:"bytes,4,opt,name=own_metadata,json=ownMetadata,proto3" json:"own_metadata,omitempty"`
}

func (x *AccountContactRequestOutgoingEnqueued) Reset() {
	*x = AccountContactRequestOutgoingEnqueued{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AccountContactRequestOutgoingEnqueued) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccountContactRequestOutgoingEnqueued) ProtoMessage() {}

func (x *AccountContactRequestOutgoingEnqueued) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 AccountContactRequestOutgoingEnqueued.ProtoReflect.Descriptor instead.
func (*AccountContactRequestOutgoingEnqueued) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{25}
}

func (x *AccountContactRequestOutgoingEnqueued) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *AccountContactRequestOutgoingEnqueued) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

func (x *AccountContactRequestOutgoingEnqueued) GetContact() *ShareableContact {
	if x != nil {
		return x.Contact
	}
	return nil
}

func (x *AccountContactRequestOutgoingEnqueued) GetOwnMetadata() []byte {
	if x != nil {
		return x.OwnMetadata
	}
	return nil
}

// AccountContactRequestOutgoingSent indicates that the account has sent a contact request
type AccountContactRequestOutgoingSent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the account event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// contact_pk is the contacted account
	ContactPk []byte `protobuf:"bytes,2,opt,name=contact_pk,json=contactPk,proto3" json:"contact_pk,omitempty"`
}

func (x *AccountContactRequestOutgoingSent) Reset() {
	*x = AccountContactRequestOutgoingSent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AccountContactRequestOutgoingSent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccountContactRequestOutgoingSent) ProtoMessage() {}

func (x *AccountContactRequestOutgoingSent) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 AccountContactRequestOutgoingSent.ProtoReflect.Descriptor instead.
func (*AccountContactRequestOutgoingSent) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{26}
}

func (x *AccountContactRequestOutgoingSent) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *AccountContactRequestOutgoingSent) GetContactPk() []byte {
	if x != nil {
		return x.ContactPk
	}
	return nil
}

// AccountContactRequestIncomingReceived indicates that the account has received a new contact request
type AccountContactRequestIncomingReceived struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the account event (which received the contact request), signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// contact_pk is the account sending the request
	ContactPk []byte `protobuf:"bytes,2,opt,name=contact_pk,json=contactPk,proto3" json:"contact_pk,omitempty"`
	// TODO: is this necessary?
	// contact_rendezvous_seed is the rendezvous seed of the contact sending the request
	ContactRendezvousSeed []byte `protobuf:"bytes,3,opt,name=contact_rendezvous_seed,json=contactRendezvousSeed,proto3" json:"contact_rendezvous_seed,omitempty"`
	// TODO: is this necessary?
	// contact_metadata is the metadata specific to the app to identify the contact for the request
	ContactMetadata []byte `protobuf:"bytes,4,opt,name=contact_metadata,json=contactMetadata,proto3" json:"contact_metadata,omitempty"`
}

func (x *AccountContactRequestIncomingReceived) Reset() {
	*x = AccountContactRequestIncomingReceived{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AccountContactRequestIncomingReceived) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccountContactRequestIncomingReceived) ProtoMessage() {}

func (x *AccountContactRequestIncomingReceived) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 AccountContactRequestIncomingReceived.ProtoReflect.Descriptor instead.
func (*AccountContactRequestIncomingReceived) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{27}
}

func (x *AccountContactRequestIncomingReceived) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *AccountContactRequestIncomingReceived) GetContactPk() []byte {
	if x != nil {
		return x.ContactPk
	}
	return nil
}

func (x *AccountContactRequestIncomingReceived) GetContactRendezvousSeed() []byte {
	if x != nil {
		return x.ContactRendezvousSeed
	}
	return nil
}

func (x *AccountContactRequestIncomingReceived) GetContactMetadata() []byte {
	if x != nil {
		return x.ContactMetadata
	}
	return nil
}

// AccountContactRequestIncomingDiscarded indicates that a contact request has been refused
type AccountContactRequestIncomingDiscarded struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// contact_pk is the contact whom request is refused
	ContactPk []byte `protobuf:"bytes,2,opt,name=contact_pk,json=contactPk,proto3" json:"contact_pk,omitempty"`
}

func (x *AccountContactRequestIncomingDiscarded) Reset() {
	*x = AccountContactRequestIncomingDiscarded{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AccountContactRequestIncomingDiscarded) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccountContactRequestIncomingDiscarded) ProtoMessage() {}

func (x *AccountContactRequestIncomingDiscarded) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 AccountContactRequestIncomingDiscarded.ProtoReflect.Descriptor instead.
func (*AccountContactRequestIncomingDiscarded) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{28}
}

func (x *AccountContactRequestIncomingDiscarded) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *AccountContactRequestIncomingDiscarded) GetContactPk() []byte {
	if x != nil {
		return x.ContactPk
	}
	return nil
}

// This event should be followed by an AccountGroupJoined event
// This event should be followed by GroupMemberDeviceAdded and GroupDeviceChainKeyAdded events within the AccountGroup
// AccountContactRequestIncomingAccepted indicates that a contact request has been accepted
type AccountContactRequestIncomingAccepted struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// contact_pk is the contact whom request is accepted
	ContactPk []byte `protobuf:"bytes,2,opt,name=contact_pk,json=contactPk,proto3" json:"contact_pk,omitempty"`
	// group_pk is the 1to1 group with the requester user
	GroupPk []byte `protobuf:"bytes,3,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
}

func (x *AccountContactRequestIncomingAccepted) Reset() {
	*x = AccountContactRequestIncomingAccepted{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AccountContactRequestIncomingAccepted) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccountContactRequestIncomingAccepted) ProtoMessage() {}

func (x *AccountContactRequestIncomingAccepted) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 AccountContactRequestIncomingAccepted.ProtoReflect.Descriptor instead.
func (*AccountContactRequestIncomingAccepted) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{29}
}

func (x *AccountContactRequestIncomingAccepted) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *AccountContactRequestIncomingAccepted) GetContactPk() []byte {
	if x != nil {
		return x.ContactPk
	}
	return nil
}

func (x *AccountContactRequestIncomingAccepted) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

// AccountContactBlocked indicates that a contact is blocked
type AccountContactBlocked struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// contact_pk is the contact blocked
	ContactPk []byte `protobuf:"bytes,2,opt,name=contact_pk,json=contactPk,proto3" json:"contact_pk,omitempty"`
}

func (x *AccountContactBlocked) Reset() {
	*x = AccountContactBlocked{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AccountContactBlocked) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccountContactBlocked) ProtoMessage() {}

func (x *AccountContactBlocked) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 AccountContactBlocked.ProtoReflect.Descriptor instead.
func (*AccountContactBlocked) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{30}
}

func (x *AccountContactBlocked) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *AccountContactBlocked) GetContactPk() []byte {
	if x != nil {
		return x.ContactPk
	}
	return nil
}

// AccountContactUnblocked indicates that a contact is unblocked
type AccountContactUnblocked struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// contact_pk is the contact unblocked
	ContactPk []byte `protobuf:"bytes,2,opt,name=contact_pk,json=contactPk,proto3" json:"contact_pk,omitempty"`
}

func (x *AccountContactUnblocked) Reset() {
	*x = AccountContactUnblocked{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AccountContactUnblocked) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccountContactUnblocked) ProtoMessage() {}

func (x *AccountContactUnblocked) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 AccountContactUnblocked.ProtoReflect.Descriptor instead.
func (*AccountContactUnblocked) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{31}
}

func (x *AccountContactUnblocked) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *AccountContactUnblocked) GetContactPk() []byte {
	if x != nil {
		return x.ContactPk
	}
	return nil
}

type GroupReplicating struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the device sending the event, signs the message
	DevicePk []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// authentication_url indicates which server has been used for authentication
	AuthenticationUrl string `protobuf:"bytes,2,opt,name=authentication_url,json=authenticationUrl,proto3" json:"authentication_url,omitempty"`
	// replication_server indicates which server will be used for replication
	ReplicationServer string `protobuf:"bytes,3,opt,name=replication_server,json=replicationServer,proto3" json:"replication_server,omitempty"`
}

func (x *GroupReplicating) Reset() {
	*x = GroupReplicating{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupReplicating) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupReplicating) ProtoMessage() {}

func (x *GroupReplicating) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 GroupReplicating.ProtoReflect.Descriptor instead.
func (*GroupReplicating) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{32}
}

func (x *GroupReplicating) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *GroupReplicating) GetAuthenticationUrl() string {
	if x != nil {
		return x.AuthenticationUrl
	}
	return ""
}

func (x *GroupReplicating) GetReplicationServer() string {
	if x != nil {
		return x.ReplicationServer
	}
	return ""
}

type ServiceExportData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ServiceExportData) Reset() {
	*x = ServiceExportData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceExportData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceExportData) ProtoMessage() {}

func (x *ServiceExportData) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ServiceExportData.ProtoReflect.Descriptor instead.
func (*ServiceExportData) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{33}
}

type ServiceGetConfiguration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ServiceGetConfiguration) Reset() {
	*x = ServiceGetConfiguration{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceGetConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceGetConfiguration) ProtoMessage() {}

func (x *ServiceGetConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ServiceGetConfiguration.ProtoReflect.Descriptor instead.
func (*ServiceGetConfiguration) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{34}
}

type ContactRequestReference struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestReference) Reset() {
	*x = ContactRequestReference{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestReference) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestReference) ProtoMessage() {}

func (x *ContactRequestReference) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ContactRequestReference.ProtoReflect.Descriptor instead.
func (*ContactRequestReference) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{35}
}

type ContactRequestDisable struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestDisable) Reset() {
	*x = ContactRequestDisable{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestDisable) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestDisable) ProtoMessage() {}

func (x *ContactRequestDisable) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ContactRequestDisable.ProtoReflect.Descriptor instead.
func (*ContactRequestDisable) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{36}
}

type ContactRequestEnable struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestEnable) Reset() {
	*x = ContactRequestEnable{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestEnable) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestEnable) ProtoMessage() {}

func (x *ContactRequestEnable) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ContactRequestEnable.ProtoReflect.Descriptor instead.
func (*ContactRequestEnable) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{37}
}

type ContactRequestResetReference struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestResetReference) Reset() {
	*x = ContactRequestResetReference{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestResetReference) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestResetReference) ProtoMessage() {}

func (x *ContactRequestResetReference) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ContactRequestResetReference.ProtoReflect.Descriptor instead.
func (*ContactRequestResetReference) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{38}
}

type ContactRequestSend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestSend) Reset() {
	*x = ContactRequestSend{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestSend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestSend) ProtoMessage() {}

func (x *ContactRequestSend) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ContactRequestSend.ProtoReflect.Descriptor instead.
func (*ContactRequestSend) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{39}
}

type ContactRequestAccept struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestAccept) Reset() {
	*x = ContactRequestAccept{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestAccept) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestAccept) ProtoMessage() {}

func (x *ContactRequestAccept) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ContactRequestAccept.ProtoReflect.Descriptor instead.
func (*ContactRequestAccept) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{40}
}

type ContactRequestDiscard struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestDiscard) Reset() {
	*x = ContactRequestDiscard{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestDiscard) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestDiscard) ProtoMessage() {}

func (x *ContactRequestDiscard) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ContactRequestDiscard.ProtoReflect.Descriptor instead.
func (*ContactRequestDiscard) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{41}
}

type ShareContact struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ShareContact) Reset() {
	*x = ShareContact{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ShareContact) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ShareContact) ProtoMessage() {}

func (x *ShareContact) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ShareContact.ProtoReflect.Descriptor instead.
func (*ShareContact) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{42}
}

type DecodeContact struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DecodeContact) Reset() {
	*x = DecodeContact{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DecodeContact) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DecodeContact) ProtoMessage() {}

func (x *DecodeContact) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 DecodeContact.ProtoReflect.Descriptor instead.
func (*DecodeContact) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{43}
}

type ContactBlock struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactBlock) Reset() {
	*x = ContactBlock{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactBlock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactBlock) ProtoMessage() {}

func (x *ContactBlock) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ContactBlock.ProtoReflect.Descriptor instead.
func (*ContactBlock) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{44}
}

type ContactUnblock struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactUnblock) Reset() {
	*x = ContactUnblock{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactUnblock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactUnblock) ProtoMessage() {}

func (x *ContactUnblock) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ContactUnblock.ProtoReflect.Descriptor instead.
func (*ContactUnblock) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{45}
}

type ContactAliasKeySend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactAliasKeySend) Reset() {
	*x = ContactAliasKeySend{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactAliasKeySend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactAliasKeySend) ProtoMessage() {}

func (x *ContactAliasKeySend) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_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 ContactAliasKeySend.ProtoReflect.Descriptor instead.
func (*ContactAliasKeySend) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{46}
}

type MultiMemberGroupCreate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *MultiMemberGroupCreate) Reset() {
	*x = MultiMemberGroupCreate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupCreate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupCreate) ProtoMessage() {}

func (x *MultiMemberGroupCreate) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[47]
	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 MultiMemberGroupCreate.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupCreate) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{47}
}

type MultiMemberGroupJoin struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *MultiMemberGroupJoin) Reset() {
	*x = MultiMemberGroupJoin{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupJoin) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupJoin) ProtoMessage() {}

func (x *MultiMemberGroupJoin) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[48]
	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 MultiMemberGroupJoin.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupJoin) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{48}
}

type MultiMemberGroupLeave struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *MultiMemberGroupLeave) Reset() {
	*x = MultiMemberGroupLeave{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupLeave) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupLeave) ProtoMessage() {}

func (x *MultiMemberGroupLeave) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[49]
	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 MultiMemberGroupLeave.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupLeave) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{49}
}

type MultiMemberGroupAliasResolverDisclose struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *MultiMemberGroupAliasResolverDisclose) Reset() {
	*x = MultiMemberGroupAliasResolverDisclose{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[50]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupAliasResolverDisclose) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupAliasResolverDisclose) ProtoMessage() {}

func (x *MultiMemberGroupAliasResolverDisclose) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[50]
	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 MultiMemberGroupAliasResolverDisclose.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupAliasResolverDisclose) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{50}
}

type MultiMemberGroupAdminRoleGrant struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *MultiMemberGroupAdminRoleGrant) Reset() {
	*x = MultiMemberGroupAdminRoleGrant{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupAdminRoleGrant) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupAdminRoleGrant) ProtoMessage() {}

func (x *MultiMemberGroupAdminRoleGrant) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[51]
	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 MultiMemberGroupAdminRoleGrant.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupAdminRoleGrant) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{51}
}

type MultiMemberGroupInvitationCreate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *MultiMemberGroupInvitationCreate) Reset() {
	*x = MultiMemberGroupInvitationCreate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[52]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupInvitationCreate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupInvitationCreate) ProtoMessage() {}

func (x *MultiMemberGroupInvitationCreate) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[52]
	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 MultiMemberGroupInvitationCreate.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupInvitationCreate) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{52}
}

type AppMetadataSend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *AppMetadataSend) Reset() {
	*x = AppMetadataSend{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[53]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AppMetadataSend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AppMetadataSend) ProtoMessage() {}

func (x *AppMetadataSend) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[53]
	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 AppMetadataSend.ProtoReflect.Descriptor instead.
func (*AppMetadataSend) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{53}
}

type AppMessageSend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *AppMessageSend) Reset() {
	*x = AppMessageSend{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[54]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AppMessageSend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AppMessageSend) ProtoMessage() {}

func (x *AppMessageSend) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[54]
	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 AppMessageSend.ProtoReflect.Descriptor instead.
func (*AppMessageSend) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{54}
}

type GroupMetadataEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// event_context contains context information about the event
	EventContext *EventContext `protobuf:"bytes,1,opt,name=event_context,json=eventContext,proto3" json:"event_context,omitempty"`
	// metadata contains the newly available metadata
	Metadata *GroupMetadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// event_clear clear bytes for the event
	Event []byte `protobuf:"bytes,3,opt,name=event,proto3" json:"event,omitempty"`
}

func (x *GroupMetadataEvent) Reset() {
	*x = GroupMetadataEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[55]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupMetadataEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupMetadataEvent) ProtoMessage() {}

func (x *GroupMetadataEvent) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[55]
	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 GroupMetadataEvent.ProtoReflect.Descriptor instead.
func (*GroupMetadataEvent) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{55}
}

func (x *GroupMetadataEvent) GetEventContext() *EventContext {
	if x != nil {
		return x.EventContext
	}
	return nil
}

func (x *GroupMetadataEvent) GetMetadata() *GroupMetadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *GroupMetadataEvent) GetEvent() []byte {
	if x != nil {
		return x.Event
	}
	return nil
}

type GroupMessageEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// event_context contains context information about the event
	EventContext *EventContext `protobuf:"bytes,1,opt,name=event_context,json=eventContext,proto3" json:"event_context,omitempty"`
	// headers contains headers of the secure message
	Headers *MessageHeaders `protobuf:"bytes,2,opt,name=headers,proto3" json:"headers,omitempty"`
	// message contains the secure message payload
	Message []byte `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *GroupMessageEvent) Reset() {
	*x = GroupMessageEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[56]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupMessageEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupMessageEvent) ProtoMessage() {}

func (x *GroupMessageEvent) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[56]
	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 GroupMessageEvent.ProtoReflect.Descriptor instead.
func (*GroupMessageEvent) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{56}
}

func (x *GroupMessageEvent) GetEventContext() *EventContext {
	if x != nil {
		return x.EventContext
	}
	return nil
}

func (x *GroupMessageEvent) GetHeaders() *MessageHeaders {
	if x != nil {
		return x.Headers
	}
	return nil
}

func (x *GroupMessageEvent) GetMessage() []byte {
	if x != nil {
		return x.Message
	}
	return nil
}

type GroupMetadataList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *GroupMetadataList) Reset() {
	*x = GroupMetadataList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[57]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupMetadataList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupMetadataList) ProtoMessage() {}

func (x *GroupMetadataList) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[57]
	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 GroupMetadataList.ProtoReflect.Descriptor instead.
func (*GroupMetadataList) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{57}
}

type GroupMessageList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *GroupMessageList) Reset() {
	*x = GroupMessageList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[58]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupMessageList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupMessageList) ProtoMessage() {}

func (x *GroupMessageList) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[58]
	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 GroupMessageList.ProtoReflect.Descriptor instead.
func (*GroupMessageList) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{58}
}

type GroupInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *GroupInfo) Reset() {
	*x = GroupInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[59]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupInfo) ProtoMessage() {}

func (x *GroupInfo) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[59]
	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 GroupInfo.ProtoReflect.Descriptor instead.
func (*GroupInfo) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{59}
}

type ActivateGroup struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ActivateGroup) Reset() {
	*x = ActivateGroup{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[60]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ActivateGroup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ActivateGroup) ProtoMessage() {}

func (x *ActivateGroup) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[60]
	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 ActivateGroup.ProtoReflect.Descriptor instead.
func (*ActivateGroup) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{60}
}

type DeactivateGroup struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeactivateGroup) Reset() {
	*x = DeactivateGroup{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[61]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeactivateGroup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeactivateGroup) ProtoMessage() {}

func (x *DeactivateGroup) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[61]
	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 DeactivateGroup.ProtoReflect.Descriptor instead.
func (*DeactivateGroup) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{61}
}

type GroupDeviceStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *GroupDeviceStatus) Reset() {
	*x = GroupDeviceStatus{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[62]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupDeviceStatus) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupDeviceStatus) ProtoMessage() {}

func (x *GroupDeviceStatus) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[62]
	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 GroupDeviceStatus.ProtoReflect.Descriptor instead.
func (*GroupDeviceStatus) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{62}
}

type DebugListGroups struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DebugListGroups) Reset() {
	*x = DebugListGroups{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[63]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DebugListGroups) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DebugListGroups) ProtoMessage() {}

func (x *DebugListGroups) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[63]
	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 DebugListGroups.ProtoReflect.Descriptor instead.
func (*DebugListGroups) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{63}
}

type DebugInspectGroupStore struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DebugInspectGroupStore) Reset() {
	*x = DebugInspectGroupStore{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[64]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DebugInspectGroupStore) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DebugInspectGroupStore) ProtoMessage() {}

func (x *DebugInspectGroupStore) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[64]
	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 DebugInspectGroupStore.ProtoReflect.Descriptor instead.
func (*DebugInspectGroupStore) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{64}
}

type DebugGroup struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DebugGroup) Reset() {
	*x = DebugGroup{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[65]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DebugGroup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DebugGroup) ProtoMessage() {}

func (x *DebugGroup) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[65]
	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 DebugGroup.ProtoReflect.Descriptor instead.
func (*DebugGroup) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{65}
}

type ShareableContact struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// pk is the account to send a contact request to
	Pk []byte `protobuf:"bytes,1,opt,name=pk,proto3" json:"pk,omitempty"`
	// public_rendezvous_seed is the rendezvous seed used by the account to send a contact request to
	PublicRendezvousSeed []byte `protobuf:"bytes,2,opt,name=public_rendezvous_seed,json=publicRendezvousSeed,proto3" json:"public_rendezvous_seed,omitempty"`
	// metadata is the metadata specific to the app to identify the contact for the request
	Metadata []byte `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
}

func (x *ShareableContact) Reset() {
	*x = ShareableContact{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[66]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ShareableContact) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ShareableContact) ProtoMessage() {}

func (x *ShareableContact) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[66]
	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 ShareableContact.ProtoReflect.Descriptor instead.
func (*ShareableContact) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{66}
}

func (x *ShareableContact) GetPk() []byte {
	if x != nil {
		return x.Pk
	}
	return nil
}

func (x *ShareableContact) GetPublicRendezvousSeed() []byte {
	if x != nil {
		return x.PublicRendezvousSeed
	}
	return nil
}

func (x *ShareableContact) GetMetadata() []byte {
	if x != nil {
		return x.Metadata
	}
	return nil
}

type ServiceTokenSupportedService struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ServiceType     string `protobuf:"bytes,1,opt,name=service_type,json=serviceType,proto3" json:"service_type,omitempty"`
	ServiceEndpoint string `protobuf:"bytes,2,opt,name=service_endpoint,json=serviceEndpoint,proto3" json:"service_endpoint,omitempty"`
}

func (x *ServiceTokenSupportedService) Reset() {
	*x = ServiceTokenSupportedService{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[67]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceTokenSupportedService) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceTokenSupportedService) ProtoMessage() {}

func (x *ServiceTokenSupportedService) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[67]
	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 ServiceTokenSupportedService.ProtoReflect.Descriptor instead.
func (*ServiceTokenSupportedService) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{67}
}

func (x *ServiceTokenSupportedService) GetServiceType() string {
	if x != nil {
		return x.ServiceType
	}
	return ""
}

func (x *ServiceTokenSupportedService) GetServiceEndpoint() string {
	if x != nil {
		return x.ServiceEndpoint
	}
	return ""
}

type ServiceToken struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Token             string                          `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	AuthenticationUrl string                          `protobuf:"bytes,2,opt,name=authentication_url,json=authenticationUrl,proto3" json:"authentication_url,omitempty"`
	SupportedServices []*ServiceTokenSupportedService `protobuf:"bytes,3,rep,name=supported_services,json=supportedServices,proto3" json:"supported_services,omitempty"`
	Expiration        int64                           `protobuf:"varint,4,opt,name=expiration,proto3" json:"expiration,omitempty"`
}

func (x *ServiceToken) Reset() {
	*x = ServiceToken{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[68]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceToken) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceToken) ProtoMessage() {}

func (x *ServiceToken) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[68]
	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 ServiceToken.ProtoReflect.Descriptor instead.
func (*ServiceToken) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{68}
}

func (x *ServiceToken) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *ServiceToken) GetAuthenticationUrl() string {
	if x != nil {
		return x.AuthenticationUrl
	}
	return ""
}

func (x *ServiceToken) GetSupportedServices() []*ServiceTokenSupportedService {
	if x != nil {
		return x.SupportedServices
	}
	return nil
}

func (x *ServiceToken) GetExpiration() int64 {
	if x != nil {
		return x.Expiration
	}
	return 0
}

type CredentialVerificationServiceInitFlow struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *CredentialVerificationServiceInitFlow) Reset() {
	*x = CredentialVerificationServiceInitFlow{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[69]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CredentialVerificationServiceInitFlow) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CredentialVerificationServiceInitFlow) ProtoMessage() {}

func (x *CredentialVerificationServiceInitFlow) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[69]
	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 CredentialVerificationServiceInitFlow.ProtoReflect.Descriptor instead.
func (*CredentialVerificationServiceInitFlow) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{69}
}

type CredentialVerificationServiceCompleteFlow struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *CredentialVerificationServiceCompleteFlow) Reset() {
	*x = CredentialVerificationServiceCompleteFlow{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[70]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CredentialVerificationServiceCompleteFlow) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CredentialVerificationServiceCompleteFlow) ProtoMessage() {}

func (x *CredentialVerificationServiceCompleteFlow) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[70]
	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 CredentialVerificationServiceCompleteFlow.ProtoReflect.Descriptor instead.
func (*CredentialVerificationServiceCompleteFlow) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{70}
}

type VerifiedCredentialsList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *VerifiedCredentialsList) Reset() {
	*x = VerifiedCredentialsList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[71]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VerifiedCredentialsList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VerifiedCredentialsList) ProtoMessage() {}

func (x *VerifiedCredentialsList) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[71]
	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 VerifiedCredentialsList.ProtoReflect.Descriptor instead.
func (*VerifiedCredentialsList) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{71}
}

type ReplicationServiceRegisterGroup struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReplicationServiceRegisterGroup) Reset() {
	*x = ReplicationServiceRegisterGroup{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[72]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReplicationServiceRegisterGroup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReplicationServiceRegisterGroup) ProtoMessage() {}

func (x *ReplicationServiceRegisterGroup) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[72]
	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 ReplicationServiceRegisterGroup.ProtoReflect.Descriptor instead.
func (*ReplicationServiceRegisterGroup) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{72}
}

type ReplicationServiceReplicateGroup struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReplicationServiceReplicateGroup) Reset() {
	*x = ReplicationServiceReplicateGroup{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[73]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReplicationServiceReplicateGroup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReplicationServiceReplicateGroup) ProtoMessage() {}

func (x *ReplicationServiceReplicateGroup) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[73]
	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 ReplicationServiceReplicateGroup.ProtoReflect.Descriptor instead.
func (*ReplicationServiceReplicateGroup) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{73}
}

type SystemInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *SystemInfo) Reset() {
	*x = SystemInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[74]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SystemInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SystemInfo) ProtoMessage() {}

func (x *SystemInfo) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[74]
	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 SystemInfo.ProtoReflect.Descriptor instead.
func (*SystemInfo) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{74}
}

type PeerList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PeerList) Reset() {
	*x = PeerList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[75]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PeerList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PeerList) ProtoMessage() {}

func (x *PeerList) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[75]
	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 PeerList.ProtoReflect.Descriptor instead.
func (*PeerList) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{75}
}

// Progress define a generic object that can be used to display a progress bar for long-running actions.
type Progress struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	State     string  `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"`
	Doing     string  `protobuf:"bytes,2,opt,name=doing,proto3" json:"doing,omitempty"`
	Progress  float32 `protobuf:"fixed32,3,opt,name=progress,proto3" json:"progress,omitempty"`
	Completed uint64  `protobuf:"varint,4,opt,name=completed,proto3" json:"completed,omitempty"`
	Total     uint64  `protobuf:"varint,5,opt,name=total,proto3" json:"total,omitempty"`
	Delay     uint64  `protobuf:"varint,6,opt,name=delay,proto3" json:"delay,omitempty"`
}

func (x *Progress) Reset() {
	*x = Progress{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[76]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Progress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Progress) ProtoMessage() {}

func (x *Progress) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[76]
	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 Progress.ProtoReflect.Descriptor instead.
func (*Progress) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{76}
}

func (x *Progress) GetState() string {
	if x != nil {
		return x.State
	}
	return ""
}

func (x *Progress) GetDoing() string {
	if x != nil {
		return x.Doing
	}
	return ""
}

func (x *Progress) GetProgress() float32 {
	if x != nil {
		return x.Progress
	}
	return 0
}

func (x *Progress) GetCompleted() uint64 {
	if x != nil {
		return x.Completed
	}
	return 0
}

func (x *Progress) GetTotal() uint64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *Progress) GetDelay() uint64 {
	if x != nil {
		return x.Delay
	}
	return 0
}

type OutOfStoreMessage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Cid              []byte `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"`
	DevicePk         []byte `protobuf:"bytes,2,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	Counter          uint64 `protobuf:"fixed64,3,opt,name=counter,proto3" json:"counter,omitempty"`
	Sig              []byte `protobuf:"bytes,4,opt,name=sig,proto3" json:"sig,omitempty"`
	Flags            uint32 `protobuf:"fixed32,5,opt,name=flags,proto3" json:"flags,omitempty"`
	EncryptedPayload []byte `protobuf:"bytes,6,opt,name=encrypted_payload,json=encryptedPayload,proto3" json:"encrypted_payload,omitempty"`
	Nonce            []byte `protobuf:"bytes,7,opt,name=nonce,proto3" json:"nonce,omitempty"`
}

func (x *OutOfStoreMessage) Reset() {
	*x = OutOfStoreMessage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[77]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OutOfStoreMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OutOfStoreMessage) ProtoMessage() {}

func (x *OutOfStoreMessage) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[77]
	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 OutOfStoreMessage.ProtoReflect.Descriptor instead.
func (*OutOfStoreMessage) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{77}
}

func (x *OutOfStoreMessage) GetCid() []byte {
	if x != nil {
		return x.Cid
	}
	return nil
}

func (x *OutOfStoreMessage) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *OutOfStoreMessage) GetCounter() uint64 {
	if x != nil {
		return x.Counter
	}
	return 0
}

func (x *OutOfStoreMessage) GetSig() []byte {
	if x != nil {
		return x.Sig
	}
	return nil
}

func (x *OutOfStoreMessage) GetFlags() uint32 {
	if x != nil {
		return x.Flags
	}
	return 0
}

func (x *OutOfStoreMessage) GetEncryptedPayload() []byte {
	if x != nil {
		return x.EncryptedPayload
	}
	return nil
}

func (x *OutOfStoreMessage) GetNonce() []byte {
	if x != nil {
		return x.Nonce
	}
	return nil
}

type OutOfStoreMessageEnvelope struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Nonce          []byte `protobuf:"bytes,1,opt,name=nonce,proto3" json:"nonce,omitempty"`
	Box            []byte `protobuf:"bytes,2,opt,name=box,proto3" json:"box,omitempty"`
	GroupReference []byte `protobuf:"bytes,3,opt,name=group_reference,json=groupReference,proto3" json:"group_reference,omitempty"`
}

func (x *OutOfStoreMessageEnvelope) Reset() {
	*x = OutOfStoreMessageEnvelope{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[78]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OutOfStoreMessageEnvelope) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OutOfStoreMessageEnvelope) ProtoMessage() {}

func (x *OutOfStoreMessageEnvelope) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[78]
	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 OutOfStoreMessageEnvelope.ProtoReflect.Descriptor instead.
func (*OutOfStoreMessageEnvelope) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{78}
}

func (x *OutOfStoreMessageEnvelope) GetNonce() []byte {
	if x != nil {
		return x.Nonce
	}
	return nil
}

func (x *OutOfStoreMessageEnvelope) GetBox() []byte {
	if x != nil {
		return x.Box
	}
	return nil
}

func (x *OutOfStoreMessageEnvelope) GetGroupReference() []byte {
	if x != nil {
		return x.GroupReference
	}
	return nil
}

type OutOfStoreReceive struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *OutOfStoreReceive) Reset() {
	*x = OutOfStoreReceive{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[79]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OutOfStoreReceive) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OutOfStoreReceive) ProtoMessage() {}

func (x *OutOfStoreReceive) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[79]
	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 OutOfStoreReceive.ProtoReflect.Descriptor instead.
func (*OutOfStoreReceive) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{79}
}

type OutOfStoreSeal struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *OutOfStoreSeal) Reset() {
	*x = OutOfStoreSeal{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[80]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OutOfStoreSeal) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OutOfStoreSeal) ProtoMessage() {}

func (x *OutOfStoreSeal) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[80]
	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 OutOfStoreSeal.ProtoReflect.Descriptor instead.
func (*OutOfStoreSeal) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{80}
}

type AccountVerifiedCredentialRegistered struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// device_pk is the public key of the device sending the message
	DevicePk                []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	SignedIdentityPublicKey []byte `protobuf:"bytes,2,opt,name=signed_identity_public_key,json=signedIdentityPublicKey,proto3" json:"signed_identity_public_key,omitempty"`
	VerifiedCredential      string `protobuf:"bytes,3,opt,name=verified_credential,json=verifiedCredential,proto3" json:"verified_credential,omitempty"`
	RegistrationDate        int64  `protobuf:"varint,4,opt,name=registration_date,json=registrationDate,proto3" json:"registration_date,omitempty"`
	ExpirationDate          int64  `protobuf:"varint,5,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"`
	Identifier              string `protobuf:"bytes,6,opt,name=identifier,proto3" json:"identifier,omitempty"`
	Issuer                  string `protobuf:"bytes,7,opt,name=issuer,proto3" json:"issuer,omitempty"`
}

func (x *AccountVerifiedCredentialRegistered) Reset() {
	*x = AccountVerifiedCredentialRegistered{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[81]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AccountVerifiedCredentialRegistered) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AccountVerifiedCredentialRegistered) ProtoMessage() {}

func (x *AccountVerifiedCredentialRegistered) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[81]
	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 AccountVerifiedCredentialRegistered.ProtoReflect.Descriptor instead.
func (*AccountVerifiedCredentialRegistered) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{81}
}

func (x *AccountVerifiedCredentialRegistered) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *AccountVerifiedCredentialRegistered) GetSignedIdentityPublicKey() []byte {
	if x != nil {
		return x.SignedIdentityPublicKey
	}
	return nil
}

func (x *AccountVerifiedCredentialRegistered) GetVerifiedCredential() string {
	if x != nil {
		return x.VerifiedCredential
	}
	return ""
}

func (x *AccountVerifiedCredentialRegistered) GetRegistrationDate() int64 {
	if x != nil {
		return x.RegistrationDate
	}
	return 0
}

func (x *AccountVerifiedCredentialRegistered) GetExpirationDate() int64 {
	if x != nil {
		return x.ExpirationDate
	}
	return 0
}

func (x *AccountVerifiedCredentialRegistered) GetIdentifier() string {
	if x != nil {
		return x.Identifier
	}
	return ""
}

func (x *AccountVerifiedCredentialRegistered) GetIssuer() string {
	if x != nil {
		return x.Issuer
	}
	return ""
}

type FirstLastCounters struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	First uint64 `protobuf:"varint,1,opt,name=first,proto3" json:"first,omitempty"`
	Last  uint64 `protobuf:"varint,2,opt,name=last,proto3" json:"last,omitempty"`
}

func (x *FirstLastCounters) Reset() {
	*x = FirstLastCounters{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[82]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FirstLastCounters) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FirstLastCounters) ProtoMessage() {}

func (x *FirstLastCounters) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[82]
	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 FirstLastCounters.ProtoReflect.Descriptor instead.
func (*FirstLastCounters) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{82}
}

func (x *FirstLastCounters) GetFirst() uint64 {
	if x != nil {
		return x.First
	}
	return 0
}

func (x *FirstLastCounters) GetLast() uint64 {
	if x != nil {
		return x.Last
	}
	return 0
}

// OrbitDBMessageHeads is the payload sent on orbitdb to share peer's heads
type OrbitDBMessageHeads struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// sealed box should contain encrypted Box
	SealedBox []byte `protobuf:"bytes,2,opt,name=sealed_box,json=sealedBox,proto3" json:"sealed_box,omitempty"`
	// current topic used
	RawRotation []byte `protobuf:"bytes,3,opt,name=raw_rotation,json=rawRotation,proto3" json:"raw_rotation,omitempty"`
}

func (x *OrbitDBMessageHeads) Reset() {
	*x = OrbitDBMessageHeads{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[83]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OrbitDBMessageHeads) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OrbitDBMessageHeads) ProtoMessage() {}

func (x *OrbitDBMessageHeads) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[83]
	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 OrbitDBMessageHeads.ProtoReflect.Descriptor instead.
func (*OrbitDBMessageHeads) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{83}
}

func (x *OrbitDBMessageHeads) GetSealedBox() []byte {
	if x != nil {
		return x.SealedBox
	}
	return nil
}

func (x *OrbitDBMessageHeads) GetRawRotation() []byte {
	if x != nil {
		return x.RawRotation
	}
	return nil
}

type RefreshContactRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *RefreshContactRequest) Reset() {
	*x = RefreshContactRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[84]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshContactRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshContactRequest) ProtoMessage() {}

func (x *RefreshContactRequest) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[84]
	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 RefreshContactRequest.ProtoReflect.Descriptor instead.
func (*RefreshContactRequest) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{84}
}

type ServiceExportData_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ServiceExportData_Request) Reset() {
	*x = ServiceExportData_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[86]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceExportData_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceExportData_Request) ProtoMessage() {}

func (x *ServiceExportData_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[86]
	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 ServiceExportData_Request.ProtoReflect.Descriptor instead.
func (*ServiceExportData_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{33, 0}
}

type ServiceExportData_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ExportedData []byte `protobuf:"bytes,1,opt,name=exported_data,json=exportedData,proto3" json:"exported_data,omitempty"`
}

func (x *ServiceExportData_Reply) Reset() {
	*x = ServiceExportData_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[87]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceExportData_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceExportData_Reply) ProtoMessage() {}

func (x *ServiceExportData_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[87]
	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 ServiceExportData_Reply.ProtoReflect.Descriptor instead.
func (*ServiceExportData_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{33, 1}
}

func (x *ServiceExportData_Reply) GetExportedData() []byte {
	if x != nil {
		return x.ExportedData
	}
	return nil
}

type ServiceGetConfiguration_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ServiceGetConfiguration_Request) Reset() {
	*x = ServiceGetConfiguration_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[88]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceGetConfiguration_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceGetConfiguration_Request) ProtoMessage() {}

func (x *ServiceGetConfiguration_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[88]
	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 ServiceGetConfiguration_Request.ProtoReflect.Descriptor instead.
func (*ServiceGetConfiguration_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{34, 0}
}

type ServiceGetConfiguration_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// account_pk is the public key of the current account
	AccountPk []byte `protobuf:"bytes,1,opt,name=account_pk,json=accountPk,proto3" json:"account_pk,omitempty"`
	// device_pk is the public key of the current device
	DevicePk []byte `protobuf:"bytes,2,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// account_group_pk is the public key of the account group
	AccountGroupPk []byte `protobuf:"bytes,3,opt,name=account_group_pk,json=accountGroupPk,proto3" json:"account_group_pk,omitempty"`
	// peer_id is the peer ID of the current IPFS node
	PeerId string `protobuf:"bytes,4,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
	// listeners is the list of swarm listening addresses of the current IPFS node
	Listeners      []string                             `protobuf:"bytes,5,rep,name=listeners,proto3" json:"listeners,omitempty"`
	BleEnabled     ServiceGetConfiguration_SettingState `protobuf:"varint,6,opt,name=ble_enabled,json=bleEnabled,proto3,enum=weshnet.protocol.v1.ServiceGetConfiguration_SettingState" json:"ble_enabled,omitempty"`
	WifiP2PEnabled ServiceGetConfiguration_SettingState `protobuf:"varint,7,opt,name=wifi_p2p_enabled,json=wifiP2pEnabled,proto3,enum=weshnet.protocol.v1.ServiceGetConfiguration_SettingState" json:"wifi_p2p_enabled,omitempty"` // MultiPeerConnectivity for Darwin and Nearby for Android
	MdnsEnabled    ServiceGetConfiguration_SettingState `protobuf:"varint,8,opt,name=mdns_enabled,json=mdnsEnabled,proto3,enum=weshnet.protocol.v1.ServiceGetConfiguration_SettingState" json:"mdns_enabled,omitempty"`
	RelayEnabled   ServiceGetConfiguration_SettingState `protobuf:"varint,9,opt,name=relay_enabled,json=relayEnabled,proto3,enum=weshnet.protocol.v1.ServiceGetConfiguration_SettingState" json:"relay_enabled,omitempty"`
}

func (x *ServiceGetConfiguration_Reply) Reset() {
	*x = ServiceGetConfiguration_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[89]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ServiceGetConfiguration_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ServiceGetConfiguration_Reply) ProtoMessage() {}

func (x *ServiceGetConfiguration_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[89]
	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 ServiceGetConfiguration_Reply.ProtoReflect.Descriptor instead.
func (*ServiceGetConfiguration_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{34, 1}
}

func (x *ServiceGetConfiguration_Reply) GetAccountPk() []byte {
	if x != nil {
		return x.AccountPk
	}
	return nil
}

func (x *ServiceGetConfiguration_Reply) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *ServiceGetConfiguration_Reply) GetAccountGroupPk() []byte {
	if x != nil {
		return x.AccountGroupPk
	}
	return nil
}

func (x *ServiceGetConfiguration_Reply) GetPeerId() string {
	if x != nil {
		return x.PeerId
	}
	return ""
}

func (x *ServiceGetConfiguration_Reply) GetListeners() []string {
	if x != nil {
		return x.Listeners
	}
	return nil
}

func (x *ServiceGetConfiguration_Reply) GetBleEnabled() ServiceGetConfiguration_SettingState {
	if x != nil {
		return x.BleEnabled
	}
	return ServiceGetConfiguration_Unknown
}

func (x *ServiceGetConfiguration_Reply) GetWifiP2PEnabled() ServiceGetConfiguration_SettingState {
	if x != nil {
		return x.WifiP2PEnabled
	}
	return ServiceGetConfiguration_Unknown
}

func (x *ServiceGetConfiguration_Reply) GetMdnsEnabled() ServiceGetConfiguration_SettingState {
	if x != nil {
		return x.MdnsEnabled
	}
	return ServiceGetConfiguration_Unknown
}

func (x *ServiceGetConfiguration_Reply) GetRelayEnabled() ServiceGetConfiguration_SettingState {
	if x != nil {
		return x.RelayEnabled
	}
	return ServiceGetConfiguration_Unknown
}

type ContactRequestReference_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestReference_Request) Reset() {
	*x = ContactRequestReference_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[90]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestReference_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestReference_Request) ProtoMessage() {}

func (x *ContactRequestReference_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[90]
	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 ContactRequestReference_Request.ProtoReflect.Descriptor instead.
func (*ContactRequestReference_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{35, 0}
}

type ContactRequestReference_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// public_rendezvous_seed is the rendezvous seed used by the current account
	PublicRendezvousSeed []byte `protobuf:"bytes,1,opt,name=public_rendezvous_seed,json=publicRendezvousSeed,proto3" json:"public_rendezvous_seed,omitempty"`
	// enabled indicates if incoming contact requests are enabled
	Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"`
}

func (x *ContactRequestReference_Reply) Reset() {
	*x = ContactRequestReference_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[91]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestReference_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestReference_Reply) ProtoMessage() {}

func (x *ContactRequestReference_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[91]
	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 ContactRequestReference_Reply.ProtoReflect.Descriptor instead.
func (*ContactRequestReference_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{35, 1}
}

func (x *ContactRequestReference_Reply) GetPublicRendezvousSeed() []byte {
	if x != nil {
		return x.PublicRendezvousSeed
	}
	return nil
}

func (x *ContactRequestReference_Reply) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

type ContactRequestDisable_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestDisable_Request) Reset() {
	*x = ContactRequestDisable_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[92]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestDisable_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestDisable_Request) ProtoMessage() {}

func (x *ContactRequestDisable_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[92]
	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 ContactRequestDisable_Request.ProtoReflect.Descriptor instead.
func (*ContactRequestDisable_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{36, 0}
}

type ContactRequestDisable_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestDisable_Reply) Reset() {
	*x = ContactRequestDisable_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[93]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestDisable_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestDisable_Reply) ProtoMessage() {}

func (x *ContactRequestDisable_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[93]
	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 ContactRequestDisable_Reply.ProtoReflect.Descriptor instead.
func (*ContactRequestDisable_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{36, 1}
}

type ContactRequestEnable_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestEnable_Request) Reset() {
	*x = ContactRequestEnable_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[94]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestEnable_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestEnable_Request) ProtoMessage() {}

func (x *ContactRequestEnable_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[94]
	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 ContactRequestEnable_Request.ProtoReflect.Descriptor instead.
func (*ContactRequestEnable_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{37, 0}
}

type ContactRequestEnable_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// public_rendezvous_seed is the rendezvous seed used by the current account
	PublicRendezvousSeed []byte `protobuf:"bytes,1,opt,name=public_rendezvous_seed,json=publicRendezvousSeed,proto3" json:"public_rendezvous_seed,omitempty"`
}

func (x *ContactRequestEnable_Reply) Reset() {
	*x = ContactRequestEnable_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[95]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestEnable_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestEnable_Reply) ProtoMessage() {}

func (x *ContactRequestEnable_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[95]
	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 ContactRequestEnable_Reply.ProtoReflect.Descriptor instead.
func (*ContactRequestEnable_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{37, 1}
}

func (x *ContactRequestEnable_Reply) GetPublicRendezvousSeed() []byte {
	if x != nil {
		return x.PublicRendezvousSeed
	}
	return nil
}

type ContactRequestResetReference_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestResetReference_Request) Reset() {
	*x = ContactRequestResetReference_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[96]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestResetReference_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestResetReference_Request) ProtoMessage() {}

func (x *ContactRequestResetReference_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[96]
	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 ContactRequestResetReference_Request.ProtoReflect.Descriptor instead.
func (*ContactRequestResetReference_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{38, 0}
}

type ContactRequestResetReference_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// public_rendezvous_seed is the rendezvous seed used by the current account
	PublicRendezvousSeed []byte `protobuf:"bytes,1,opt,name=public_rendezvous_seed,json=publicRendezvousSeed,proto3" json:"public_rendezvous_seed,omitempty"`
}

func (x *ContactRequestResetReference_Reply) Reset() {
	*x = ContactRequestResetReference_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[97]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestResetReference_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestResetReference_Reply) ProtoMessage() {}

func (x *ContactRequestResetReference_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[97]
	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 ContactRequestResetReference_Reply.ProtoReflect.Descriptor instead.
func (*ContactRequestResetReference_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{38, 1}
}

func (x *ContactRequestResetReference_Reply) GetPublicRendezvousSeed() []byte {
	if x != nil {
		return x.PublicRendezvousSeed
	}
	return nil
}

type ContactRequestSend_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// contact is a message describing how to connect to the other account
	Contact *ShareableContact `protobuf:"bytes,1,opt,name=contact,proto3" json:"contact,omitempty"`
	// own_metadata is the identifying metadata that will be shared to the other account
	OwnMetadata []byte `protobuf:"bytes,2,opt,name=own_metadata,json=ownMetadata,proto3" json:"own_metadata,omitempty"`
}

func (x *ContactRequestSend_Request) Reset() {
	*x = ContactRequestSend_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[98]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestSend_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestSend_Request) ProtoMessage() {}

func (x *ContactRequestSend_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[98]
	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 ContactRequestSend_Request.ProtoReflect.Descriptor instead.
func (*ContactRequestSend_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{39, 0}
}

func (x *ContactRequestSend_Request) GetContact() *ShareableContact {
	if x != nil {
		return x.Contact
	}
	return nil
}

func (x *ContactRequestSend_Request) GetOwnMetadata() []byte {
	if x != nil {
		return x.OwnMetadata
	}
	return nil
}

type ContactRequestSend_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestSend_Reply) Reset() {
	*x = ContactRequestSend_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[99]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestSend_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestSend_Reply) ProtoMessage() {}

func (x *ContactRequestSend_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[99]
	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 ContactRequestSend_Reply.ProtoReflect.Descriptor instead.
func (*ContactRequestSend_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{39, 1}
}

type ContactRequestAccept_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// contact_pk is the identifier of the contact to accept the request from
	ContactPk []byte `protobuf:"bytes,1,opt,name=contact_pk,json=contactPk,proto3" json:"contact_pk,omitempty"`
}

func (x *ContactRequestAccept_Request) Reset() {
	*x = ContactRequestAccept_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[100]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestAccept_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestAccept_Request) ProtoMessage() {}

func (x *ContactRequestAccept_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[100]
	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 ContactRequestAccept_Request.ProtoReflect.Descriptor instead.
func (*ContactRequestAccept_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{40, 0}
}

func (x *ContactRequestAccept_Request) GetContactPk() []byte {
	if x != nil {
		return x.ContactPk
	}
	return nil
}

type ContactRequestAccept_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestAccept_Reply) Reset() {
	*x = ContactRequestAccept_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[101]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestAccept_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestAccept_Reply) ProtoMessage() {}

func (x *ContactRequestAccept_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[101]
	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 ContactRequestAccept_Reply.ProtoReflect.Descriptor instead.
func (*ContactRequestAccept_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{40, 1}
}

type ContactRequestDiscard_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// contact_pk is the identifier of the contact to ignore the request from
	ContactPk []byte `protobuf:"bytes,1,opt,name=contact_pk,json=contactPk,proto3" json:"contact_pk,omitempty"`
}

func (x *ContactRequestDiscard_Request) Reset() {
	*x = ContactRequestDiscard_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[102]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestDiscard_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestDiscard_Request) ProtoMessage() {}

func (x *ContactRequestDiscard_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[102]
	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 ContactRequestDiscard_Request.ProtoReflect.Descriptor instead.
func (*ContactRequestDiscard_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{41, 0}
}

func (x *ContactRequestDiscard_Request) GetContactPk() []byte {
	if x != nil {
		return x.ContactPk
	}
	return nil
}

type ContactRequestDiscard_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactRequestDiscard_Reply) Reset() {
	*x = ContactRequestDiscard_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[103]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactRequestDiscard_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactRequestDiscard_Reply) ProtoMessage() {}

func (x *ContactRequestDiscard_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[103]
	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 ContactRequestDiscard_Reply.ProtoReflect.Descriptor instead.
func (*ContactRequestDiscard_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{41, 1}
}

type ShareContact_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ShareContact_Request) Reset() {
	*x = ShareContact_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[104]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ShareContact_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ShareContact_Request) ProtoMessage() {}

func (x *ShareContact_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[104]
	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 ShareContact_Request.ProtoReflect.Descriptor instead.
func (*ShareContact_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{42, 0}
}

type ShareContact_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// encoded_contact is the Protobuf encoding of the ShareableContact. You can further encode the bytes for sharing, such as base58 or QR code.
	EncodedContact []byte `protobuf:"bytes,1,opt,name=encoded_contact,json=encodedContact,proto3" json:"encoded_contact,omitempty"`
}

func (x *ShareContact_Reply) Reset() {
	*x = ShareContact_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[105]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ShareContact_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ShareContact_Reply) ProtoMessage() {}

func (x *ShareContact_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[105]
	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 ShareContact_Reply.ProtoReflect.Descriptor instead.
func (*ShareContact_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{42, 1}
}

func (x *ShareContact_Reply) GetEncodedContact() []byte {
	if x != nil {
		return x.EncodedContact
	}
	return nil
}

type DecodeContact_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// encoded_contact is the Protobuf encoding of the shareable contact (as returned by ShareContact).
	EncodedContact []byte `protobuf:"bytes,1,opt,name=encoded_contact,json=encodedContact,proto3" json:"encoded_contact,omitempty"`
}

func (x *DecodeContact_Request) Reset() {
	*x = DecodeContact_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[106]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DecodeContact_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DecodeContact_Request) ProtoMessage() {}

func (x *DecodeContact_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[106]
	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 DecodeContact_Request.ProtoReflect.Descriptor instead.
func (*DecodeContact_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{43, 0}
}

func (x *DecodeContact_Request) GetEncodedContact() []byte {
	if x != nil {
		return x.EncodedContact
	}
	return nil
}

type DecodeContact_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// shareable_contact is the decoded shareable contact.
	Contact *ShareableContact `protobuf:"bytes,1,opt,name=contact,proto3" json:"contact,omitempty"`
}

func (x *DecodeContact_Reply) Reset() {
	*x = DecodeContact_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[107]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DecodeContact_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DecodeContact_Reply) ProtoMessage() {}

func (x *DecodeContact_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[107]
	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 DecodeContact_Reply.ProtoReflect.Descriptor instead.
func (*DecodeContact_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{43, 1}
}

func (x *DecodeContact_Reply) GetContact() *ShareableContact {
	if x != nil {
		return x.Contact
	}
	return nil
}

type ContactBlock_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// contact_pk is the identifier of the contact to block
	ContactPk []byte `protobuf:"bytes,1,opt,name=contact_pk,json=contactPk,proto3" json:"contact_pk,omitempty"`
}

func (x *ContactBlock_Request) Reset() {
	*x = ContactBlock_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[108]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactBlock_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactBlock_Request) ProtoMessage() {}

func (x *ContactBlock_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[108]
	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 ContactBlock_Request.ProtoReflect.Descriptor instead.
func (*ContactBlock_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{44, 0}
}

func (x *ContactBlock_Request) GetContactPk() []byte {
	if x != nil {
		return x.ContactPk
	}
	return nil
}

type ContactBlock_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactBlock_Reply) Reset() {
	*x = ContactBlock_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[109]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactBlock_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactBlock_Reply) ProtoMessage() {}

func (x *ContactBlock_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[109]
	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 ContactBlock_Reply.ProtoReflect.Descriptor instead.
func (*ContactBlock_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{44, 1}
}

type ContactUnblock_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// contact_pk is the identifier of the contact to unblock
	ContactPk []byte `protobuf:"bytes,1,opt,name=contact_pk,json=contactPk,proto3" json:"contact_pk,omitempty"`
}

func (x *ContactUnblock_Request) Reset() {
	*x = ContactUnblock_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[110]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactUnblock_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactUnblock_Request) ProtoMessage() {}

func (x *ContactUnblock_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[110]
	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 ContactUnblock_Request.ProtoReflect.Descriptor instead.
func (*ContactUnblock_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{45, 0}
}

func (x *ContactUnblock_Request) GetContactPk() []byte {
	if x != nil {
		return x.ContactPk
	}
	return nil
}

type ContactUnblock_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactUnblock_Reply) Reset() {
	*x = ContactUnblock_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[111]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactUnblock_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactUnblock_Reply) ProtoMessage() {}

func (x *ContactUnblock_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[111]
	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 ContactUnblock_Reply.ProtoReflect.Descriptor instead.
func (*ContactUnblock_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{45, 1}
}

type ContactAliasKeySend_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// contact_pk is the identifier of the contact to send the alias public key to
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
}

func (x *ContactAliasKeySend_Request) Reset() {
	*x = ContactAliasKeySend_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[112]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactAliasKeySend_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactAliasKeySend_Request) ProtoMessage() {}

func (x *ContactAliasKeySend_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[112]
	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 ContactAliasKeySend_Request.ProtoReflect.Descriptor instead.
func (*ContactAliasKeySend_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{46, 0}
}

func (x *ContactAliasKeySend_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

type ContactAliasKeySend_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ContactAliasKeySend_Reply) Reset() {
	*x = ContactAliasKeySend_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[113]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ContactAliasKeySend_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ContactAliasKeySend_Reply) ProtoMessage() {}

func (x *ContactAliasKeySend_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[113]
	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 ContactAliasKeySend_Reply.ProtoReflect.Descriptor instead.
func (*ContactAliasKeySend_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{46, 1}
}

type MultiMemberGroupCreate_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *MultiMemberGroupCreate_Request) Reset() {
	*x = MultiMemberGroupCreate_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[114]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupCreate_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupCreate_Request) ProtoMessage() {}

func (x *MultiMemberGroupCreate_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[114]
	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 MultiMemberGroupCreate_Request.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupCreate_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{47, 0}
}

type MultiMemberGroupCreate_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the identifier of the newly created group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
}

func (x *MultiMemberGroupCreate_Reply) Reset() {
	*x = MultiMemberGroupCreate_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[115]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupCreate_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupCreate_Reply) ProtoMessage() {}

func (x *MultiMemberGroupCreate_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[115]
	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 MultiMemberGroupCreate_Reply.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupCreate_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{47, 1}
}

func (x *MultiMemberGroupCreate_Reply) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

type MultiMemberGroupJoin_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group is the information of the group to join
	Group *Group `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
}

func (x *MultiMemberGroupJoin_Request) Reset() {
	*x = MultiMemberGroupJoin_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[116]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupJoin_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupJoin_Request) ProtoMessage() {}

func (x *MultiMemberGroupJoin_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[116]
	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 MultiMemberGroupJoin_Request.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupJoin_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{48, 0}
}

func (x *MultiMemberGroupJoin_Request) GetGroup() *Group {
	if x != nil {
		return x.Group
	}
	return nil
}

type MultiMemberGroupJoin_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *MultiMemberGroupJoin_Reply) Reset() {
	*x = MultiMemberGroupJoin_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[117]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupJoin_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupJoin_Reply) ProtoMessage() {}

func (x *MultiMemberGroupJoin_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[117]
	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 MultiMemberGroupJoin_Reply.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupJoin_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{48, 1}
}

type MultiMemberGroupLeave_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
}

func (x *MultiMemberGroupLeave_Request) Reset() {
	*x = MultiMemberGroupLeave_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[118]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupLeave_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupLeave_Request) ProtoMessage() {}

func (x *MultiMemberGroupLeave_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[118]
	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 MultiMemberGroupLeave_Request.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupLeave_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{49, 0}
}

func (x *MultiMemberGroupLeave_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

type MultiMemberGroupLeave_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *MultiMemberGroupLeave_Reply) Reset() {
	*x = MultiMemberGroupLeave_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[119]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupLeave_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupLeave_Reply) ProtoMessage() {}

func (x *MultiMemberGroupLeave_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[119]
	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 MultiMemberGroupLeave_Reply.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupLeave_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{49, 1}
}

type MultiMemberGroupAliasResolverDisclose_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the identifier of the group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
}

func (x *MultiMemberGroupAliasResolverDisclose_Request) Reset() {
	*x = MultiMemberGroupAliasResolverDisclose_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[120]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupAliasResolverDisclose_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupAliasResolverDisclose_Request) ProtoMessage() {}

func (x *MultiMemberGroupAliasResolverDisclose_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[120]
	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 MultiMemberGroupAliasResolverDisclose_Request.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupAliasResolverDisclose_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{50, 0}
}

func (x *MultiMemberGroupAliasResolverDisclose_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

type MultiMemberGroupAliasResolverDisclose_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *MultiMemberGroupAliasResolverDisclose_Reply) Reset() {
	*x = MultiMemberGroupAliasResolverDisclose_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[121]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupAliasResolverDisclose_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupAliasResolverDisclose_Reply) ProtoMessage() {}

func (x *MultiMemberGroupAliasResolverDisclose_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[121]
	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 MultiMemberGroupAliasResolverDisclose_Reply.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupAliasResolverDisclose_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{50, 1}
}

type MultiMemberGroupAdminRoleGrant_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the identifier of the group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
	// member_pk is the identifier of the member which will be granted the admin role
	MemberPk []byte `protobuf:"bytes,2,opt,name=member_pk,json=memberPk,proto3" json:"member_pk,omitempty"`
}

func (x *MultiMemberGroupAdminRoleGrant_Request) Reset() {
	*x = MultiMemberGroupAdminRoleGrant_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[122]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupAdminRoleGrant_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupAdminRoleGrant_Request) ProtoMessage() {}

func (x *MultiMemberGroupAdminRoleGrant_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[122]
	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 MultiMemberGroupAdminRoleGrant_Request.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupAdminRoleGrant_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{51, 0}
}

func (x *MultiMemberGroupAdminRoleGrant_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

func (x *MultiMemberGroupAdminRoleGrant_Request) GetMemberPk() []byte {
	if x != nil {
		return x.MemberPk
	}
	return nil
}

type MultiMemberGroupAdminRoleGrant_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *MultiMemberGroupAdminRoleGrant_Reply) Reset() {
	*x = MultiMemberGroupAdminRoleGrant_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[123]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupAdminRoleGrant_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupAdminRoleGrant_Reply) ProtoMessage() {}

func (x *MultiMemberGroupAdminRoleGrant_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[123]
	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 MultiMemberGroupAdminRoleGrant_Reply.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupAdminRoleGrant_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{51, 1}
}

type MultiMemberGroupInvitationCreate_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the identifier of the group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
}

func (x *MultiMemberGroupInvitationCreate_Request) Reset() {
	*x = MultiMemberGroupInvitationCreate_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[124]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupInvitationCreate_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupInvitationCreate_Request) ProtoMessage() {}

func (x *MultiMemberGroupInvitationCreate_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[124]
	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 MultiMemberGroupInvitationCreate_Request.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupInvitationCreate_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{52, 0}
}

func (x *MultiMemberGroupInvitationCreate_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

type MultiMemberGroupInvitationCreate_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group is the invitation to the group
	Group *Group `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
}

func (x *MultiMemberGroupInvitationCreate_Reply) Reset() {
	*x = MultiMemberGroupInvitationCreate_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[125]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiMemberGroupInvitationCreate_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiMemberGroupInvitationCreate_Reply) ProtoMessage() {}

func (x *MultiMemberGroupInvitationCreate_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[125]
	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 MultiMemberGroupInvitationCreate_Reply.ProtoReflect.Descriptor instead.
func (*MultiMemberGroupInvitationCreate_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{52, 1}
}

func (x *MultiMemberGroupInvitationCreate_Reply) GetGroup() *Group {
	if x != nil {
		return x.Group
	}
	return nil
}

type AppMetadataSend_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the identifier of the group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
	// payload is the payload to send
	Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
}

func (x *AppMetadataSend_Request) Reset() {
	*x = AppMetadataSend_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[126]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AppMetadataSend_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AppMetadataSend_Request) ProtoMessage() {}

func (x *AppMetadataSend_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[126]
	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 AppMetadataSend_Request.ProtoReflect.Descriptor instead.
func (*AppMetadataSend_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{53, 0}
}

func (x *AppMetadataSend_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

func (x *AppMetadataSend_Request) GetPayload() []byte {
	if x != nil {
		return x.Payload
	}
	return nil
}

type AppMetadataSend_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Cid []byte `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"`
}

func (x *AppMetadataSend_Reply) Reset() {
	*x = AppMetadataSend_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[127]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AppMetadataSend_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AppMetadataSend_Reply) ProtoMessage() {}

func (x *AppMetadataSend_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[127]
	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 AppMetadataSend_Reply.ProtoReflect.Descriptor instead.
func (*AppMetadataSend_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{53, 1}
}

func (x *AppMetadataSend_Reply) GetCid() []byte {
	if x != nil {
		return x.Cid
	}
	return nil
}

type AppMessageSend_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the identifier of the group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
	// payload is the payload to send
	Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
}

func (x *AppMessageSend_Request) Reset() {
	*x = AppMessageSend_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[128]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AppMessageSend_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AppMessageSend_Request) ProtoMessage() {}

func (x *AppMessageSend_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[128]
	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 AppMessageSend_Request.ProtoReflect.Descriptor instead.
func (*AppMessageSend_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{54, 0}
}

func (x *AppMessageSend_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

func (x *AppMessageSend_Request) GetPayload() []byte {
	if x != nil {
		return x.Payload
	}
	return nil
}

type AppMessageSend_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Cid []byte `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"`
}

func (x *AppMessageSend_Reply) Reset() {
	*x = AppMessageSend_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[129]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AppMessageSend_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AppMessageSend_Reply) ProtoMessage() {}

func (x *AppMessageSend_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[129]
	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 AppMessageSend_Reply.ProtoReflect.Descriptor instead.
func (*AppMessageSend_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{54, 1}
}

func (x *AppMessageSend_Reply) GetCid() []byte {
	if x != nil {
		return x.Cid
	}
	return nil
}

type GroupMetadataList_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the identifier of the group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
	// since is the lower ID bound used to filter events
	// if not set, will return events since the beginning
	SinceId []byte `protobuf:"bytes,2,opt,name=since_id,json=sinceId,proto3" json:"since_id,omitempty"`
	// since_now will list only new event to come
	// since_id must not be set
	SinceNow bool `protobuf:"varint,3,opt,name=since_now,json=sinceNow,proto3" json:"since_now,omitempty"`
	// until is the upper ID bound used to filter events
	// if not set, will subscribe to new events to come
	UntilId []byte `protobuf:"bytes,4,opt,name=until_id,json=untilId,proto3" json:"until_id,omitempty"`
	// until_now will not list new event to come
	// until_id must not be set
	UntilNow bool `protobuf:"varint,5,opt,name=until_now,json=untilNow,proto3" json:"until_now,omitempty"`
	// reverse_order indicates whether the previous events should be returned in
	// reverse chronological order
	ReverseOrder bool `protobuf:"varint,6,opt,name=reverse_order,json=reverseOrder,proto3" json:"reverse_order,omitempty"`
}

func (x *GroupMetadataList_Request) Reset() {
	*x = GroupMetadataList_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[130]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupMetadataList_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupMetadataList_Request) ProtoMessage() {}

func (x *GroupMetadataList_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[130]
	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 GroupMetadataList_Request.ProtoReflect.Descriptor instead.
func (*GroupMetadataList_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{57, 0}
}

func (x *GroupMetadataList_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

func (x *GroupMetadataList_Request) GetSinceId() []byte {
	if x != nil {
		return x.SinceId
	}
	return nil
}

func (x *GroupMetadataList_Request) GetSinceNow() bool {
	if x != nil {
		return x.SinceNow
	}
	return false
}

func (x *GroupMetadataList_Request) GetUntilId() []byte {
	if x != nil {
		return x.UntilId
	}
	return nil
}

func (x *GroupMetadataList_Request) GetUntilNow() bool {
	if x != nil {
		return x.UntilNow
	}
	return false
}

func (x *GroupMetadataList_Request) GetReverseOrder() bool {
	if x != nil {
		return x.ReverseOrder
	}
	return false
}

type GroupMessageList_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the identifier of the group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
	// since is the lower ID bound used to filter events
	// if not set, will return events since the beginning
	SinceId []byte `protobuf:"bytes,2,opt,name=since_id,json=sinceId,proto3" json:"since_id,omitempty"`
	// since_now will list only new event to come
	// since_id must not be set
	SinceNow bool `protobuf:"varint,3,opt,name=since_now,json=sinceNow,proto3" json:"since_now,omitempty"`
	// until is the upper ID bound used to filter events
	// if not set, will subscribe to new events to come
	UntilId []byte `protobuf:"bytes,4,opt,name=until_id,json=untilId,proto3" json:"until_id,omitempty"`
	// until_now will not list new event to come
	// until_id must not be set
	UntilNow bool `protobuf:"varint,5,opt,name=until_now,json=untilNow,proto3" json:"until_now,omitempty"`
	// reverse_order indicates whether the previous events should be returned in
	// reverse chronological order
	ReverseOrder bool `protobuf:"varint,6,opt,name=reverse_order,json=reverseOrder,proto3" json:"reverse_order,omitempty"`
}

func (x *GroupMessageList_Request) Reset() {
	*x = GroupMessageList_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[131]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupMessageList_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupMessageList_Request) ProtoMessage() {}

func (x *GroupMessageList_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[131]
	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 GroupMessageList_Request.ProtoReflect.Descriptor instead.
func (*GroupMessageList_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{58, 0}
}

func (x *GroupMessageList_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

func (x *GroupMessageList_Request) GetSinceId() []byte {
	if x != nil {
		return x.SinceId
	}
	return nil
}

func (x *GroupMessageList_Request) GetSinceNow() bool {
	if x != nil {
		return x.SinceNow
	}
	return false
}

func (x *GroupMessageList_Request) GetUntilId() []byte {
	if x != nil {
		return x.UntilId
	}
	return nil
}

func (x *GroupMessageList_Request) GetUntilNow() bool {
	if x != nil {
		return x.UntilNow
	}
	return false
}

func (x *GroupMessageList_Request) GetReverseOrder() bool {
	if x != nil {
		return x.ReverseOrder
	}
	return false
}

type GroupInfo_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the identifier of the group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
	// contact_pk is the identifier of the contact
	ContactPk []byte `protobuf:"bytes,2,opt,name=contact_pk,json=contactPk,proto3" json:"contact_pk,omitempty"`
}

func (x *GroupInfo_Request) Reset() {
	*x = GroupInfo_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[132]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupInfo_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupInfo_Request) ProtoMessage() {}

func (x *GroupInfo_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[132]
	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 GroupInfo_Request.ProtoReflect.Descriptor instead.
func (*GroupInfo_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{59, 0}
}

func (x *GroupInfo_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

func (x *GroupInfo_Request) GetContactPk() []byte {
	if x != nil {
		return x.ContactPk
	}
	return nil
}

type GroupInfo_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group is the group invitation, containing the group pk and its type
	Group *Group `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
	// member_pk is the identifier of the current member in the group
	MemberPk []byte `protobuf:"bytes,2,opt,name=member_pk,json=memberPk,proto3" json:"member_pk,omitempty"`
	// device_pk is the identifier of the current device in the group
	DevicePk []byte `protobuf:"bytes,3,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
}

func (x *GroupInfo_Reply) Reset() {
	*x = GroupInfo_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[133]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupInfo_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupInfo_Reply) ProtoMessage() {}

func (x *GroupInfo_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[133]
	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 GroupInfo_Reply.ProtoReflect.Descriptor instead.
func (*GroupInfo_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{59, 1}
}

func (x *GroupInfo_Reply) GetGroup() *Group {
	if x != nil {
		return x.Group
	}
	return nil
}

func (x *GroupInfo_Reply) GetMemberPk() []byte {
	if x != nil {
		return x.MemberPk
	}
	return nil
}

func (x *GroupInfo_Reply) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

type ActivateGroup_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the identifier of the group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
	// local_only will open the group without enabling network interactions
	// with other members
	LocalOnly bool `protobuf:"varint,2,opt,name=local_only,json=localOnly,proto3" json:"local_only,omitempty"`
}

func (x *ActivateGroup_Request) Reset() {
	*x = ActivateGroup_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[134]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ActivateGroup_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ActivateGroup_Request) ProtoMessage() {}

func (x *ActivateGroup_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[134]
	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 ActivateGroup_Request.ProtoReflect.Descriptor instead.
func (*ActivateGroup_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{60, 0}
}

func (x *ActivateGroup_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

func (x *ActivateGroup_Request) GetLocalOnly() bool {
	if x != nil {
		return x.LocalOnly
	}
	return false
}

type ActivateGroup_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ActivateGroup_Reply) Reset() {
	*x = ActivateGroup_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[135]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ActivateGroup_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ActivateGroup_Reply) ProtoMessage() {}

func (x *ActivateGroup_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[135]
	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 ActivateGroup_Reply.ProtoReflect.Descriptor instead.
func (*ActivateGroup_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{60, 1}
}

type DeactivateGroup_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the identifier of the group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
}

func (x *DeactivateGroup_Request) Reset() {
	*x = DeactivateGroup_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[136]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeactivateGroup_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeactivateGroup_Request) ProtoMessage() {}

func (x *DeactivateGroup_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[136]
	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 DeactivateGroup_Request.ProtoReflect.Descriptor instead.
func (*DeactivateGroup_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{61, 0}
}

func (x *DeactivateGroup_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

type DeactivateGroup_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeactivateGroup_Reply) Reset() {
	*x = DeactivateGroup_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[137]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeactivateGroup_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeactivateGroup_Reply) ProtoMessage() {}

func (x *DeactivateGroup_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[137]
	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 DeactivateGroup_Reply.ProtoReflect.Descriptor instead.
func (*DeactivateGroup_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{61, 1}
}

type GroupDeviceStatus_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
}

func (x *GroupDeviceStatus_Request) Reset() {
	*x = GroupDeviceStatus_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[138]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupDeviceStatus_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupDeviceStatus_Request) ProtoMessage() {}

func (x *GroupDeviceStatus_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[138]
	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 GroupDeviceStatus_Request.ProtoReflect.Descriptor instead.
func (*GroupDeviceStatus_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{62, 0}
}

func (x *GroupDeviceStatus_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

type GroupDeviceStatus_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type  GroupDeviceStatus_Type `protobuf:"varint,1,opt,name=type,proto3,enum=weshnet.protocol.v1.GroupDeviceStatus_Type" json:"type,omitempty"`
	Event []byte                 `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"`
}

func (x *GroupDeviceStatus_Reply) Reset() {
	*x = GroupDeviceStatus_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[139]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupDeviceStatus_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupDeviceStatus_Reply) ProtoMessage() {}

func (x *GroupDeviceStatus_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[139]
	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 GroupDeviceStatus_Reply.ProtoReflect.Descriptor instead.
func (*GroupDeviceStatus_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{62, 1}
}

func (x *GroupDeviceStatus_Reply) GetType() GroupDeviceStatus_Type {
	if x != nil {
		return x.Type
	}
	return GroupDeviceStatus_TypeUnknown
}

func (x *GroupDeviceStatus_Reply) GetEvent() []byte {
	if x != nil {
		return x.Event
	}
	return nil
}

type GroupDeviceStatus_Reply_PeerConnected struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PeerId     string                        `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
	DevicePk   []byte                        `protobuf:"bytes,2,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	Transports []GroupDeviceStatus_Transport `protobuf:"varint,3,rep,packed,name=transports,proto3,enum=weshnet.protocol.v1.GroupDeviceStatus_Transport" json:"transports,omitempty"`
	Maddrs     []string                      `protobuf:"bytes,4,rep,name=maddrs,proto3" json:"maddrs,omitempty"`
}

func (x *GroupDeviceStatus_Reply_PeerConnected) Reset() {
	*x = GroupDeviceStatus_Reply_PeerConnected{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[140]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupDeviceStatus_Reply_PeerConnected) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupDeviceStatus_Reply_PeerConnected) ProtoMessage() {}

func (x *GroupDeviceStatus_Reply_PeerConnected) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[140]
	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 GroupDeviceStatus_Reply_PeerConnected.ProtoReflect.Descriptor instead.
func (*GroupDeviceStatus_Reply_PeerConnected) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{62, 1, 0}
}

func (x *GroupDeviceStatus_Reply_PeerConnected) GetPeerId() string {
	if x != nil {
		return x.PeerId
	}
	return ""
}

func (x *GroupDeviceStatus_Reply_PeerConnected) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *GroupDeviceStatus_Reply_PeerConnected) GetTransports() []GroupDeviceStatus_Transport {
	if x != nil {
		return x.Transports
	}
	return nil
}

func (x *GroupDeviceStatus_Reply_PeerConnected) GetMaddrs() []string {
	if x != nil {
		return x.Maddrs
	}
	return nil
}

type GroupDeviceStatus_Reply_PeerReconnecting struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PeerId string `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
}

func (x *GroupDeviceStatus_Reply_PeerReconnecting) Reset() {
	*x = GroupDeviceStatus_Reply_PeerReconnecting{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[141]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupDeviceStatus_Reply_PeerReconnecting) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupDeviceStatus_Reply_PeerReconnecting) ProtoMessage() {}

func (x *GroupDeviceStatus_Reply_PeerReconnecting) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[141]
	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 GroupDeviceStatus_Reply_PeerReconnecting.ProtoReflect.Descriptor instead.
func (*GroupDeviceStatus_Reply_PeerReconnecting) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{62, 1, 1}
}

func (x *GroupDeviceStatus_Reply_PeerReconnecting) GetPeerId() string {
	if x != nil {
		return x.PeerId
	}
	return ""
}

type GroupDeviceStatus_Reply_PeerDisconnected struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PeerId string `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
}

func (x *GroupDeviceStatus_Reply_PeerDisconnected) Reset() {
	*x = GroupDeviceStatus_Reply_PeerDisconnected{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[142]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupDeviceStatus_Reply_PeerDisconnected) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupDeviceStatus_Reply_PeerDisconnected) ProtoMessage() {}

func (x *GroupDeviceStatus_Reply_PeerDisconnected) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[142]
	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 GroupDeviceStatus_Reply_PeerDisconnected.ProtoReflect.Descriptor instead.
func (*GroupDeviceStatus_Reply_PeerDisconnected) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{62, 1, 2}
}

func (x *GroupDeviceStatus_Reply_PeerDisconnected) GetPeerId() string {
	if x != nil {
		return x.PeerId
	}
	return ""
}

type DebugListGroups_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DebugListGroups_Request) Reset() {
	*x = DebugListGroups_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[143]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DebugListGroups_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DebugListGroups_Request) ProtoMessage() {}

func (x *DebugListGroups_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[143]
	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 DebugListGroups_Request.ProtoReflect.Descriptor instead.
func (*DebugListGroups_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{63, 0}
}

type DebugListGroups_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the public key of the group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
	// group_type is the type of the group
	GroupType GroupType `protobuf:"varint,2,opt,name=group_type,json=groupType,proto3,enum=weshnet.protocol.v1.GroupType" json:"group_type,omitempty"`
	// contact_pk is the contact public key if appropriate
	ContactPk []byte `protobuf:"bytes,3,opt,name=contact_pk,json=contactPk,proto3" json:"contact_pk,omitempty"`
}

func (x *DebugListGroups_Reply) Reset() {
	*x = DebugListGroups_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[144]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DebugListGroups_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DebugListGroups_Reply) ProtoMessage() {}

func (x *DebugListGroups_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[144]
	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 DebugListGroups_Reply.ProtoReflect.Descriptor instead.
func (*DebugListGroups_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{63, 1}
}

func (x *DebugListGroups_Reply) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

func (x *DebugListGroups_Reply) GetGroupType() GroupType {
	if x != nil {
		return x.GroupType
	}
	return GroupType_GroupTypeUndefined
}

func (x *DebugListGroups_Reply) GetContactPk() []byte {
	if x != nil {
		return x.ContactPk
	}
	return nil
}

type DebugInspectGroupStore_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the identifier of the group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
	// log_type is the log to inspect
	LogType DebugInspectGroupLogType `protobuf:"varint,2,opt,name=log_type,json=logType,proto3,enum=weshnet.protocol.v1.DebugInspectGroupLogType" json:"log_type,omitempty"`
}

func (x *DebugInspectGroupStore_Request) Reset() {
	*x = DebugInspectGroupStore_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[145]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DebugInspectGroupStore_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DebugInspectGroupStore_Request) ProtoMessage() {}

func (x *DebugInspectGroupStore_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[145]
	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 DebugInspectGroupStore_Request.ProtoReflect.Descriptor instead.
func (*DebugInspectGroupStore_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{64, 0}
}

func (x *DebugInspectGroupStore_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

func (x *DebugInspectGroupStore_Request) GetLogType() DebugInspectGroupLogType {
	if x != nil {
		return x.LogType
	}
	return DebugInspectGroupLogType_DebugInspectGroupLogTypeUndefined
}

type DebugInspectGroupStore_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// cid is the CID of the IPFS log entry
	Cid []byte `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"`
	// parent_cids is the list of the parent entries
	ParentCids [][]byte `protobuf:"bytes,2,rep,name=parent_cids,json=parentCids,proto3" json:"parent_cids,omitempty"`
	// event_type metadata event type if subscribed to metadata events
	MetadataEventType EventType `protobuf:"varint,3,opt,name=metadata_event_type,json=metadataEventType,proto3,enum=weshnet.protocol.v1.EventType" json:"metadata_event_type,omitempty"`
	// device_pk is the public key of the device signing the entry
	DevicePk []byte `protobuf:"bytes,4,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	// payload is the un encrypted entry payload if available
	Payload []byte `protobuf:"bytes,6,opt,name=payload,proto3" json:"payload,omitempty"`
}

func (x *DebugInspectGroupStore_Reply) Reset() {
	*x = DebugInspectGroupStore_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[146]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DebugInspectGroupStore_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DebugInspectGroupStore_Reply) ProtoMessage() {}

func (x *DebugInspectGroupStore_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[146]
	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 DebugInspectGroupStore_Reply.ProtoReflect.Descriptor instead.
func (*DebugInspectGroupStore_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{64, 1}
}

func (x *DebugInspectGroupStore_Reply) GetCid() []byte {
	if x != nil {
		return x.Cid
	}
	return nil
}

func (x *DebugInspectGroupStore_Reply) GetParentCids() [][]byte {
	if x != nil {
		return x.ParentCids
	}
	return nil
}

func (x *DebugInspectGroupStore_Reply) GetMetadataEventType() EventType {
	if x != nil {
		return x.MetadataEventType
	}
	return EventType_EventTypeUndefined
}

func (x *DebugInspectGroupStore_Reply) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *DebugInspectGroupStore_Reply) GetPayload() []byte {
	if x != nil {
		return x.Payload
	}
	return nil
}

type DebugGroup_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// group_pk is the identifier of the group
	GroupPk []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
}

func (x *DebugGroup_Request) Reset() {
	*x = DebugGroup_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[147]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DebugGroup_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DebugGroup_Request) ProtoMessage() {}

func (x *DebugGroup_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[147]
	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 DebugGroup_Request.ProtoReflect.Descriptor instead.
func (*DebugGroup_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{65, 0}
}

func (x *DebugGroup_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

type DebugGroup_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// peer_ids is the list of peer ids connected to the same group
	PeerIds []string `protobuf:"bytes,1,rep,name=peer_ids,json=peerIds,proto3" json:"peer_ids,omitempty"`
}

func (x *DebugGroup_Reply) Reset() {
	*x = DebugGroup_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[148]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DebugGroup_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DebugGroup_Reply) ProtoMessage() {}

func (x *DebugGroup_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[148]
	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 DebugGroup_Reply.ProtoReflect.Descriptor instead.
func (*DebugGroup_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{65, 1}
}

func (x *DebugGroup_Reply) GetPeerIds() []string {
	if x != nil {
		return x.PeerIds
	}
	return nil
}

type CredentialVerificationServiceInitFlow_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ServiceUrl string `protobuf:"bytes,1,opt,name=service_url,json=serviceUrl,proto3" json:"service_url,omitempty"`
	PublicKey  []byte `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
	Link       string `protobuf:"bytes,3,opt,name=link,proto3" json:"link,omitempty"`
}

func (x *CredentialVerificationServiceInitFlow_Request) Reset() {
	*x = CredentialVerificationServiceInitFlow_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[149]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CredentialVerificationServiceInitFlow_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CredentialVerificationServiceInitFlow_Request) ProtoMessage() {}

func (x *CredentialVerificationServiceInitFlow_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[149]
	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 CredentialVerificationServiceInitFlow_Request.ProtoReflect.Descriptor instead.
func (*CredentialVerificationServiceInitFlow_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{69, 0}
}

func (x *CredentialVerificationServiceInitFlow_Request) GetServiceUrl() string {
	if x != nil {
		return x.ServiceUrl
	}
	return ""
}

func (x *CredentialVerificationServiceInitFlow_Request) GetPublicKey() []byte {
	if x != nil {
		return x.PublicKey
	}
	return nil
}

func (x *CredentialVerificationServiceInitFlow_Request) GetLink() string {
	if x != nil {
		return x.Link
	}
	return ""
}

type CredentialVerificationServiceInitFlow_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Url       string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	SecureUrl bool   `protobuf:"varint,2,opt,name=secure_url,json=secureUrl,proto3" json:"secure_url,omitempty"`
}

func (x *CredentialVerificationServiceInitFlow_Reply) Reset() {
	*x = CredentialVerificationServiceInitFlow_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[150]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CredentialVerificationServiceInitFlow_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CredentialVerificationServiceInitFlow_Reply) ProtoMessage() {}

func (x *CredentialVerificationServiceInitFlow_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[150]
	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 CredentialVerificationServiceInitFlow_Reply.ProtoReflect.Descriptor instead.
func (*CredentialVerificationServiceInitFlow_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{69, 1}
}

func (x *CredentialVerificationServiceInitFlow_Reply) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *CredentialVerificationServiceInitFlow_Reply) GetSecureUrl() bool {
	if x != nil {
		return x.SecureUrl
	}
	return false
}

type CredentialVerificationServiceCompleteFlow_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CallbackUri string `protobuf:"bytes,1,opt,name=callback_uri,json=callbackUri,proto3" json:"callback_uri,omitempty"`
}

func (x *CredentialVerificationServiceCompleteFlow_Request) Reset() {
	*x = CredentialVerificationServiceCompleteFlow_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[151]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CredentialVerificationServiceCompleteFlow_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CredentialVerificationServiceCompleteFlow_Request) ProtoMessage() {}

func (x *CredentialVerificationServiceCompleteFlow_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[151]
	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 CredentialVerificationServiceCompleteFlow_Request.ProtoReflect.Descriptor instead.
func (*CredentialVerificationServiceCompleteFlow_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{70, 0}
}

func (x *CredentialVerificationServiceCompleteFlow_Request) GetCallbackUri() string {
	if x != nil {
		return x.CallbackUri
	}
	return ""
}

type CredentialVerificationServiceCompleteFlow_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Identifier string `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"`
}

func (x *CredentialVerificationServiceCompleteFlow_Reply) Reset() {
	*x = CredentialVerificationServiceCompleteFlow_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[152]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CredentialVerificationServiceCompleteFlow_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CredentialVerificationServiceCompleteFlow_Reply) ProtoMessage() {}

func (x *CredentialVerificationServiceCompleteFlow_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[152]
	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 CredentialVerificationServiceCompleteFlow_Reply.ProtoReflect.Descriptor instead.
func (*CredentialVerificationServiceCompleteFlow_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{70, 1}
}

func (x *CredentialVerificationServiceCompleteFlow_Reply) GetIdentifier() string {
	if x != nil {
		return x.Identifier
	}
	return ""
}

type VerifiedCredentialsList_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FilterIdentifier string `protobuf:"bytes,1,opt,name=filter_identifier,json=filterIdentifier,proto3" json:"filter_identifier,omitempty"`
	FilterIssuer     string `protobuf:"bytes,2,opt,name=filter_issuer,json=filterIssuer,proto3" json:"filter_issuer,omitempty"`
	ExcludeExpired   bool   `protobuf:"varint,3,opt,name=exclude_expired,json=excludeExpired,proto3" json:"exclude_expired,omitempty"`
}

func (x *VerifiedCredentialsList_Request) Reset() {
	*x = VerifiedCredentialsList_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[153]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VerifiedCredentialsList_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VerifiedCredentialsList_Request) ProtoMessage() {}

func (x *VerifiedCredentialsList_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[153]
	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 VerifiedCredentialsList_Request.ProtoReflect.Descriptor instead.
func (*VerifiedCredentialsList_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{71, 0}
}

func (x *VerifiedCredentialsList_Request) GetFilterIdentifier() string {
	if x != nil {
		return x.FilterIdentifier
	}
	return ""
}

func (x *VerifiedCredentialsList_Request) GetFilterIssuer() string {
	if x != nil {
		return x.FilterIssuer
	}
	return ""
}

func (x *VerifiedCredentialsList_Request) GetExcludeExpired() bool {
	if x != nil {
		return x.ExcludeExpired
	}
	return false
}

type VerifiedCredentialsList_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Credential *AccountVerifiedCredentialRegistered `protobuf:"bytes,1,opt,name=credential,proto3" json:"credential,omitempty"`
}

func (x *VerifiedCredentialsList_Reply) Reset() {
	*x = VerifiedCredentialsList_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[154]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VerifiedCredentialsList_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VerifiedCredentialsList_Reply) ProtoMessage() {}

func (x *VerifiedCredentialsList_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[154]
	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 VerifiedCredentialsList_Reply.ProtoReflect.Descriptor instead.
func (*VerifiedCredentialsList_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{71, 1}
}

func (x *VerifiedCredentialsList_Reply) GetCredential() *AccountVerifiedCredentialRegistered {
	if x != nil {
		return x.Credential
	}
	return nil
}

type ReplicationServiceRegisterGroup_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GroupPk           []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"`
	Token             string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"`
	AuthenticationUrl string `protobuf:"bytes,3,opt,name=authentication_url,json=authenticationUrl,proto3" json:"authentication_url,omitempty"`
	ReplicationServer string `protobuf:"bytes,4,opt,name=replication_server,json=replicationServer,proto3" json:"replication_server,omitempty"`
}

func (x *ReplicationServiceRegisterGroup_Request) Reset() {
	*x = ReplicationServiceRegisterGroup_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[155]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReplicationServiceRegisterGroup_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReplicationServiceRegisterGroup_Request) ProtoMessage() {}

func (x *ReplicationServiceRegisterGroup_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[155]
	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 ReplicationServiceRegisterGroup_Request.ProtoReflect.Descriptor instead.
func (*ReplicationServiceRegisterGroup_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{72, 0}
}

func (x *ReplicationServiceRegisterGroup_Request) GetGroupPk() []byte {
	if x != nil {
		return x.GroupPk
	}
	return nil
}

func (x *ReplicationServiceRegisterGroup_Request) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *ReplicationServiceRegisterGroup_Request) GetAuthenticationUrl() string {
	if x != nil {
		return x.AuthenticationUrl
	}
	return ""
}

func (x *ReplicationServiceRegisterGroup_Request) GetReplicationServer() string {
	if x != nil {
		return x.ReplicationServer
	}
	return ""
}

type ReplicationServiceRegisterGroup_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReplicationServiceRegisterGroup_Reply) Reset() {
	*x = ReplicationServiceRegisterGroup_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[156]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReplicationServiceRegisterGroup_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReplicationServiceRegisterGroup_Reply) ProtoMessage() {}

func (x *ReplicationServiceRegisterGroup_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[156]
	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 ReplicationServiceRegisterGroup_Reply.ProtoReflect.Descriptor instead.
func (*ReplicationServiceRegisterGroup_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{72, 1}
}

type ReplicationServiceReplicateGroup_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Group *Group `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
}

func (x *ReplicationServiceReplicateGroup_Request) Reset() {
	*x = ReplicationServiceReplicateGroup_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[157]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReplicationServiceReplicateGroup_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReplicationServiceReplicateGroup_Request) ProtoMessage() {}

func (x *ReplicationServiceReplicateGroup_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[157]
	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 ReplicationServiceReplicateGroup_Request.ProtoReflect.Descriptor instead.
func (*ReplicationServiceReplicateGroup_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{73, 0}
}

func (x *ReplicationServiceReplicateGroup_Request) GetGroup() *Group {
	if x != nil {
		return x.Group
	}
	return nil
}

type ReplicationServiceReplicateGroup_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
}

func (x *ReplicationServiceReplicateGroup_Reply) Reset() {
	*x = ReplicationServiceReplicateGroup_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[158]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReplicationServiceReplicateGroup_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReplicationServiceReplicateGroup_Reply) ProtoMessage() {}

func (x *ReplicationServiceReplicateGroup_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[158]
	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 ReplicationServiceReplicateGroup_Reply.ProtoReflect.Descriptor instead.
func (*ReplicationServiceReplicateGroup_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{73, 1}
}

func (x *ReplicationServiceReplicateGroup_Reply) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

type SystemInfo_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *SystemInfo_Request) Reset() {
	*x = SystemInfo_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[159]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SystemInfo_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SystemInfo_Request) ProtoMessage() {}

func (x *SystemInfo_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[159]
	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 SystemInfo_Request.ProtoReflect.Descriptor instead.
func (*SystemInfo_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{74, 0}
}

type SystemInfo_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Process *SystemInfo_Process `protobuf:"bytes,1,opt,name=process,proto3" json:"process,omitempty"`
	P2P     *SystemInfo_P2P     `protobuf:"bytes,2,opt,name=p2p,proto3" json:"p2p,omitempty"`
	Orbitdb *SystemInfo_OrbitDB `protobuf:"bytes,3,opt,name=orbitdb,proto3" json:"orbitdb,omitempty"`
	Warns   []string            `protobuf:"bytes,4,rep,name=warns,proto3" json:"warns,omitempty"`
}

func (x *SystemInfo_Reply) Reset() {
	*x = SystemInfo_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[160]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SystemInfo_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SystemInfo_Reply) ProtoMessage() {}

func (x *SystemInfo_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[160]
	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 SystemInfo_Reply.ProtoReflect.Descriptor instead.
func (*SystemInfo_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{74, 1}
}

func (x *SystemInfo_Reply) GetProcess() *SystemInfo_Process {
	if x != nil {
		return x.Process
	}
	return nil
}

func (x *SystemInfo_Reply) GetP2P() *SystemInfo_P2P {
	if x != nil {
		return x.P2P
	}
	return nil
}

func (x *SystemInfo_Reply) GetOrbitdb() *SystemInfo_OrbitDB {
	if x != nil {
		return x.Orbitdb
	}
	return nil
}

func (x *SystemInfo_Reply) GetWarns() []string {
	if x != nil {
		return x.Warns
	}
	return nil
}

type SystemInfo_OrbitDB struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AccountMetadata *SystemInfo_OrbitDB_ReplicationStatus `protobuf:"bytes,1,opt,name=account_metadata,json=accountMetadata,proto3" json:"account_metadata,omitempty"`
}

func (x *SystemInfo_OrbitDB) Reset() {
	*x = SystemInfo_OrbitDB{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[161]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SystemInfo_OrbitDB) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SystemInfo_OrbitDB) ProtoMessage() {}

func (x *SystemInfo_OrbitDB) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[161]
	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 SystemInfo_OrbitDB.ProtoReflect.Descriptor instead.
func (*SystemInfo_OrbitDB) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{74, 2}
}

func (x *SystemInfo_OrbitDB) GetAccountMetadata() *SystemInfo_OrbitDB_ReplicationStatus {
	if x != nil {
		return x.AccountMetadata
	}
	return nil
}

type SystemInfo_P2P struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ConnectedPeers int64 `protobuf:"varint,1,opt,name=connected_peers,json=connectedPeers,proto3" json:"connected_peers,omitempty"`
}

func (x *SystemInfo_P2P) Reset() {
	*x = SystemInfo_P2P{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[162]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SystemInfo_P2P) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SystemInfo_P2P) ProtoMessage() {}

func (x *SystemInfo_P2P) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[162]
	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 SystemInfo_P2P.ProtoReflect.Descriptor instead.
func (*SystemInfo_P2P) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{74, 3}
}

func (x *SystemInfo_P2P) GetConnectedPeers() int64 {
	if x != nil {
		return x.ConnectedPeers
	}
	return 0
}

type SystemInfo_Process struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Version          string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	VcsRef           string `protobuf:"bytes,2,opt,name=vcs_ref,json=vcsRef,proto3" json:"vcs_ref,omitempty"`
	UptimeMs         int64  `protobuf:"varint,3,opt,name=uptime_ms,json=uptimeMs,proto3" json:"uptime_ms,omitempty"`
	UserCpuTimeMs    int64  `protobuf:"varint,10,opt,name=user_cpu_time_ms,json=userCpuTimeMs,proto3" json:"user_cpu_time_ms,omitempty"`
	SystemCpuTimeMs  int64  `protobuf:"varint,11,opt,name=system_cpu_time_ms,json=systemCpuTimeMs,proto3" json:"system_cpu_time_ms,omitempty"`
	StartedAt        int64  `protobuf:"varint,12,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
	RlimitCur        uint64 `protobuf:"varint,13,opt,name=rlimit_cur,json=rlimitCur,proto3" json:"rlimit_cur,omitempty"`
	NumGoroutine     int64  `protobuf:"varint,14,opt,name=num_goroutine,json=numGoroutine,proto3" json:"num_goroutine,omitempty"`
	Nofile           int64  `protobuf:"varint,15,opt,name=nofile,proto3" json:"nofile,omitempty"`
	TooManyOpenFiles bool   `protobuf:"varint,16,opt,name=too_many_open_files,json=tooManyOpenFiles,proto3" json:"too_many_open_files,omitempty"`
	NumCpu           int64  `protobuf:"varint,17,opt,name=num_cpu,json=numCpu,proto3" json:"num_cpu,omitempty"`
	GoVersion        string `protobuf:"bytes,18,opt,name=go_version,json=goVersion,proto3" json:"go_version,omitempty"`
	OperatingSystem  string `protobuf:"bytes,19,opt,name=operating_system,json=operatingSystem,proto3" json:"operating_system,omitempty"`
	HostName         string `protobuf:"bytes,20,opt,name=host_name,json=hostName,proto3" json:"host_name,omitempty"`
	Arch             string `protobuf:"bytes,21,opt,name=arch,proto3" json:"arch,omitempty"`
	RlimitMax        uint64 `protobuf:"varint,22,opt,name=rlimit_max,json=rlimitMax,proto3" json:"rlimit_max,omitempty"`
	Pid              int64  `protobuf:"varint,23,opt,name=pid,proto3" json:"pid,omitempty"`
	Ppid             int64  `protobuf:"varint,24,opt,name=ppid,proto3" json:"ppid,omitempty"`
	Priority         int64  `protobuf:"varint,25,opt,name=priority,proto3" json:"priority,omitempty"`
	Uid              int64  `protobuf:"varint,26,opt,name=uid,proto3" json:"uid,omitempty"`
	WorkingDir       string `protobuf:"bytes,27,opt,name=working_dir,json=workingDir,proto3" json:"working_dir,omitempty"`
	SystemUsername   string `protobuf:"bytes,28,opt,name=system_username,json=systemUsername,proto3" json:"system_username,omitempty"`
}

func (x *SystemInfo_Process) Reset() {
	*x = SystemInfo_Process{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[163]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SystemInfo_Process) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SystemInfo_Process) ProtoMessage() {}

func (x *SystemInfo_Process) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[163]
	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 SystemInfo_Process.ProtoReflect.Descriptor instead.
func (*SystemInfo_Process) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{74, 4}
}

func (x *SystemInfo_Process) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *SystemInfo_Process) GetVcsRef() string {
	if x != nil {
		return x.VcsRef
	}
	return ""
}

func (x *SystemInfo_Process) GetUptimeMs() int64 {
	if x != nil {
		return x.UptimeMs
	}
	return 0
}

func (x *SystemInfo_Process) GetUserCpuTimeMs() int64 {
	if x != nil {
		return x.UserCpuTimeMs
	}
	return 0
}

func (x *SystemInfo_Process) GetSystemCpuTimeMs() int64 {
	if x != nil {
		return x.SystemCpuTimeMs
	}
	return 0
}

func (x *SystemInfo_Process) GetStartedAt() int64 {
	if x != nil {
		return x.StartedAt
	}
	return 0
}

func (x *SystemInfo_Process) GetRlimitCur() uint64 {
	if x != nil {
		return x.RlimitCur
	}
	return 0
}

func (x *SystemInfo_Process) GetNumGoroutine() int64 {
	if x != nil {
		return x.NumGoroutine
	}
	return 0
}

func (x *SystemInfo_Process) GetNofile() int64 {
	if x != nil {
		return x.Nofile
	}
	return 0
}

func (x *SystemInfo_Process) GetTooManyOpenFiles() bool {
	if x != nil {
		return x.TooManyOpenFiles
	}
	return false
}

func (x *SystemInfo_Process) GetNumCpu() int64 {
	if x != nil {
		return x.NumCpu
	}
	return 0
}

func (x *SystemInfo_Process) GetGoVersion() string {
	if x != nil {
		return x.GoVersion
	}
	return ""
}

func (x *SystemInfo_Process) GetOperatingSystem() string {
	if x != nil {
		return x.OperatingSystem
	}
	return ""
}

func (x *SystemInfo_Process) GetHostName() string {
	if x != nil {
		return x.HostName
	}
	return ""
}

func (x *SystemInfo_Process) GetArch() string {
	if x != nil {
		return x.Arch
	}
	return ""
}

func (x *SystemInfo_Process) GetRlimitMax() uint64 {
	if x != nil {
		return x.RlimitMax
	}
	return 0
}

func (x *SystemInfo_Process) GetPid() int64 {
	if x != nil {
		return x.Pid
	}
	return 0
}

func (x *SystemInfo_Process) GetPpid() int64 {
	if x != nil {
		return x.Ppid
	}
	return 0
}

func (x *SystemInfo_Process) GetPriority() int64 {
	if x != nil {
		return x.Priority
	}
	return 0
}

func (x *SystemInfo_Process) GetUid() int64 {
	if x != nil {
		return x.Uid
	}
	return 0
}

func (x *SystemInfo_Process) GetWorkingDir() string {
	if x != nil {
		return x.WorkingDir
	}
	return ""
}

func (x *SystemInfo_Process) GetSystemUsername() string {
	if x != nil {
		return x.SystemUsername
	}
	return ""
}

type SystemInfo_OrbitDB_ReplicationStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Progress int64 `protobuf:"varint,1,opt,name=progress,proto3" json:"progress,omitempty"`
	Maximum  int64 `protobuf:"varint,2,opt,name=maximum,proto3" json:"maximum,omitempty"`
	Buffered int64 `protobuf:"varint,3,opt,name=buffered,proto3" json:"buffered,omitempty"`
	Queued   int64 `protobuf:"varint,4,opt,name=queued,proto3" json:"queued,omitempty"`
}

func (x *SystemInfo_OrbitDB_ReplicationStatus) Reset() {
	*x = SystemInfo_OrbitDB_ReplicationStatus{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[164]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SystemInfo_OrbitDB_ReplicationStatus) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SystemInfo_OrbitDB_ReplicationStatus) ProtoMessage() {}

func (x *SystemInfo_OrbitDB_ReplicationStatus) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[164]
	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 SystemInfo_OrbitDB_ReplicationStatus.ProtoReflect.Descriptor instead.
func (*SystemInfo_OrbitDB_ReplicationStatus) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{74, 2, 0}
}

func (x *SystemInfo_OrbitDB_ReplicationStatus) GetProgress() int64 {
	if x != nil {
		return x.Progress
	}
	return 0
}

func (x *SystemInfo_OrbitDB_ReplicationStatus) GetMaximum() int64 {
	if x != nil {
		return x.Maximum
	}
	return 0
}

func (x *SystemInfo_OrbitDB_ReplicationStatus) GetBuffered() int64 {
	if x != nil {
		return x.Buffered
	}
	return 0
}

func (x *SystemInfo_OrbitDB_ReplicationStatus) GetQueued() int64 {
	if x != nil {
		return x.Queued
	}
	return 0
}

type PeerList_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PeerList_Request) Reset() {
	*x = PeerList_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[165]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PeerList_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PeerList_Request) ProtoMessage() {}

func (x *PeerList_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[165]
	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 PeerList_Request.ProtoReflect.Descriptor instead.
func (*PeerList_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{75, 0}
}

type PeerList_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Peers []*PeerList_Peer `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"`
}

func (x *PeerList_Reply) Reset() {
	*x = PeerList_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[166]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PeerList_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PeerList_Reply) ProtoMessage() {}

func (x *PeerList_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[166]
	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 PeerList_Reply.ProtoReflect.Descriptor instead.
func (*PeerList_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{75, 1}
}

func (x *PeerList_Reply) GetPeers() []*PeerList_Peer {
	if x != nil {
		return x.Peers
	}
	return nil
}

type PeerList_Peer struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// id is the libp2p.PeerID.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// routes are the list of active and known maddr.
	Routes []*PeerList_Route `protobuf:"bytes,2,rep,name=routes,proto3" json:"routes,omitempty"`
	// errors is a list of errors related to the peer.
	Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"`
	// Features is a list of available features.
	Features []PeerList_Feature `protobuf:"varint,4,rep,packed,name=features,proto3,enum=weshnet.protocol.v1.PeerList_Feature" json:"features,omitempty"`
	// MinLatency is the minimum latency across all the peer routes.
	MinLatency int64 `protobuf:"varint,5,opt,name=min_latency,json=minLatency,proto3" json:"min_latency,omitempty"`
	// IsActive is true if at least one of the route is active.
	IsActive bool `protobuf:"varint,6,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"`
	// Direction is the aggregate of all the routes's direction.
	Direction Direction `protobuf:"varint,7,opt,name=direction,proto3,enum=weshnet.protocol.v1.Direction" json:"direction,omitempty"`
}

func (x *PeerList_Peer) Reset() {
	*x = PeerList_Peer{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[167]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PeerList_Peer) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PeerList_Peer) ProtoMessage() {}

func (x *PeerList_Peer) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[167]
	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 PeerList_Peer.ProtoReflect.Descriptor instead.
func (*PeerList_Peer) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{75, 2}
}

func (x *PeerList_Peer) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *PeerList_Peer) GetRoutes() []*PeerList_Route {
	if x != nil {
		return x.Routes
	}
	return nil
}

func (x *PeerList_Peer) GetErrors() []string {
	if x != nil {
		return x.Errors
	}
	return nil
}

func (x *PeerList_Peer) GetFeatures() []PeerList_Feature {
	if x != nil {
		return x.Features
	}
	return nil
}

func (x *PeerList_Peer) GetMinLatency() int64 {
	if x != nil {
		return x.MinLatency
	}
	return 0
}

func (x *PeerList_Peer) GetIsActive() bool {
	if x != nil {
		return x.IsActive
	}
	return false
}

func (x *PeerList_Peer) GetDirection() Direction {
	if x != nil {
		return x.Direction
	}
	return Direction_UnknownDir
}

type PeerList_Route struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// IsActive indicates whether the address is currently used or just known.
	IsActive bool `protobuf:"varint,1,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"`
	// Address is the multiaddress via which we are connected with the peer.
	Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	// Direction is which way the connection was established.
	Direction Direction `protobuf:"varint,3,opt,name=direction,proto3,enum=weshnet.protocol.v1.Direction" json:"direction,omitempty"`
	// Latency is the last known round trip time to the peer in ms.
	Latency int64 `protobuf:"varint,4,opt,name=latency,proto3" json:"latency,omitempty"`
	// Streams returns list of streams established with the peer.
	Streams []*PeerList_Stream `protobuf:"bytes,5,rep,name=streams,proto3" json:"streams,omitempty"`
}

func (x *PeerList_Route) Reset() {
	*x = PeerList_Route{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[168]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PeerList_Route) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PeerList_Route) ProtoMessage() {}

func (x *PeerList_Route) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[168]
	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 PeerList_Route.ProtoReflect.Descriptor instead.
func (*PeerList_Route) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{75, 3}
}

func (x *PeerList_Route) GetIsActive() bool {
	if x != nil {
		return x.IsActive
	}
	return false
}

func (x *PeerList_Route) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *PeerList_Route) GetDirection() Direction {
	if x != nil {
		return x.Direction
	}
	return Direction_UnknownDir
}

func (x *PeerList_Route) GetLatency() int64 {
	if x != nil {
		return x.Latency
	}
	return 0
}

func (x *PeerList_Route) GetStreams() []*PeerList_Stream {
	if x != nil {
		return x.Streams
	}
	return nil
}

type PeerList_Stream struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// id is an identifier used to write protocol headers in streams.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *PeerList_Stream) Reset() {
	*x = PeerList_Stream{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[169]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PeerList_Stream) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PeerList_Stream) ProtoMessage() {}

func (x *PeerList_Stream) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[169]
	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 PeerList_Stream.ProtoReflect.Descriptor instead.
func (*PeerList_Stream) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{75, 4}
}

func (x *PeerList_Stream) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type OutOfStoreReceive_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
}

func (x *OutOfStoreReceive_Request) Reset() {
	*x = OutOfStoreReceive_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[170]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OutOfStoreReceive_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OutOfStoreReceive_Request) ProtoMessage() {}

func (x *OutOfStoreReceive_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[170]
	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 OutOfStoreReceive_Request.ProtoReflect.Descriptor instead.
func (*OutOfStoreReceive_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{79, 0}
}

func (x *OutOfStoreReceive_Request) GetPayload() []byte {
	if x != nil {
		return x.Payload
	}
	return nil
}

type OutOfStoreReceive_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Message         *OutOfStoreMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	Cleartext       []byte             `protobuf:"bytes,2,opt,name=cleartext,proto3" json:"cleartext,omitempty"`
	GroupPublicKey  []byte             `protobuf:"bytes,3,opt,name=group_public_key,json=groupPublicKey,proto3" json:"group_public_key,omitempty"`
	AlreadyReceived bool               `protobuf:"varint,4,opt,name=already_received,json=alreadyReceived,proto3" json:"already_received,omitempty"`
}

func (x *OutOfStoreReceive_Reply) Reset() {
	*x = OutOfStoreReceive_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[171]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OutOfStoreReceive_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OutOfStoreReceive_Reply) ProtoMessage() {}

func (x *OutOfStoreReceive_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[171]
	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 OutOfStoreReceive_Reply.ProtoReflect.Descriptor instead.
func (*OutOfStoreReceive_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{79, 1}
}

func (x *OutOfStoreReceive_Reply) GetMessage() *OutOfStoreMessage {
	if x != nil {
		return x.Message
	}
	return nil
}

func (x *OutOfStoreReceive_Reply) GetCleartext() []byte {
	if x != nil {
		return x.Cleartext
	}
	return nil
}

func (x *OutOfStoreReceive_Reply) GetGroupPublicKey() []byte {
	if x != nil {
		return x.GroupPublicKey
	}
	return nil
}

func (x *OutOfStoreReceive_Reply) GetAlreadyReceived() bool {
	if x != nil {
		return x.AlreadyReceived
	}
	return false
}

type OutOfStoreSeal_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Cid            []byte `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"`
	GroupPublicKey []byte `protobuf:"bytes,2,opt,name=group_public_key,json=groupPublicKey,proto3" json:"group_public_key,omitempty"`
}

func (x *OutOfStoreSeal_Request) Reset() {
	*x = OutOfStoreSeal_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[172]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OutOfStoreSeal_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OutOfStoreSeal_Request) ProtoMessage() {}

func (x *OutOfStoreSeal_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[172]
	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 OutOfStoreSeal_Request.ProtoReflect.Descriptor instead.
func (*OutOfStoreSeal_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{80, 0}
}

func (x *OutOfStoreSeal_Request) GetCid() []byte {
	if x != nil {
		return x.Cid
	}
	return nil
}

func (x *OutOfStoreSeal_Request) GetGroupPublicKey() []byte {
	if x != nil {
		return x.GroupPublicKey
	}
	return nil
}

type OutOfStoreSeal_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Encrypted []byte `protobuf:"bytes,1,opt,name=encrypted,proto3" json:"encrypted,omitempty"`
}

func (x *OutOfStoreSeal_Reply) Reset() {
	*x = OutOfStoreSeal_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[173]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OutOfStoreSeal_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OutOfStoreSeal_Reply) ProtoMessage() {}

func (x *OutOfStoreSeal_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[173]
	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 OutOfStoreSeal_Reply.ProtoReflect.Descriptor instead.
func (*OutOfStoreSeal_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{80, 1}
}

func (x *OutOfStoreSeal_Reply) GetEncrypted() []byte {
	if x != nil {
		return x.Encrypted
	}
	return nil
}

type OrbitDBMessageHeads_Box struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Address  string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Heads    []byte `protobuf:"bytes,2,opt,name=heads,proto3" json:"heads,omitempty"`
	DevicePk []byte `protobuf:"bytes,3,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"`
	PeerId   []byte `protobuf:"bytes,4,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
}

func (x *OrbitDBMessageHeads_Box) Reset() {
	*x = OrbitDBMessageHeads_Box{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[174]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OrbitDBMessageHeads_Box) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OrbitDBMessageHeads_Box) ProtoMessage() {}

func (x *OrbitDBMessageHeads_Box) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[174]
	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 OrbitDBMessageHeads_Box.ProtoReflect.Descriptor instead.
func (*OrbitDBMessageHeads_Box) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{83, 0}
}

func (x *OrbitDBMessageHeads_Box) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *OrbitDBMessageHeads_Box) GetHeads() []byte {
	if x != nil {
		return x.Heads
	}
	return nil
}

func (x *OrbitDBMessageHeads_Box) GetDevicePk() []byte {
	if x != nil {
		return x.DevicePk
	}
	return nil
}

func (x *OrbitDBMessageHeads_Box) GetPeerId() []byte {
	if x != nil {
		return x.PeerId
	}
	return nil
}

type RefreshContactRequest_Peer struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// id is the libp2p.PeerID.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// list of peers multiaddrs.
	Addrs []string `protobuf:"bytes,2,rep,name=addrs,proto3" json:"addrs,omitempty"`
}

func (x *RefreshContactRequest_Peer) Reset() {
	*x = RefreshContactRequest_Peer{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[175]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshContactRequest_Peer) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshContactRequest_Peer) ProtoMessage() {}

func (x *RefreshContactRequest_Peer) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[175]
	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 RefreshContactRequest_Peer.ProtoReflect.Descriptor instead.
func (*RefreshContactRequest_Peer) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{84, 0}
}

func (x *RefreshContactRequest_Peer) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *RefreshContactRequest_Peer) GetAddrs() []string {
	if x != nil {
		return x.Addrs
	}
	return nil
}

type RefreshContactRequest_Request struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ContactPk []byte `protobuf:"bytes,1,opt,name=contact_pk,json=contactPk,proto3" json:"contact_pk,omitempty"`
	// timeout in second
	Timeout int64 `protobuf:"varint,2,opt,name=timeout,proto3" json:"timeout,omitempty"`
}

func (x *RefreshContactRequest_Request) Reset() {
	*x = RefreshContactRequest_Request{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[176]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshContactRequest_Request) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshContactRequest_Request) ProtoMessage() {}

func (x *RefreshContactRequest_Request) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[176]
	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 RefreshContactRequest_Request.ProtoReflect.Descriptor instead.
func (*RefreshContactRequest_Request) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{84, 1}
}

func (x *RefreshContactRequest_Request) GetContactPk() []byte {
	if x != nil {
		return x.ContactPk
	}
	return nil
}

func (x *RefreshContactRequest_Request) GetTimeout() int64 {
	if x != nil {
		return x.Timeout
	}
	return 0
}

type RefreshContactRequest_Reply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// peers found and successfully connected.
	PeersFound []*RefreshContactRequest_Peer `protobuf:"bytes,1,rep,name=peers_found,json=peersFound,proto3" json:"peers_found,omitempty"`
}

func (x *RefreshContactRequest_Reply) Reset() {
	*x = RefreshContactRequest_Reply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_protocoltypes_proto_msgTypes[177]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshContactRequest_Reply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshContactRequest_Reply) ProtoMessage() {}

func (x *RefreshContactRequest_Reply) ProtoReflect() protoreflect.Message {
	mi := &file_protocoltypes_proto_msgTypes[177]
	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 RefreshContactRequest_Reply.ProtoReflect.Descriptor instead.
func (*RefreshContactRequest_Reply) Descriptor() ([]byte, []int) {
	return file_protocoltypes_proto_rawDescGZIP(), []int{84, 2}
}

func (x *RefreshContactRequest_Reply) GetPeersFound() []*RefreshContactRequest_Peer {
	if x != nil {
		return x.PeersFound
	}
	return nil
}

var File_protocoltypes_proto protoreflect.FileDescriptor

var file_protocoltypes_proto_rawDesc = []byte{
	0x0a, 0x13, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x22, 0xcd, 0x01, 0x0a, 0x07, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72,
	0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x69, 0x61,
	0x73, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x0f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74,
	0x65, 0x4b, 0x65, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x72,
	0x65, 0x6e, 0x64, 0x65, 0x7a, 0x76, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x52, 0x65, 0x6e, 0x64,
	0x65, 0x7a, 0x76, 0x6f, 0x75, 0x73, 0x53, 0x65, 0x65, 0x64, 0x22, 0xf4, 0x01, 0x0a, 0x05, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b,
	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
	0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73,
	0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x53, 0x69, 0x67, 0x12, 0x3d, 0x0a, 0x0a, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e,
	0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x69, 0x67,
	0x6e, 0x5f, 0x70, 0x75, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x69, 0x67,
	0x6e, 0x50, 0x75, 0x62, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6b, 0x65, 0x79,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6c, 0x69, 0x6e, 0x6b, 0x4b, 0x65, 0x79, 0x12,
	0x20, 0x0a, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x69, 0x67, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4b, 0x65, 0x79, 0x53, 0x69,
	0x67, 0x22, 0xc7, 0x01, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x65, 0x61, 0x64, 0x73,
	0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
	0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c,
	0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x70, 0x75,
	0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x50, 0x75, 0x62,
	0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61,
	0x64, 0x73, 0x5f, 0x63, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x11, 0x6d,
	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x73, 0x43, 0x69, 0x64, 0x73,
	0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x68, 0x65, 0x61,
	0x64, 0x73, 0x5f, 0x63, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x11, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x48, 0x65, 0x61, 0x64, 0x73, 0x43, 0x69, 0x64, 0x73,
	0x12, 0x19, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x07, 0x6c, 0x69, 0x6e, 0x6b, 0x4b, 0x65, 0x79, 0x22, 0xce, 0x01, 0x0a, 0x0d,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a,
	0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
	0x65, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 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, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x52, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x41, 0x0a, 0x0d,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x14, 0x0a,
	0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f,
	0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22,
	0xe5, 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x4d, 0x0a, 0x08, 0x6d,
	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e,
	0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
	0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x18, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x04, 0x08, 0x01, 0x10,
	0x02, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74,
	0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x69, 0x6e,
	0x74, 0x65, 0x78, 0x74, 0x12, 0x52, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
	0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x25, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x70, 0x0a, 0x0f, 0x4d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14,
	0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6e,
	0x6f, 0x6e, 0x63, 0x65, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x5e, 0x0a, 0x0c, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61,
	0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09,
	0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x50, 0x6b, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x51, 0x0a, 0x18, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x61, 0x79, 0x6c, 0x6f,
	0x61, 0x64, 0x53, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x50, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x4e, 0x0a,
	0x14, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4b, 0x65, 0x79,
	0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
	0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x50, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x5f, 0x70, 0x6b, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x50, 0x6b, 0x22, 0x71, 0x0a,
	0x16, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65,
	0x72, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62,
	0x65, 0x72, 0x50, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70,
	0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50,
	0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x69, 0x67,
	0x22, 0x47, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4b,
	0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12,
	0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x77, 0x0a, 0x18, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4b, 0x65, 0x79,
	0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
	0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x50, 0x6b, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65,
	0x72, 0x5f, 0x70, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74,
	0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6b, 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, 0x22, 0x89, 0x01, 0x0a, 0x22, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62,
	0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x6f,
	0x6c, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x5f,
	0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d,
	0x61, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a,
	0x0b, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x0a, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x6b,
	0x0a, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74,
	0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x12,
	0x2a, 0x0a, 0x11, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65,
	0x72, 0x5f, 0x70, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x6e,
	0x74, 0x65, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6b, 0x22, 0x45, 0x0a, 0x26, 0x4d,
	0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49,
	0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x6e, 0x6e, 0x6f,
	0x75, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f,
	0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72,
	0x50, 0x6b, 0x22, 0x53, 0x0a, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64,
	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x7a, 0x76, 0x6f,
	0x75, 0x73, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x50, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x22, 0x56, 0x0a, 0x23, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
	0x52, 0x65, 0x6e, 0x64, 0x65, 0x7a, 0x76, 0x6f, 0x75, 0x73, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1b,
	0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x73,
	0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x22,
	0x63, 0x0a, 0x12, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a,
	0x6f, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
	0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x50, 0x6b, 0x12, 0x30, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67,
	0x72, 0x6f, 0x75, 0x70, 0x22, 0x4a, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x50, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70,
	0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b,
	0x22, 0x3c, 0x0a, 0x1d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x22, 0x3b,
	0x0a, 0x1c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1b,
	0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x22, 0x78, 0x0a, 0x23, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73,
	0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x12,
	0x34, 0x0a, 0x16, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x7a,
	0x76, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x14, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x7a, 0x76, 0x6f, 0x75,
	0x73, 0x53, 0x65, 0x65, 0x64, 0x22, 0xc3, 0x01, 0x0a, 0x25, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4f,
	0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x12,
	0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x12, 0x19, 0x0a, 0x08,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b, 0x12, 0x3f, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e,
	0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x68, 0x61, 0x72, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52,
	0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x77, 0x6e, 0x5f,
	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b,
	0x6f, 0x77, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x21, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x6e, 0x74,
	0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x12, 0x1d, 0x0a,
	0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x50, 0x6b, 0x22, 0xc6, 0x01, 0x0a,
	0x25, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65,
	0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x50, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x70,
	0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x50, 0x6b, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x72, 0x65,
	0x6e, 0x64, 0x65, 0x7a, 0x76, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x6e, 0x64,
	0x65, 0x7a, 0x76, 0x6f, 0x75, 0x73, 0x53, 0x65, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f,
	0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4d, 0x65, 0x74,
	0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x64, 0x0a, 0x26, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e,
	0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x65, 0x64, 0x12,
	0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x12, 0x1d, 0x0a, 0x0a,
	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x50, 0x6b, 0x22, 0x7e, 0x0a, 0x25, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x65,
	0x70, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70,
	0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50,
	0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x6b, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x50, 0x6b,
	0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b, 0x22, 0x53, 0x0a, 0x15, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70,
	0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50,
	0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x6b, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x50, 0x6b,
	0x22, 0x55, 0x0a, 0x17, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x55, 0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74,
	0x61, 0x63, 0x74, 0x5f, 0x70, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6f,
	0x6e, 0x74, 0x61, 0x63, 0x74, 0x50, 0x6b, 0x22, 0x8d, 0x01, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x75, 0x74,
	0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0x4c, 0x0a, 0x11, 0x53, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x09, 0x0a, 0x07,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79,
	0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74,
	0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65,
	0x64, 0x44, 0x61, 0x74, 0x61, 0x22, 0x93, 0x05, 0x0a, 0x17, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0xa3, 0x04, 0x0a,
	0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x50, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
	0x70, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x50, 0x6b, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x61, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b, 0x12, 0x17, 0x0a, 0x07,
	0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70,
	0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65,
	0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x65, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x0b, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e,
	0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x52, 0x0a, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
	0x63, 0x0a, 0x10, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x77, 0x65, 0x73, 0x68,
	0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x77, 0x69, 0x66, 0x69, 0x50, 0x32, 0x70, 0x45, 0x6e, 0x61,
	0x62, 0x6c, 0x65, 0x64, 0x12, 0x5c, 0x0a, 0x0c, 0x6d, 0x64, 0x6e, 0x73, 0x5f, 0x65, 0x6e, 0x61,
	0x62, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x77, 0x65, 0x73,
	0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31,
	0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x6d, 0x64, 0x6e, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x12, 0x5e, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x77, 0x65, 0x73, 0x68,
	0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x22, 0x47, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12,
	0x0b, 0x0a, 0x07, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08,
	0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e,
	0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x03, 0x22, 0x7d, 0x0a, 0x17, 0x43,
	0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x66,
	0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x57, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x75,
	0x62, 0x6c, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x7a, 0x76, 0x6f, 0x75, 0x73, 0x5f,
	0x73, 0x65, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x70, 0x75, 0x62, 0x6c,
	0x69, 0x63, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x7a, 0x76, 0x6f, 0x75, 0x73, 0x53, 0x65, 0x65, 0x64,
	0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x2b, 0x0a, 0x15, 0x43, 0x6f,
	0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x61,
	0x62, 0x6c, 0x65, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x07,
	0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x60, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x1a,
	0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x0a, 0x05, 0x52, 0x65,
	0x70, 0x6c, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x72, 0x65,
	0x6e, 0x64, 0x65, 0x7a, 0x76, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x14, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x52, 0x65, 0x6e, 0x64, 0x65,
	0x7a, 0x76, 0x6f, 0x75, 0x73, 0x53, 0x65, 0x65, 0x64, 0x22, 0x68, 0x0a, 0x1c, 0x43, 0x6f, 0x6e,
	0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74,
	0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x34, 0x0a,
	0x16, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x7a, 0x76, 0x6f,
	0x75, 0x73, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x70,
	0x75, 0x62, 0x6c, 0x69, 0x63, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x7a, 0x76, 0x6f, 0x75, 0x73, 0x53,
	0x65, 0x65, 0x64, 0x22, 0x8c, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x6d, 0x0a, 0x07, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x61,
	0x72, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x07, 0x63,
	0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x6f, 0x77,
	0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x07, 0x0a, 0x05, 0x52, 0x65, 0x70,
	0x6c, 0x79, 0x22, 0x49, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x1a, 0x28, 0x0a, 0x07, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x50, 0x6b, 0x1a, 0x07, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x4a, 0x0a,
	0x15, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44,
	0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x1a, 0x28, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x6b, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x50, 0x6b,
	0x1a, 0x07, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x4b, 0x0a, 0x0c, 0x53, 0x68, 0x61,
	0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x27, 0x0a,
	0x0f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x43,
	0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x63, 0x6f, 0x64,
	0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x1a, 0x32, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x63,
	0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x65, 0x6e,
	0x63, 0x6f, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x1a, 0x48, 0x0a, 0x05,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3f, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x61,
	0x72, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x07, 0x63,
	0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x22, 0x41, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63,
	0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x28, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x6b, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x50, 0x6b,
	0x1a, 0x07, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x43, 0x0a, 0x0e, 0x43, 0x6f, 0x6e,
	0x74, 0x61, 0x63, 0x74, 0x55, 0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x28, 0x0a, 0x07, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63,
	0x74, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74,
	0x61, 0x63, 0x74, 0x50, 0x6b, 0x1a, 0x07, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x44,
	0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4b, 0x65,
	0x79, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x24, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b, 0x1a, 0x07, 0x0a, 0x05, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x22, 0x47, 0x0a, 0x16, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d,
	0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x09,
	0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x0a, 0x05, 0x52, 0x65, 0x70,
	0x6c, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b, 0x22, 0x5c, 0x0a,
	0x14, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x1a, 0x3b, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x30, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1a, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x1a, 0x07, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x46, 0x0a, 0x15, 0x4d,
	0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c,
	0x65, 0x61, 0x76, 0x65, 0x1a, 0x24, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b, 0x1a, 0x07, 0x0a, 0x05, 0x52, 0x65,
	0x70, 0x6c, 0x79, 0x22, 0x56, 0x0a, 0x25, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62,
	0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x6f,
	0x6c, 0x76, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x1a, 0x24, 0x0a, 0x07,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70,
	0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70,
	0x50, 0x6b, 0x1a, 0x07, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x6c, 0x0a, 0x1e, 0x4d,
	0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41,
	0x64, 0x6d, 0x69, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x1a, 0x41, 0x0a,
	0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x50, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6b,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6b,
	0x1a, 0x07, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x83, 0x01, 0x0a, 0x20, 0x4d, 0x75,
	0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e,
	0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x24,
	0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x50, 0x6b, 0x1a, 0x39, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a,
	0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77,
	0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22,
	0x72, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65,
	0x6e, 0x64, 0x1a, 0x44, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a,
	0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b, 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, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x1a, 0x19, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03,
	0x63, 0x69, 0x64, 0x22, 0x71, 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x44, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b, 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, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x1a, 0x19, 0x0a, 0x05, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a,
	0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f,
	0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x3e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65,
	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74,
	0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xb4, 0x01, 0x0a, 0x11,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x12, 0x46, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65,
	0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e,
	0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x45,
	0x76, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x65, 0x76, 0x65,
	0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x3d, 0x0a, 0x07, 0x68, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x77, 0x65, 0x73,
	0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31,
	0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x52,
	0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x11, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61,
	0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0xb9, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b, 0x12,
	0x19, 0x0a, 0x08, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x07, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69,
	0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73,
	0x69, 0x6e, 0x63, 0x65, 0x4e, 0x6f, 0x77, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x6e, 0x74, 0x69, 0x6c,
	0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x6e, 0x74, 0x69, 0x6c,
	0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x77, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x4e, 0x6f, 0x77, 0x12,
	0x23, 0x0a, 0x0d, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x4f,
	0x72, 0x64, 0x65, 0x72, 0x22, 0xce, 0x01, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0xb9, 0x01, 0x0a, 0x07, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70,
	0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b,
	0x12, 0x19, 0x0a, 0x08, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x07, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73,
	0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
	0x73, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x6f, 0x77, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x6e, 0x74, 0x69,
	0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x6e, 0x74, 0x69,
	0x6c, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x77,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x4e, 0x6f, 0x77,
	0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65,
	0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65,
	0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xc5, 0x01, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49,
	0x6e, 0x66, 0x6f, 0x1a, 0x43, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19,
	0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e,
	0x74, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63,
	0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x50, 0x6b, 0x1a, 0x73, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c,
	0x79, 0x12, 0x30, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6b,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6b,
	0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x22, 0x5d, 0x0a,
	0x0d, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x43,
	0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x50, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6f, 0x6e,
	0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4f,
	0x6e, 0x6c, 0x79, 0x1a, 0x07, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x40, 0x0a, 0x0f,
	0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a,
	0x24, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x50, 0x6b, 0x1a, 0x07, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xd1,
	0x04, 0x0a, 0x11, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x1a, 0x24, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b, 0x1a, 0xea, 0x02, 0x0a, 0x05, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x1a, 0xaf, 0x01, 0x0a, 0x0d,
	0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a,
	0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x5f, 0x70, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x50, 0x6b, 0x12, 0x50, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74,
	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65,
	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e,
	0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73,
	0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18,
	0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x64, 0x64, 0x72, 0x73, 0x1a, 0x2b, 0x0a,
	0x10, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e,
	0x67, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x1a, 0x2b, 0x0a, 0x10, 0x50, 0x65,
	0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x17,
	0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0x62, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x0f, 0x0a, 0x0b, 0x54, 0x79, 0x70, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00,
	0x12, 0x18, 0x0a, 0x14, 0x54, 0x79, 0x70, 0x65, 0x50, 0x65, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63,
	0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x79,
	0x70, 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10,
	0x02, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x79, 0x70, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x63,
	0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x22, 0x45, 0x0a, 0x09, 0x54,
	0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x70, 0x74, 0x55,
	0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x70, 0x74, 0x4c,
	0x41, 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x70, 0x74, 0x57, 0x41, 0x4e, 0x10, 0x02,
	0x12, 0x10, 0x0a, 0x0c, 0x54, 0x70, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x69, 0x74, 0x79,
	0x10, 0x03, 0x22, 0x9f, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4c, 0x69, 0x73, 0x74,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x80, 0x01, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x67,
	0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67,
	0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b, 0x12, 0x3d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x73,
	0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31,
	0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x5f, 0x70, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x50, 0x6b, 0x22, 0xcc, 0x02, 0x0a, 0x16, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e,
	0x73, 0x70, 0x65, 0x63, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a,
	0x6e, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x50, 0x6b, 0x12, 0x48, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65,
	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
	0x62, 0x75, 0x67, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c,
	0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x1a,
	0xc1, 0x01, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70,
	0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c,
	0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x69, 0x64, 0x73, 0x12, 0x4e, 0x0a, 0x13,
	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x73, 0x68,
	0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x6d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79,
	0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c,
	0x6f, 0x61, 0x64, 0x22, 0x56, 0x0a, 0x0a, 0x44, 0x65, 0x62, 0x75, 0x67, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x1a, 0x24, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b, 0x1a, 0x22, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79,
	0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x74, 0x0a, 0x10, 0x53,
	0x68, 0x61, 0x72, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12,
	0x0e, 0x0a, 0x02, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x70, 0x6b, 0x12,
	0x34, 0x0a, 0x16, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x7a,
	0x76, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x14, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x7a, 0x76, 0x6f, 0x75,
	0x73, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x22, 0x6c, 0x0a, 0x1c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65,
	0x6e, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f,
	0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22,
	0xd5, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
	0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
	0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x11, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x60, 0x0a, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74,
	0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x31, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x52, 0x11, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x78, 0x70,
	0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc0, 0x01, 0x0a, 0x25, 0x43, 0x72, 0x65, 0x64,
	0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x6c, 0x6f,
	0x77, 0x1a, 0x5d, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b,
	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1d, 0x0a,
	0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04,
	0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b,
	0x1a, 0x38, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x73,
	0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x09, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x82, 0x01, 0x0a, 0x29, 0x43,
	0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x70,
	0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x1a, 0x2c, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f,
	0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x62,
	0x61, 0x63, 0x6b, 0x55, 0x72, 0x69, 0x1a, 0x27, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
	0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22,
	0x83, 0x02, 0x0a, 0x17, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64,
	0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x84, 0x01, 0x0a, 0x07,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x66, 0x69, 0x6c, 0x74, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x10, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x66, 0x69, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x69,
	0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x69, 0x6c,
	0x74, 0x65, 0x72, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x63,
	0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72,
	0x65, 0x64, 0x1a, 0x61, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x58, 0x0a, 0x0a, 0x63,
	0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x38, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x65, 0x72,
	0x69, 0x66, 0x69, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65,
	0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xc5, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69,
	0x73, 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x98, 0x01, 0x0a, 0x07, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70,
	0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6b,
	0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
	0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x11, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65,
	0x72, 0x76, 0x65, 0x72, 0x1a, 0x07, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x78, 0x0a,
	0x20, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76,
	0x69, 0x63, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x1a, 0x3b, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x05,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x65,
	0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76,
	0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x17,
	0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xc2, 0x09, 0x0a, 0x0a, 0x53, 0x79, 0x73, 0x74,
	0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0xda, 0x01, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x41, 0x0a, 0x07, 0x70,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x77,
	0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72,
	0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x35,
	0x0a, 0x03, 0x70, 0x32, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x77, 0x65,
	0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76,
	0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x32, 0x50,
	0x52, 0x03, 0x70, 0x32, 0x70, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x72, 0x62, 0x69, 0x74, 0x64, 0x62,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73,
	0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4f, 0x72, 0x62, 0x69, 0x74, 0x44, 0x42, 0x52,
	0x07, 0x6f, 0x72, 0x62, 0x69, 0x74, 0x64, 0x62, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x61, 0x72, 0x6e,
	0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x77, 0x61, 0x72, 0x6e, 0x73, 0x1a, 0xee,
	0x01, 0x0a, 0x07, 0x4f, 0x72, 0x62, 0x69, 0x74, 0x44, 0x42, 0x12, 0x64, 0x0a, 0x10, 0x61, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65,
	0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4f, 0x72, 0x62, 0x69, 0x74, 0x44, 0x42, 0x2e, 0x52, 0x65,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
	0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x1a, 0x7d, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
	0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x62,
	0x75, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x62,
	0x75, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x71, 0x75, 0x65, 0x75, 0x65,
	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x1a,
	0x2e, 0x0a, 0x03, 0x50, 0x32, 0x50, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
	0x74, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x65, 0x65, 0x72, 0x73, 0x1a,
	0xaa, 0x05, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x66,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x63, 0x73, 0x52, 0x65, 0x66, 0x12, 0x1b,
	0x0a, 0x09, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x08, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x75,
	0x73, 0x65, 0x72, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x73, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x43, 0x70, 0x75, 0x54, 0x69,
	0x6d, 0x65, 0x4d, 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x63,
	0x70, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x70, 0x75, 0x54, 0x69, 0x6d, 0x65, 0x4d,
	0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74,
	0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x75, 0x72, 0x12,
	0x23, 0x0a, 0x0d, 0x6e, 0x75, 0x6d, 0x5f, 0x67, 0x6f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65,
	0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x47, 0x6f, 0x72, 0x6f, 0x75,
	0x74, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0f,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x13,
	0x74, 0x6f, 0x6f, 0x5f, 0x6d, 0x61, 0x6e, 0x79, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x66, 0x69,
	0x6c, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x74, 0x6f, 0x6f, 0x4d, 0x61,
	0x6e, 0x79, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6e,
	0x75, 0x6d, 0x5f, 0x63, 0x70, 0x75, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75,
	0x6d, 0x43, 0x70, 0x75, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x56, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67,
	0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1b,
	0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61,
	0x72, 0x63, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x63, 0x68, 0x12,
	0x1d, 0x0a, 0x0a, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x16, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x09, 0x72, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x10,
	0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x70, 0x69, 0x64,
	0x12, 0x12, 0x0a, 0x04, 0x70, 0x70, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04,
	0x70, 0x70, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79,
	0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79,
	0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75,
	0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69,
	0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67,
	0x44, 0x69, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x75, 0x73,
	0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x79,
	0x73, 0x74, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xeb, 0x05, 0x0a,
	0x08, 0x50, 0x65, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x38, 0x0a,
	0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x77,
	0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x50, 0x65, 0x65, 0x72,
	0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x1a, 0xaa, 0x02, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72,
	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
	0x12, 0x3b, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x23, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x2e,
	0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a,
	0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65,
	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65,
	0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x5f,
	0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d,
	0x69, 0x6e, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f,
	0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73,
	0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x73, 0x68,
	0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e,
	0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xd6, 0x01, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x1b,
	0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61,
	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64,
	0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e,
	0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x3e, 0x0a,
	0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24,
	0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x53, 0x74,
	0x72, 0x65, 0x61, 0x6d, 0x52, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x1a, 0x18, 0x0a,
	0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x71, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x65, 0x73, 0x68, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x4c, 0x45, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x6f, 0x63, 0x61, 0x6c,
	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x6f, 0x72,
	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x51, 0x75, 0x69,
	0x63, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0x05, 0x22, 0x9c, 0x01, 0x0a, 0x08, 0x50,
	0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a,
	0x05, 0x64, 0x6f, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x6f,
	0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12,
	0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a,
	0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f,
	0x74, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xc7, 0x01, 0x0a, 0x11, 0x4f, 0x75,
	0x74, 0x4f, 0x66, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x63, 0x69,
	0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x12, 0x18,
	0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x06, 0x52,
	0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c,
	0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x07, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73,
	0x12, 0x2b, 0x0a, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61,
	0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x65, 0x6e, 0x63,
	0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a,
	0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f,
	0x6e, 0x63, 0x65, 0x22, 0x6c, 0x0a, 0x19, 0x4f, 0x75, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x6f, 0x72,
	0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65,
	0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x6f, 0x78, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
	0x65, 0x22, 0xf7, 0x01, 0x0a, 0x11, 0x4f, 0x75, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x6f, 0x72, 0x65,
	0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x1a, 0x23, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 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, 0x1a, 0xbc, 0x01, 0x0a,
	0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x40, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65,
	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75,
	0x74, 0x4f, 0x66, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52,
	0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x65, 0x61,
	0x72, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6c, 0x65,
	0x61, 0x72, 0x74, 0x65, 0x78, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
	0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79,
	0x12, 0x29, 0x0a, 0x10, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x65,
	0x69, 0x76, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x6c, 0x72, 0x65,
	0x61, 0x64, 0x79, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0x7e, 0x0a, 0x0e, 0x4f,
	0x75, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x61, 0x6c, 0x1a, 0x45, 0x0a,
	0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x75, 0x62, 0x6c, 0x69,
	0x63, 0x4b, 0x65, 0x79, 0x1a, 0x25, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a,
	0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x22, 0xbe, 0x02, 0x0a, 0x23,
	0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x43,
	0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
	0x72, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b,
	0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74,
	0x69, 0x74, 0x79, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x49, 0x64, 0x65, 0x6e,
	0x74, 0x69, 0x74, 0x79, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x2f, 0x0a,
	0x13, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e,
	0x74, 0x69, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x65, 0x72, 0x69,
	0x66, 0x69, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x2b,
	0x0a, 0x11, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64,
	0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x72, 0x65, 0x67, 0x69, 0x73,
	0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65,
	0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69,
	0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69,
	0x66, 0x69, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x22, 0x3d, 0x0a, 0x11,
	0x46, 0x69, 0x72, 0x73, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72,
	0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x61, 0x73, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x6c, 0x61, 0x73, 0x74, 0x22, 0xc4, 0x01, 0x0a, 0x13,
	0x4f, 0x72, 0x62, 0x69, 0x74, 0x44, 0x42, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65,
	0x61, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x62, 0x6f,
	0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x42,
	0x6f, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x61, 0x77, 0x5f, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x61, 0x77, 0x52, 0x6f, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x6b, 0x0a, 0x03, 0x42, 0x6f, 0x78, 0x12, 0x18, 0x0a, 0x07,
	0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61,
	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x65, 0x61, 0x64, 0x73, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x68, 0x65, 0x61, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09,
	0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72,
	0x49, 0x64, 0x22, 0xe4, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x6f,
	0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x0a, 0x04,
	0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x1a, 0x42, 0x0a, 0x07, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x5f, 0x70, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x50, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0x59,
	0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x50, 0x0a, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x73,
	0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x77,
	0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x0a, 0x70,
	0x65, 0x65, 0x72, 0x73, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x2a, 0x69, 0x0a, 0x09, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54,
	0x79, 0x70, 0x65, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14,
	0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70,
	0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62,
	0x65, 0x72, 0x10, 0x03, 0x2a, 0xba, 0x07, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x55,
	0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62,
	0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x64, 0x64, 0x65, 0x64, 0x10, 0x01, 0x12,
	0x25, 0x0a, 0x21, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x41,
	0x64, 0x64, 0x65, 0x64, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54,
	0x79, 0x70, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a,
	0x6f, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x54, 0x79, 0x70, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x4c, 0x65, 0x66, 0x74, 0x10, 0x66, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54,
	0x79, 0x70, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x10, 0x67, 0x12, 0x29, 0x0a, 0x25, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x68, 0x12, 0x30, 0x0a,
	0x2c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52,
	0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, 0x69, 0x12,
	0x32, 0x0a, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x41, 0x63, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65,
	0x64, 0x10, 0x6a, 0x12, 0x2e, 0x0a, 0x2a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
	0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x6e,
	0x74, 0x10, 0x6b, 0x12, 0x32, 0x0a, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
	0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63,
	0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x6c, 0x12, 0x33, 0x0a, 0x2f, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x54, 0x79, 0x70, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e,
	0x67, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x65, 0x64, 0x10, 0x6d, 0x12, 0x32, 0x0a, 0x2e,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e,
	0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x10, 0x6e,
	0x12, 0x22, 0x0a, 0x1e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x41, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
	0x65, 0x64, 0x10, 0x6f, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
	0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x55,
	0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x70, 0x12, 0x22, 0x0a, 0x1d, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x41, 0x6c,
	0x69, 0x61, 0x73, 0x4b, 0x65, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x10, 0xc9, 0x01, 0x12, 0x30,
	0x0a, 0x2b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69,
	0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x69, 0x61, 0x73,
	0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x10, 0xad, 0x02,
	0x12, 0x34, 0x0a, 0x2f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x75, 0x6c,
	0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x69,
	0x74, 0x69, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e,
	0x63, 0x65, 0x64, 0x10, 0xae, 0x02, 0x12, 0x2e, 0x0a, 0x29, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54,
	0x79, 0x70, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x47, 0x72, 0x61, 0x6e,
	0x74, 0x65, 0x64, 0x10, 0xaf, 0x02, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54,
	0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6e, 0x67, 0x10, 0x93, 0x03, 0x12, 0x31, 0x0a, 0x2c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54,
	0x79, 0x70, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69,
	0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69,
	0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x10, 0xf4, 0x03, 0x12, 0x26, 0x0a, 0x21, 0x45, 0x76, 0x65,
	0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6e, 0x74, 0x10, 0xe9,
	0x07, 0x2a, 0x8c, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x73, 0x70, 0x65,
	0x63, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25,
	0x0a, 0x21, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69,
	0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e,
	0x73, 0x70, 0x65, 0x63, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70,
	0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x44, 0x65,
	0x62, 0x75, 0x67, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c,
	0x6f, 0x67, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x10, 0x02,
	0x2a, 0xc2, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15,
	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10,
	0x02, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x41, 0x64, 0x64, 0x65, 0x64, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74,
	0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x10,
	0x04, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x65, 0x64, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13,
	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63,
	0x6b, 0x65, 0x64, 0x10, 0x06, 0x2a, 0x47, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x69, 0x72,
	0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x69, 0x72,
	0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x69,
	0x72, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x69, 0x44, 0x69, 0x72, 0x10, 0x03, 0x32, 0xdd,
	0x26, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x12, 0x73, 0x0a, 0x11, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x70,
	0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65,
	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x2e,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65,
	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x2e,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x72, 0x76,
	0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x34, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x77, 0x65, 0x73, 0x68,
	0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x83, 0x01,
	0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x2e, 0x77, 0x65, 0x73, 0x68,
	0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e,
	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65,
	0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x32, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x52, 0x65,
	0x70, 0x6c, 0x79, 0x12, 0x7d, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x32, 0x2e, 0x77,
	0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x30, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x70,
	0x6c, 0x79, 0x12, 0x7a, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x31, 0x2e, 0x77, 0x65, 0x73,
	0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31,
	0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e,
	0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x92,
	0x01, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12,
	0x39, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
	0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x77, 0x65, 0x73,
	0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31,
	0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52,
	0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x52, 0x65,
	0x70, 0x6c, 0x79, 0x12, 0x74, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x2f, 0x2e, 0x77, 0x65, 0x73, 0x68,
	0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e,
	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x65,
	0x6e, 0x64, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x77, 0x65, 0x73,
	0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31,
	0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53,
	0x65, 0x6e, 0x64, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x7a, 0x0a, 0x14, 0x43, 0x6f, 0x6e,
	0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x63, 0x63, 0x65, 0x70,
	0x74, 0x12, 0x31, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2e, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2e,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x7d, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x12, 0x32,
	0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x30, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x12, 0x62, 0x0a, 0x0c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e,
	0x74, 0x61, 0x63, 0x74, 0x12, 0x29, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65,
	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x27, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x65, 0x0a, 0x0d, 0x44, 0x65, 0x63, 0x6f,
	0x64, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x2a, 0x2e, 0x77, 0x65, 0x73, 0x68,
	0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e,
	0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x2e, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x6f,
	0x64, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
	0x62, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12,
	0x29, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x77, 0x65, 0x73,
	0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31,
	0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x52, 0x65,
	0x70, 0x6c, 0x79, 0x12, 0x68, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x55, 0x6e,
	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x2b, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74,
	0x61, 0x63, 0x74, 0x55, 0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x29, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x55, 0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x77, 0x0a,
	0x13, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4b, 0x65, 0x79,
	0x53, 0x65, 0x6e, 0x64, 0x12, 0x30, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x2e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e,
	0x74, 0x61, 0x63, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6e, 0x64,
	0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x80, 0x01, 0x0a, 0x16, 0x4d, 0x75, 0x6c, 0x74, 0x69,
	0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x12, 0x33, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d,
	0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c,
	0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x7a, 0x0a, 0x14, 0x4d, 0x75, 0x6c,
	0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69,
	0x6e, 0x12, 0x31, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d,
	0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69,
	0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x2e,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x7d, 0x0a, 0x15, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65,
	0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x32,
	0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x30, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65,
	0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x2e, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x12, 0xad, 0x01, 0x0a, 0x25, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65,
	0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65,
	0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x42,
	0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76,
	0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x40, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65,
	0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65,
	0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x2e, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x12, 0x98, 0x01, 0x0a, 0x1e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65,
	0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x6f,
	0x6c, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x3b, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65,
	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75,
	0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64,
	0x6d, 0x69, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69,
	0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e,
	0x52, 0x6f, 0x6c, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
	0x9e, 0x01, 0x0a, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69,
	0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d,
	0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79,
	0x12, 0x6b, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53,
	0x65, 0x6e, 0x64, 0x12, 0x2c, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x4d, 0x65, 0x74,
	0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x6e, 0x64, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x2a, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x53, 0x65, 0x6e, 0x64, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x68, 0x0a,
	0x0e, 0x41, 0x70, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x12,
	0x2b, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
	0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x53, 0x65, 0x6e, 0x64, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x77,
	0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e,
	0x64, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x6e, 0x0a, 0x11, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, 0x77,
	0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x4c, 0x69, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x77,
	0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x77, 0x65,
	0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76,
	0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69,
	0x73, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x77, 0x65, 0x73,
	0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31,
	0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x76, 0x65,
	0x6e, 0x74, 0x30, 0x01, 0x12, 0x59, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66,
	0x6f, 0x12, 0x26, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66,
	0x6f, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x77, 0x65, 0x73, 0x68,
	0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
	0x65, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x12, 0x2a, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x77,
	0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x6b, 0x0a, 0x0f, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69,
	0x76, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2c, 0x2e, 0x77, 0x65, 0x73, 0x68,
	0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e,
	0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65,
	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
	0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65,
	0x70, 0x6c, 0x79, 0x12, 0x73, 0x0a, 0x11, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e,
	0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e,
	0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x0f, 0x44, 0x65, 0x62, 0x75,
	0x67, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2c, 0x2e, 0x77, 0x65,
	0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76,
	0x31, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x77, 0x65, 0x73, 0x68,
	0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e,
	0x44, 0x65, 0x62, 0x75, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2e,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x30, 0x01, 0x12, 0x82, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x62, 0x75,
	0x67, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x6f,
	0x72, 0x65, 0x12, 0x33, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e,
	0x73, 0x70, 0x65, 0x63, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x2e,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65,
	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
	0x62, 0x75, 0x67, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53,
	0x74, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x30, 0x01, 0x12, 0x5c, 0x0a, 0x0a,
	0x44, 0x65, 0x62, 0x75, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x27, 0x2e, 0x77, 0x65, 0x73,
	0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31,
	0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x5c, 0x0a, 0x0a, 0x53, 0x79,
	0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e,
	0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x25, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e,
	0x66, 0x6f, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0xad, 0x01, 0x0a, 0x25, 0x43, 0x72, 0x65,
	0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x6c,
	0x6f, 0x77, 0x12, 0x42, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74,
	0x69, 0x61, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x2e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65,
	0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x6c,
	0x6f, 0x77, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0xb9, 0x01, 0x0a, 0x29, 0x43, 0x72, 0x65,
	0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65,
	0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x46, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65,
	0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65,
	0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x44,
	0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56,
	0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x2e, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x12, 0x85, 0x01, 0x0a, 0x17, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65,
	0x64, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x4c, 0x69, 0x73, 0x74,
	0x12, 0x34, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x43,
	0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72,
	0x69, 0x66, 0x69, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73,
	0x4c, 0x69, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x30, 0x01, 0x12, 0x9b, 0x01, 0x0a,
	0x1f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76,
	0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x12, 0x3c, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
	0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a,
	0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
	0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x56, 0x0a, 0x08, 0x50, 0x65,
	0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x65,
	0x72, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e,
	0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
	0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x70,
	0x6c, 0x79, 0x12, 0x71, 0x0a, 0x11, 0x4f, 0x75, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x6f, 0x72, 0x65,
	0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x12, 0x2e, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65,
	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75,
	0x74, 0x4f, 0x66, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x2e,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65,
	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75,
	0x74, 0x4f, 0x66, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x2e,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x68, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x4f, 0x66, 0x53, 0x74,
	0x6f, 0x72, 0x65, 0x53, 0x65, 0x61, 0x6c, 0x12, 0x2b, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65,
	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75,
	0x74, 0x4f, 0x66, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x4f, 0x66,
	0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
	0x7d, 0x0a, 0x15, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x2e, 0x77, 0x65, 0x73, 0x68, 0x6e,
	0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52,
	0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x77,
	0x65, 0x73, 0x68, 0x6e, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e,
	0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x29,
	0x5a, 0x27, 0x62, 0x65, 0x72, 0x74, 0x79, 0x2e, 0x74, 0x65, 0x63, 0x68, 0x2f, 0x77, 0x65, 0x73,
	0x68, 0x6e, 0x65, 0x74, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x63, 0x6f, 0x6c, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x33,
}

var (
	file_protocoltypes_proto_rawDescOnce sync.Once
	file_protocoltypes_proto_rawDescData = file_protocoltypes_proto_rawDesc
)

func file_protocoltypes_proto_rawDescGZIP() []byte {
	file_protocoltypes_proto_rawDescOnce.Do(func() {
		file_protocoltypes_proto_rawDescData = protoimpl.X.CompressGZIP(file_protocoltypes_proto_rawDescData)
	})
	return file_protocoltypes_proto_rawDescData
}

var file_protocoltypes_proto_enumTypes = make([]protoimpl.EnumInfo, 9)
var file_protocoltypes_proto_msgTypes = make([]protoimpl.MessageInfo, 178)
var file_protocoltypes_proto_goTypes = []any{
	(GroupType)(0),                                            // 0: weshnet.protocol.v1.GroupType
	(EventType)(0),                                            // 1: weshnet.protocol.v1.EventType
	(DebugInspectGroupLogType)(0),                             // 2: weshnet.protocol.v1.DebugInspectGroupLogType
	(ContactState)(0),                                         // 3: weshnet.protocol.v1.ContactState
	(Direction)(0),                                            // 4: weshnet.protocol.v1.Direction
	(ServiceGetConfiguration_SettingState)(0),                 // 5: weshnet.protocol.v1.ServiceGetConfiguration.SettingState
	(GroupDeviceStatus_Type)(0),                               // 6: weshnet.protocol.v1.GroupDeviceStatus.Type
	(GroupDeviceStatus_Transport)(0),                          // 7: weshnet.protocol.v1.GroupDeviceStatus.Transport
	(PeerList_Feature)(0),                                     // 8: weshnet.protocol.v1.PeerList.Feature
	(*Account)(nil),                                           // 9: weshnet.protocol.v1.Account
	(*Group)(nil),                                             // 10: weshnet.protocol.v1.Group
	(*GroupHeadsExport)(nil),                                  // 11: weshnet.protocol.v1.GroupHeadsExport
	(*GroupMetadata)(nil),                                     // 12: weshnet.protocol.v1.GroupMetadata
	(*GroupEnvelope)(nil),                                     // 13: weshnet.protocol.v1.GroupEnvelope
	(*MessageHeaders)(nil),                                    // 14: weshnet.protocol.v1.MessageHeaders
	(*ProtocolMetadata)(nil),                                  // 15: weshnet.protocol.v1.ProtocolMetadata
	(*EncryptedMessage)(nil),                                  // 16: weshnet.protocol.v1.EncryptedMessage
	(*MessageEnvelope)(nil),                                   // 17: weshnet.protocol.v1.MessageEnvelope
	(*EventContext)(nil),                                      // 18: weshnet.protocol.v1.EventContext
	(*GroupMetadataPayloadSent)(nil),                          // 19: weshnet.protocol.v1.GroupMetadataPayloadSent
	(*ContactAliasKeyAdded)(nil),                              // 20: weshnet.protocol.v1.ContactAliasKeyAdded
	(*GroupMemberDeviceAdded)(nil),                            // 21: weshnet.protocol.v1.GroupMemberDeviceAdded
	(*DeviceChainKey)(nil),                                    // 22: weshnet.protocol.v1.DeviceChainKey
	(*GroupDeviceChainKeyAdded)(nil),                          // 23: weshnet.protocol.v1.GroupDeviceChainKeyAdded
	(*MultiMemberGroupAliasResolverAdded)(nil),                // 24: weshnet.protocol.v1.MultiMemberGroupAliasResolverAdded
	(*MultiMemberGroupAdminRoleGranted)(nil),                  // 25: weshnet.protocol.v1.MultiMemberGroupAdminRoleGranted
	(*MultiMemberGroupInitialMemberAnnounced)(nil),            // 26: weshnet.protocol.v1.MultiMemberGroupInitialMemberAnnounced
	(*GroupAddAdditionalRendezvousSeed)(nil),                  // 27: weshnet.protocol.v1.GroupAddAdditionalRendezvousSeed
	(*GroupRemoveAdditionalRendezvousSeed)(nil),               // 28: weshnet.protocol.v1.GroupRemoveAdditionalRendezvousSeed
	(*AccountGroupJoined)(nil),                                // 29: weshnet.protocol.v1.AccountGroupJoined
	(*AccountGroupLeft)(nil),                                  // 30: weshnet.protocol.v1.AccountGroupLeft
	(*AccountContactRequestDisabled)(nil),                     // 31: weshnet.protocol.v1.AccountContactRequestDisabled
	(*AccountContactRequestEnabled)(nil),                      // 32: weshnet.protocol.v1.AccountContactRequestEnabled
	(*AccountContactRequestReferenceReset)(nil),               // 33: weshnet.protocol.v1.AccountContactRequestReferenceReset
	(*AccountContactRequestOutgoingEnqueued)(nil),             // 34: weshnet.protocol.v1.AccountContactRequestOutgoingEnqueued
	(*AccountContactRequestOutgoingSent)(nil),                 // 35: weshnet.protocol.v1.AccountContactRequestOutgoingSent
	(*AccountContactRequestIncomingReceived)(nil),             // 36: weshnet.protocol.v1.AccountContactRequestIncomingReceived
	(*AccountContactRequestIncomingDiscarded)(nil),            // 37: weshnet.protocol.v1.AccountContactRequestIncomingDiscarded
	(*AccountContactRequestIncomingAccepted)(nil),             // 38: weshnet.protocol.v1.AccountContactRequestIncomingAccepted
	(*AccountContactBlocked)(nil),                             // 39: weshnet.protocol.v1.AccountContactBlocked
	(*AccountContactUnblocked)(nil),                           // 40: weshnet.protocol.v1.AccountContactUnblocked
	(*GroupReplicating)(nil),                                  // 41: weshnet.protocol.v1.GroupReplicating
	(*ServiceExportData)(nil),                                 // 42: weshnet.protocol.v1.ServiceExportData
	(*ServiceGetConfiguration)(nil),                           // 43: weshnet.protocol.v1.ServiceGetConfiguration
	(*ContactRequestReference)(nil),                           // 44: weshnet.protocol.v1.ContactRequestReference
	(*ContactRequestDisable)(nil),                             // 45: weshnet.protocol.v1.ContactRequestDisable
	(*ContactRequestEnable)(nil),                              // 46: weshnet.protocol.v1.ContactRequestEnable
	(*ContactRequestResetReference)(nil),                      // 47: weshnet.protocol.v1.ContactRequestResetReference
	(*ContactRequestSend)(nil),                                // 48: weshnet.protocol.v1.ContactRequestSend
	(*ContactRequestAccept)(nil),                              // 49: weshnet.protocol.v1.ContactRequestAccept
	(*ContactRequestDiscard)(nil),                             // 50: weshnet.protocol.v1.ContactRequestDiscard
	(*ShareContact)(nil),                                      // 51: weshnet.protocol.v1.ShareContact
	(*DecodeContact)(nil),                                     // 52: weshnet.protocol.v1.DecodeContact
	(*ContactBlock)(nil),                                      // 53: weshnet.protocol.v1.ContactBlock
	(*ContactUnblock)(nil),                                    // 54: weshnet.protocol.v1.ContactUnblock
	(*ContactAliasKeySend)(nil),                               // 55: weshnet.protocol.v1.ContactAliasKeySend
	(*MultiMemberGroupCreate)(nil),                            // 56: weshnet.protocol.v1.MultiMemberGroupCreate
	(*MultiMemberGroupJoin)(nil),                              // 57: weshnet.protocol.v1.MultiMemberGroupJoin
	(*MultiMemberGroupLeave)(nil),                             // 58: weshnet.protocol.v1.MultiMemberGroupLeave
	(*MultiMemberGroupAliasResolverDisclose)(nil),             // 59: weshnet.protocol.v1.MultiMemberGroupAliasResolverDisclose
	(*MultiMemberGroupAdminRoleGrant)(nil),                    // 60: weshnet.protocol.v1.MultiMemberGroupAdminRoleGrant
	(*MultiMemberGroupInvitationCreate)(nil),                  // 61: weshnet.protocol.v1.MultiMemberGroupInvitationCreate
	(*AppMetadataSend)(nil),                                   // 62: weshnet.protocol.v1.AppMetadataSend
	(*AppMessageSend)(nil),                                    // 63: weshnet.protocol.v1.AppMessageSend
	(*GroupMetadataEvent)(nil),                                // 64: weshnet.protocol.v1.GroupMetadataEvent
	(*GroupMessageEvent)(nil),                                 // 65: weshnet.protocol.v1.GroupMessageEvent
	(*GroupMetadataList)(nil),                                 // 66: weshnet.protocol.v1.GroupMetadataList
	(*GroupMessageList)(nil),                                  // 67: weshnet.protocol.v1.GroupMessageList
	(*GroupInfo)(nil),                                         // 68: weshnet.protocol.v1.GroupInfo
	(*ActivateGroup)(nil),                                     // 69: weshnet.protocol.v1.ActivateGroup
	(*DeactivateGroup)(nil),                                   // 70: weshnet.protocol.v1.DeactivateGroup
	(*GroupDeviceStatus)(nil),                                 // 71: weshnet.protocol.v1.GroupDeviceStatus
	(*DebugListGroups)(nil),                                   // 72: weshnet.protocol.v1.DebugListGroups
	(*DebugInspectGroupStore)(nil),                            // 73: weshnet.protocol.v1.DebugInspectGroupStore
	(*DebugGroup)(nil),                                        // 74: weshnet.protocol.v1.DebugGroup
	(*ShareableContact)(nil),                                  // 75: weshnet.protocol.v1.ShareableContact
	(*ServiceTokenSupportedService)(nil),                      // 76: weshnet.protocol.v1.ServiceTokenSupportedService
	(*ServiceToken)(nil),                                      // 77: weshnet.protocol.v1.ServiceToken
	(*CredentialVerificationServiceInitFlow)(nil),             // 78: weshnet.protocol.v1.CredentialVerificationServiceInitFlow
	(*CredentialVerificationServiceCompleteFlow)(nil),         // 79: weshnet.protocol.v1.CredentialVerificationServiceCompleteFlow
	(*VerifiedCredentialsList)(nil),                           // 80: weshnet.protocol.v1.VerifiedCredentialsList
	(*ReplicationServiceRegisterGroup)(nil),                   // 81: weshnet.protocol.v1.ReplicationServiceRegisterGroup
	(*ReplicationServiceReplicateGroup)(nil),                  // 82: weshnet.protocol.v1.ReplicationServiceReplicateGroup
	(*SystemInfo)(nil),                                        // 83: weshnet.protocol.v1.SystemInfo
	(*PeerList)(nil),                                          // 84: weshnet.protocol.v1.PeerList
	(*Progress)(nil),                                          // 85: weshnet.protocol.v1.Progress
	(*OutOfStoreMessage)(nil),                                 // 86: weshnet.protocol.v1.OutOfStoreMessage
	(*OutOfStoreMessageEnvelope)(nil),                         // 87: weshnet.protocol.v1.OutOfStoreMessageEnvelope
	(*OutOfStoreReceive)(nil),                                 // 88: weshnet.protocol.v1.OutOfStoreReceive
	(*OutOfStoreSeal)(nil),                                    // 89: weshnet.protocol.v1.OutOfStoreSeal
	(*AccountVerifiedCredentialRegistered)(nil),               // 90: weshnet.protocol.v1.AccountVerifiedCredentialRegistered
	(*FirstLastCounters)(nil),                                 // 91: weshnet.protocol.v1.FirstLastCounters
	(*OrbitDBMessageHeads)(nil),                               // 92: weshnet.protocol.v1.OrbitDBMessageHeads
	(*RefreshContactRequest)(nil),                             // 93: weshnet.protocol.v1.RefreshContactRequest
	nil,                                                       // 94: weshnet.protocol.v1.MessageHeaders.MetadataEntry
	(*ServiceExportData_Request)(nil),                         // 95: weshnet.protocol.v1.ServiceExportData.Request
	(*ServiceExportData_Reply)(nil),                           // 96: weshnet.protocol.v1.ServiceExportData.Reply
	(*ServiceGetConfiguration_Request)(nil),                   // 97: weshnet.protocol.v1.ServiceGetConfiguration.Request
	(*ServiceGetConfiguration_Reply)(nil),                     // 98: weshnet.protocol.v1.ServiceGetConfiguration.Reply
	(*ContactRequestReference_Request)(nil),                   // 99: weshnet.protocol.v1.ContactRequestReference.Request
	(*ContactRequestReference_Reply)(nil),                     // 100: weshnet.protocol.v1.ContactRequestReference.Reply
	(*ContactRequestDisable_Request)(nil),                     // 101: weshnet.protocol.v1.ContactRequestDisable.Request
	(*ContactRequestDisable_Reply)(nil),                       // 102: weshnet.protocol.v1.ContactRequestDisable.Reply
	(*ContactRequestEnable_Request)(nil),                      // 103: weshnet.protocol.v1.ContactRequestEnable.Request
	(*ContactRequestEnable_Reply)(nil),                        // 104: weshnet.protocol.v1.ContactRequestEnable.Reply
	(*ContactRequestResetReference_Request)(nil),              // 105: weshnet.protocol.v1.ContactRequestResetReference.Request
	(*ContactRequestResetReference_Reply)(nil),                // 106: weshnet.protocol.v1.ContactRequestResetReference.Reply
	(*ContactRequestSend_Request)(nil),                        // 107: weshnet.protocol.v1.ContactRequestSend.Request
	(*ContactRequestSend_Reply)(nil),                          // 108: weshnet.protocol.v1.ContactRequestSend.Reply
	(*ContactRequestAccept_Request)(nil),                      // 109: weshnet.protocol.v1.ContactRequestAccept.Request
	(*ContactRequestAccept_Reply)(nil),                        // 110: weshnet.protocol.v1.ContactRequestAccept.Reply
	(*ContactRequestDiscard_Request)(nil),                     // 111: weshnet.protocol.v1.ContactRequestDiscard.Request
	(*ContactRequestDiscard_Reply)(nil),                       // 112: weshnet.protocol.v1.ContactRequestDiscard.Reply
	(*ShareContact_Request)(nil),                              // 113: weshnet.protocol.v1.ShareContact.Request
	(*ShareContact_Reply)(nil),                                // 114: weshnet.protocol.v1.ShareContact.Reply
	(*DecodeContact_Request)(nil),                             // 115: weshnet.protocol.v1.DecodeContact.Request
	(*DecodeContact_Reply)(nil),                               // 116: weshnet.protocol.v1.DecodeContact.Reply
	(*ContactBlock_Request)(nil),                              // 117: weshnet.protocol.v1.ContactBlock.Request
	(*ContactBlock_Reply)(nil),                                // 118: weshnet.protocol.v1.ContactBlock.Reply
	(*ContactUnblock_Request)(nil),                            // 119: weshnet.protocol.v1.ContactUnblock.Request
	(*ContactUnblock_Reply)(nil),                              // 120: weshnet.protocol.v1.ContactUnblock.Reply
	(*ContactAliasKeySend_Request)(nil),                       // 121: weshnet.protocol.v1.ContactAliasKeySend.Request
	(*ContactAliasKeySend_Reply)(nil),                         // 122: weshnet.protocol.v1.ContactAliasKeySend.Reply
	(*MultiMemberGroupCreate_Request)(nil),                    // 123: weshnet.protocol.v1.MultiMemberGroupCreate.Request
	(*MultiMemberGroupCreate_Reply)(nil),                      // 124: weshnet.protocol.v1.MultiMemberGroupCreate.Reply
	(*MultiMemberGroupJoin_Request)(nil),                      // 125: weshnet.protocol.v1.MultiMemberGroupJoin.Request
	(*MultiMemberGroupJoin_Reply)(nil),                        // 126: weshnet.protocol.v1.MultiMemberGroupJoin.Reply
	(*MultiMemberGroupLeave_Request)(nil),                     // 127: weshnet.protocol.v1.MultiMemberGroupLeave.Request
	(*MultiMemberGroupLeave_Reply)(nil),                       // 128: weshnet.protocol.v1.MultiMemberGroupLeave.Reply
	(*MultiMemberGroupAliasResolverDisclose_Request)(nil),     // 129: weshnet.protocol.v1.MultiMemberGroupAliasResolverDisclose.Request
	(*MultiMemberGroupAliasResolverDisclose_Reply)(nil),       // 130: weshnet.protocol.v1.MultiMemberGroupAliasResolverDisclose.Reply
	(*MultiMemberGroupAdminRoleGrant_Request)(nil),            // 131: weshnet.protocol.v1.MultiMemberGroupAdminRoleGrant.Request
	(*MultiMemberGroupAdminRoleGrant_Reply)(nil),              // 132: weshnet.protocol.v1.MultiMemberGroupAdminRoleGrant.Reply
	(*MultiMemberGroupInvitationCreate_Request)(nil),          // 133: weshnet.protocol.v1.MultiMemberGroupInvitationCreate.Request
	(*MultiMemberGroupInvitationCreate_Reply)(nil),            // 134: weshnet.protocol.v1.MultiMemberGroupInvitationCreate.Reply
	(*AppMetadataSend_Request)(nil),                           // 135: weshnet.protocol.v1.AppMetadataSend.Request
	(*AppMetadataSend_Reply)(nil),                             // 136: weshnet.protocol.v1.AppMetadataSend.Reply
	(*AppMessageSend_Request)(nil),                            // 137: weshnet.protocol.v1.AppMessageSend.Request
	(*AppMessageSend_Reply)(nil),                              // 138: weshnet.protocol.v1.AppMessageSend.Reply
	(*GroupMetadataList_Request)(nil),                         // 139: weshnet.protocol.v1.GroupMetadataList.Request
	(*GroupMessageList_Request)(nil),                          // 140: weshnet.protocol.v1.GroupMessageList.Request
	(*GroupInfo_Request)(nil),                                 // 141: weshnet.protocol.v1.GroupInfo.Request
	(*GroupInfo_Reply)(nil),                                   // 142: weshnet.protocol.v1.GroupInfo.Reply
	(*ActivateGroup_Request)(nil),                             // 143: weshnet.protocol.v1.ActivateGroup.Request
	(*ActivateGroup_Reply)(nil),                               // 144: weshnet.protocol.v1.ActivateGroup.Reply
	(*DeactivateGroup_Request)(nil),                           // 145: weshnet.protocol.v1.DeactivateGroup.Request
	(*DeactivateGroup_Reply)(nil),                             // 146: weshnet.protocol.v1.DeactivateGroup.Reply
	(*GroupDeviceStatus_Request)(nil),                         // 147: weshnet.protocol.v1.GroupDeviceStatus.Request
	(*GroupDeviceStatus_Reply)(nil),                           // 148: weshnet.protocol.v1.GroupDeviceStatus.Reply
	(*GroupDeviceStatus_Reply_PeerConnected)(nil),             // 149: weshnet.protocol.v1.GroupDeviceStatus.Reply.PeerConnected
	(*GroupDeviceStatus_Reply_PeerReconnecting)(nil),          // 150: weshnet.protocol.v1.GroupDeviceStatus.Reply.PeerReconnecting
	(*GroupDeviceStatus_Reply_PeerDisconnected)(nil),          // 151: weshnet.protocol.v1.GroupDeviceStatus.Reply.PeerDisconnected
	(*DebugListGroups_Request)(nil),                           // 152: weshnet.protocol.v1.DebugListGroups.Request
	(*DebugListGroups_Reply)(nil),                             // 153: weshnet.protocol.v1.DebugListGroups.Reply
	(*DebugInspectGroupStore_Request)(nil),                    // 154: weshnet.protocol.v1.DebugInspectGroupStore.Request
	(*DebugInspectGroupStore_Reply)(nil),                      // 155: weshnet.protocol.v1.DebugInspectGroupStore.Reply
	(*DebugGroup_Request)(nil),                                // 156: weshnet.protocol.v1.DebugGroup.Request
	(*DebugGroup_Reply)(nil),                                  // 157: weshnet.protocol.v1.DebugGroup.Reply
	(*CredentialVerificationServiceInitFlow_Request)(nil),     // 158: weshnet.protocol.v1.CredentialVerificationServiceInitFlow.Request
	(*CredentialVerificationServiceInitFlow_Reply)(nil),       // 159: weshnet.protocol.v1.CredentialVerificationServiceInitFlow.Reply
	(*CredentialVerificationServiceCompleteFlow_Request)(nil), // 160: weshnet.protocol.v1.CredentialVerificationServiceCompleteFlow.Request
	(*CredentialVerificationServiceCompleteFlow_Reply)(nil),   // 161: weshnet.protocol.v1.CredentialVerificationServiceCompleteFlow.Reply
	(*VerifiedCredentialsList_Request)(nil),                   // 162: weshnet.protocol.v1.VerifiedCredentialsList.Request
	(*VerifiedCredentialsList_Reply)(nil),                     // 163: weshnet.protocol.v1.VerifiedCredentialsList.Reply
	(*ReplicationServiceRegisterGroup_Request)(nil),           // 164: weshnet.protocol.v1.ReplicationServiceRegisterGroup.Request
	(*ReplicationServiceRegisterGroup_Reply)(nil),             // 165: weshnet.protocol.v1.ReplicationServiceRegisterGroup.Reply
	(*ReplicationServiceReplicateGroup_Request)(nil),          // 166: weshnet.protocol.v1.ReplicationServiceReplicateGroup.Request
	(*ReplicationServiceReplicateGroup_Reply)(nil),            // 167: weshnet.protocol.v1.ReplicationServiceReplicateGroup.Reply
	(*SystemInfo_Request)(nil),                                // 168: weshnet.protocol.v1.SystemInfo.Request
	(*SystemInfo_Reply)(nil),                                  // 169: weshnet.protocol.v1.SystemInfo.Reply
	(*SystemInfo_OrbitDB)(nil),                                // 170: weshnet.protocol.v1.SystemInfo.OrbitDB
	(*SystemInfo_P2P)(nil),                                    // 171: weshnet.protocol.v1.SystemInfo.P2P
	(*SystemInfo_Process)(nil),                                // 172: weshnet.protocol.v1.SystemInfo.Process
	(*SystemInfo_OrbitDB_ReplicationStatus)(nil),              // 173: weshnet.protocol.v1.SystemInfo.OrbitDB.ReplicationStatus
	(*PeerList_Request)(nil),                                  // 174: weshnet.protocol.v1.PeerList.Request
	(*PeerList_Reply)(nil),                                    // 175: weshnet.protocol.v1.PeerList.Reply
	(*PeerList_Peer)(nil),                                     // 176: weshnet.protocol.v1.PeerList.Peer
	(*PeerList_Route)(nil),                                    // 177: weshnet.protocol.v1.PeerList.Route
	(*PeerList_Stream)(nil),                                   // 178: weshnet.protocol.v1.PeerList.Stream
	(*OutOfStoreReceive_Request)(nil),                         // 179: weshnet.protocol.v1.OutOfStoreReceive.Request
	(*OutOfStoreReceive_Reply)(nil),                           // 180: weshnet.protocol.v1.OutOfStoreReceive.Reply
	(*OutOfStoreSeal_Request)(nil),                            // 181: weshnet.protocol.v1.OutOfStoreSeal.Request
	(*OutOfStoreSeal_Reply)(nil),                              // 182: weshnet.protocol.v1.OutOfStoreSeal.Reply
	(*OrbitDBMessageHeads_Box)(nil),                           // 183: weshnet.protocol.v1.OrbitDBMessageHeads.Box
	(*RefreshContactRequest_Peer)(nil),                        // 184: weshnet.protocol.v1.RefreshContactRequest.Peer
	(*RefreshContactRequest_Request)(nil),                     // 185: weshnet.protocol.v1.RefreshContactRequest.Request
	(*RefreshContactRequest_Reply)(nil),                       // 186: weshnet.protocol.v1.RefreshContactRequest.Reply
}
var file_protocoltypes_proto_depIdxs = []int32{
	10,  // 0: weshnet.protocol.v1.Account.group:type_name -> weshnet.protocol.v1.Group
	0,   // 1: weshnet.protocol.v1.Group.group_type:type_name -> weshnet.protocol.v1.GroupType
	1,   // 2: weshnet.protocol.v1.GroupMetadata.event_type:type_name -> weshnet.protocol.v1.EventType
	15,  // 3: weshnet.protocol.v1.GroupMetadata.protocol_metadata:type_name -> weshnet.protocol.v1.ProtocolMetadata
	94,  // 4: weshnet.protocol.v1.MessageHeaders.metadata:type_name -> weshnet.protocol.v1.MessageHeaders.MetadataEntry
	15,  // 5: weshnet.protocol.v1.EncryptedMessage.protocol_metadata:type_name -> weshnet.protocol.v1.ProtocolMetadata
	10,  // 6: weshnet.protocol.v1.AccountGroupJoined.group:type_name -> weshnet.protocol.v1.Group
	75,  // 7: weshnet.protocol.v1.AccountContactRequestOutgoingEnqueued.contact:type_name -> weshnet.protocol.v1.ShareableContact
	18,  // 8: weshnet.protocol.v1.GroupMetadataEvent.event_context:type_name -> weshnet.protocol.v1.EventContext
	12,  // 9: weshnet.protocol.v1.GroupMetadataEvent.metadata:type_name -> weshnet.protocol.v1.GroupMetadata
	18,  // 10: weshnet.protocol.v1.GroupMessageEvent.event_context:type_name -> weshnet.protocol.v1.EventContext
	14,  // 11: weshnet.protocol.v1.GroupMessageEvent.headers:type_name -> weshnet.protocol.v1.MessageHeaders
	76,  // 12: weshnet.protocol.v1.ServiceToken.supported_services:type_name -> weshnet.protocol.v1.ServiceTokenSupportedService
	5,   // 13: weshnet.protocol.v1.ServiceGetConfiguration.Reply.ble_enabled:type_name -> weshnet.protocol.v1.ServiceGetConfiguration.SettingState
	5,   // 14: weshnet.protocol.v1.ServiceGetConfiguration.Reply.wifi_p2p_enabled:type_name -> weshnet.protocol.v1.ServiceGetConfiguration.SettingState
	5,   // 15: weshnet.protocol.v1.ServiceGetConfiguration.Reply.mdns_enabled:type_name -> weshnet.protocol.v1.ServiceGetConfiguration.SettingState
	5,   // 16: weshnet.protocol.v1.ServiceGetConfiguration.Reply.relay_enabled:type_name -> weshnet.protocol.v1.ServiceGetConfiguration.SettingState
	75,  // 17: weshnet.protocol.v1.ContactRequestSend.Request.contact:type_name -> weshnet.protocol.v1.ShareableContact
	75,  // 18: weshnet.protocol.v1.DecodeContact.Reply.contact:type_name -> weshnet.protocol.v1.ShareableContact
	10,  // 19: weshnet.protocol.v1.MultiMemberGroupJoin.Request.group:type_name -> weshnet.protocol.v1.Group
	10,  // 20: weshnet.protocol.v1.MultiMemberGroupInvitationCreate.Reply.group:type_name -> weshnet.protocol.v1.Group
	10,  // 21: weshnet.protocol.v1.GroupInfo.Reply.group:type_name -> weshnet.protocol.v1.Group
	6,   // 22: weshnet.protocol.v1.GroupDeviceStatus.Reply.type:type_name -> weshnet.protocol.v1.GroupDeviceStatus.Type
	7,   // 23: weshnet.protocol.v1.GroupDeviceStatus.Reply.PeerConnected.transports:type_name -> weshnet.protocol.v1.GroupDeviceStatus.Transport
	0,   // 24: weshnet.protocol.v1.DebugListGroups.Reply.group_type:type_name -> weshnet.protocol.v1.GroupType
	2,   // 25: weshnet.protocol.v1.DebugInspectGroupStore.Request.log_type:type_name -> weshnet.protocol.v1.DebugInspectGroupLogType
	1,   // 26: weshnet.protocol.v1.DebugInspectGroupStore.Reply.metadata_event_type:type_name -> weshnet.protocol.v1.EventType
	90,  // 27: weshnet.protocol.v1.VerifiedCredentialsList.Reply.credential:type_name -> weshnet.protocol.v1.AccountVerifiedCredentialRegistered
	10,  // 28: weshnet.protocol.v1.ReplicationServiceReplicateGroup.Request.group:type_name -> weshnet.protocol.v1.Group
	172, // 29: weshnet.protocol.v1.SystemInfo.Reply.process:type_name -> weshnet.protocol.v1.SystemInfo.Process
	171, // 30: weshnet.protocol.v1.SystemInfo.Reply.p2p:type_name -> weshnet.protocol.v1.SystemInfo.P2P
	170, // 31: weshnet.protocol.v1.SystemInfo.Reply.orbitdb:type_name -> weshnet.protocol.v1.SystemInfo.OrbitDB
	173, // 32: weshnet.protocol.v1.SystemInfo.OrbitDB.account_metadata:type_name -> weshnet.protocol.v1.SystemInfo.OrbitDB.ReplicationStatus
	176, // 33: weshnet.protocol.v1.PeerList.Reply.peers:type_name -> weshnet.protocol.v1.PeerList.Peer
	177, // 34: weshnet.protocol.v1.PeerList.Peer.routes:type_name -> weshnet.protocol.v1.PeerList.Route
	8,   // 35: weshnet.protocol.v1.PeerList.Peer.features:type_name -> weshnet.protocol.v1.PeerList.Feature
	4,   // 36: weshnet.protocol.v1.PeerList.Peer.direction:type_name -> weshnet.protocol.v1.Direction
	4,   // 37: weshnet.protocol.v1.PeerList.Route.direction:type_name -> weshnet.protocol.v1.Direction
	178, // 38: weshnet.protocol.v1.PeerList.Route.streams:type_name -> weshnet.protocol.v1.PeerList.Stream
	86,  // 39: weshnet.protocol.v1.OutOfStoreReceive.Reply.message:type_name -> weshnet.protocol.v1.OutOfStoreMessage
	184, // 40: weshnet.protocol.v1.RefreshContactRequest.Reply.peers_found:type_name -> weshnet.protocol.v1.RefreshContactRequest.Peer
	95,  // 41: weshnet.protocol.v1.ProtocolService.ServiceExportData:input_type -> weshnet.protocol.v1.ServiceExportData.Request
	97,  // 42: weshnet.protocol.v1.ProtocolService.ServiceGetConfiguration:input_type -> weshnet.protocol.v1.ServiceGetConfiguration.Request
	99,  // 43: weshnet.protocol.v1.ProtocolService.ContactRequestReference:input_type -> weshnet.protocol.v1.ContactRequestReference.Request
	101, // 44: weshnet.protocol.v1.ProtocolService.ContactRequestDisable:input_type -> weshnet.protocol.v1.ContactRequestDisable.Request
	103, // 45: weshnet.protocol.v1.ProtocolService.ContactRequestEnable:input_type -> weshnet.protocol.v1.ContactRequestEnable.Request
	105, // 46: weshnet.protocol.v1.ProtocolService.ContactRequestResetReference:input_type -> weshnet.protocol.v1.ContactRequestResetReference.Request
	107, // 47: weshnet.protocol.v1.ProtocolService.ContactRequestSend:input_type -> weshnet.protocol.v1.ContactRequestSend.Request
	109, // 48: weshnet.protocol.v1.ProtocolService.ContactRequestAccept:input_type -> weshnet.protocol.v1.ContactRequestAccept.Request
	111, // 49: weshnet.protocol.v1.ProtocolService.ContactRequestDiscard:input_type -> weshnet.protocol.v1.ContactRequestDiscard.Request
	113, // 50: weshnet.protocol.v1.ProtocolService.ShareContact:input_type -> weshnet.protocol.v1.ShareContact.Request
	115, // 51: weshnet.protocol.v1.ProtocolService.DecodeContact:input_type -> weshnet.protocol.v1.DecodeContact.Request
	117, // 52: weshnet.protocol.v1.ProtocolService.ContactBlock:input_type -> weshnet.protocol.v1.ContactBlock.Request
	119, // 53: weshnet.protocol.v1.ProtocolService.ContactUnblock:input_type -> weshnet.protocol.v1.ContactUnblock.Request
	121, // 54: weshnet.protocol.v1.ProtocolService.ContactAliasKeySend:input_type -> weshnet.protocol.v1.ContactAliasKeySend.Request
	123, // 55: weshnet.protocol.v1.ProtocolService.MultiMemberGroupCreate:input_type -> weshnet.protocol.v1.MultiMemberGroupCreate.Request
	125, // 56: weshnet.protocol.v1.ProtocolService.MultiMemberGroupJoin:input_type -> weshnet.protocol.v1.MultiMemberGroupJoin.Request
	127, // 57: weshnet.protocol.v1.ProtocolService.MultiMemberGroupLeave:input_type -> weshnet.protocol.v1.MultiMemberGroupLeave.Request
	129, // 58: weshnet.protocol.v1.ProtocolService.MultiMemberGroupAliasResolverDisclose:input_type -> weshnet.protocol.v1.MultiMemberGroupAliasResolverDisclose.Request
	131, // 59: weshnet.protocol.v1.ProtocolService.MultiMemberGroupAdminRoleGrant:input_type -> weshnet.protocol.v1.MultiMemberGroupAdminRoleGrant.Request
	133, // 60: weshnet.protocol.v1.ProtocolService.MultiMemberGroupInvitationCreate:input_type -> weshnet.protocol.v1.MultiMemberGroupInvitationCreate.Request
	135, // 61: weshnet.protocol.v1.ProtocolService.AppMetadataSend:input_type -> weshnet.protocol.v1.AppMetadataSend.Request
	137, // 62: weshnet.protocol.v1.ProtocolService.AppMessageSend:input_type -> weshnet.protocol.v1.AppMessageSend.Request
	139, // 63: weshnet.protocol.v1.ProtocolService.GroupMetadataList:input_type -> weshnet.protocol.v1.GroupMetadataList.Request
	140, // 64: weshnet.protocol.v1.ProtocolService.GroupMessageList:input_type -> weshnet.protocol.v1.GroupMessageList.Request
	141, // 65: weshnet.protocol.v1.ProtocolService.GroupInfo:input_type -> weshnet.protocol.v1.GroupInfo.Request
	143, // 66: weshnet.protocol.v1.ProtocolService.ActivateGroup:input_type -> weshnet.protocol.v1.ActivateGroup.Request
	145, // 67: weshnet.protocol.v1.ProtocolService.DeactivateGroup:input_type -> weshnet.protocol.v1.DeactivateGroup.Request
	147, // 68: weshnet.protocol.v1.ProtocolService.GroupDeviceStatus:input_type -> weshnet.protocol.v1.GroupDeviceStatus.Request
	152, // 69: weshnet.protocol.v1.ProtocolService.DebugListGroups:input_type -> weshnet.protocol.v1.DebugListGroups.Request
	154, // 70: weshnet.protocol.v1.ProtocolService.DebugInspectGroupStore:input_type -> weshnet.protocol.v1.DebugInspectGroupStore.Request
	156, // 71: weshnet.protocol.v1.ProtocolService.DebugGroup:input_type -> weshnet.protocol.v1.DebugGroup.Request
	168, // 72: weshnet.protocol.v1.ProtocolService.SystemInfo:input_type -> weshnet.protocol.v1.SystemInfo.Request
	158, // 73: weshnet.protocol.v1.ProtocolService.CredentialVerificationServiceInitFlow:input_type -> weshnet.protocol.v1.CredentialVerificationServiceInitFlow.Request
	160, // 74: weshnet.protocol.v1.ProtocolService.CredentialVerificationServiceCompleteFlow:input_type -> weshnet.protocol.v1.CredentialVerificationServiceCompleteFlow.Request
	162, // 75: weshnet.protocol.v1.ProtocolService.VerifiedCredentialsList:input_type -> weshnet.protocol.v1.VerifiedCredentialsList.Request
	164, // 76: weshnet.protocol.v1.ProtocolService.ReplicationServiceRegisterGroup:input_type -> weshnet.protocol.v1.ReplicationServiceRegisterGroup.Request
	174, // 77: weshnet.protocol.v1.ProtocolService.PeerList:input_type -> weshnet.protocol.v1.PeerList.Request
	179, // 78: weshnet.protocol.v1.ProtocolService.OutOfStoreReceive:input_type -> weshnet.protocol.v1.OutOfStoreReceive.Request
	181, // 79: weshnet.protocol.v1.ProtocolService.OutOfStoreSeal:input_type -> weshnet.protocol.v1.OutOfStoreSeal.Request
	185, // 80: weshnet.protocol.v1.ProtocolService.RefreshContactRequest:input_type -> weshnet.protocol.v1.RefreshContactRequest.Request
	96,  // 81: weshnet.protocol.v1.ProtocolService.ServiceExportData:output_type -> weshnet.protocol.v1.ServiceExportData.Reply
	98,  // 82: weshnet.protocol.v1.ProtocolService.ServiceGetConfiguration:output_type -> weshnet.protocol.v1.ServiceGetConfiguration.Reply
	100, // 83: weshnet.protocol.v1.ProtocolService.ContactRequestReference:output_type -> weshnet.protocol.v1.ContactRequestReference.Reply
	102, // 84: weshnet.protocol.v1.ProtocolService.ContactRequestDisable:output_type -> weshnet.protocol.v1.ContactRequestDisable.Reply
	104, // 85: weshnet.protocol.v1.ProtocolService.ContactRequestEnable:output_type -> weshnet.protocol.v1.ContactRequestEnable.Reply
	106, // 86: weshnet.protocol.v1.ProtocolService.ContactRequestResetReference:output_type -> weshnet.protocol.v1.ContactRequestResetReference.Reply
	108, // 87: weshnet.protocol.v1.ProtocolService.ContactRequestSend:output_type -> weshnet.protocol.v1.ContactRequestSend.Reply
	110, // 88: weshnet.protocol.v1.ProtocolService.ContactRequestAccept:output_type -> weshnet.protocol.v1.ContactRequestAccept.Reply
	112, // 89: weshnet.protocol.v1.ProtocolService.ContactRequestDiscard:output_type -> weshnet.protocol.v1.ContactRequestDiscard.Reply
	114, // 90: weshnet.protocol.v1.ProtocolService.ShareContact:output_type -> weshnet.protocol.v1.ShareContact.Reply
	116, // 91: weshnet.protocol.v1.ProtocolService.DecodeContact:output_type -> weshnet.protocol.v1.DecodeContact.Reply
	118, // 92: weshnet.protocol.v1.ProtocolService.ContactBlock:output_type -> weshnet.protocol.v1.ContactBlock.Reply
	120, // 93: weshnet.protocol.v1.ProtocolService.ContactUnblock:output_type -> weshnet.protocol.v1.ContactUnblock.Reply
	122, // 94: weshnet.protocol.v1.ProtocolService.ContactAliasKeySend:output_type -> weshnet.protocol.v1.ContactAliasKeySend.Reply
	124, // 95: weshnet.protocol.v1.ProtocolService.MultiMemberGroupCreate:output_type -> weshnet.protocol.v1.MultiMemberGroupCreate.Reply
	126, // 96: weshnet.protocol.v1.ProtocolService.MultiMemberGroupJoin:output_type -> weshnet.protocol.v1.MultiMemberGroupJoin.Reply
	128, // 97: weshnet.protocol.v1.ProtocolService.MultiMemberGroupLeave:output_type -> weshnet.protocol.v1.MultiMemberGroupLeave.Reply
	130, // 98: weshnet.protocol.v1.ProtocolService.MultiMemberGroupAliasResolverDisclose:output_type -> weshnet.protocol.v1.MultiMemberGroupAliasResolverDisclose.Reply
	132, // 99: weshnet.protocol.v1.ProtocolService.MultiMemberGroupAdminRoleGrant:output_type -> weshnet.protocol.v1.MultiMemberGroupAdminRoleGrant.Reply
	134, // 100: weshnet.protocol.v1.ProtocolService.MultiMemberGroupInvitationCreate:output_type -> weshnet.protocol.v1.MultiMemberGroupInvitationCreate.Reply
	136, // 101: weshnet.protocol.v1.ProtocolService.AppMetadataSend:output_type -> weshnet.protocol.v1.AppMetadataSend.Reply
	138, // 102: weshnet.protocol.v1.ProtocolService.AppMessageSend:output_type -> weshnet.protocol.v1.AppMessageSend.Reply
	64,  // 103: weshnet.protocol.v1.ProtocolService.GroupMetadataList:output_type -> weshnet.protocol.v1.GroupMetadataEvent
	65,  // 104: weshnet.protocol.v1.ProtocolService.GroupMessageList:output_type -> weshnet.protocol.v1.GroupMessageEvent
	142, // 105: weshnet.protocol.v1.ProtocolService.GroupInfo:output_type -> weshnet.protocol.v1.GroupInfo.Reply
	144, // 106: weshnet.protocol.v1.ProtocolService.ActivateGroup:output_type -> weshnet.protocol.v1.ActivateGroup.Reply
	146, // 107: weshnet.protocol.v1.ProtocolService.DeactivateGroup:output_type -> weshnet.protocol.v1.DeactivateGroup.Reply
	148, // 108: weshnet.protocol.v1.ProtocolService.GroupDeviceStatus:output_type -> weshnet.protocol.v1.GroupDeviceStatus.Reply
	153, // 109: weshnet.protocol.v1.ProtocolService.DebugListGroups:output_type -> weshnet.protocol.v1.DebugListGroups.Reply
	155, // 110: weshnet.protocol.v1.ProtocolService.DebugInspectGroupStore:output_type -> weshnet.protocol.v1.DebugInspectGroupStore.Reply
	157, // 111: weshnet.protocol.v1.ProtocolService.DebugGroup:output_type -> weshnet.protocol.v1.DebugGroup.Reply
	169, // 112: weshnet.protocol.v1.ProtocolService.SystemInfo:output_type -> weshnet.protocol.v1.SystemInfo.Reply
	159, // 113: weshnet.protocol.v1.ProtocolService.CredentialVerificationServiceInitFlow:output_type -> weshnet.protocol.v1.CredentialVerificationServiceInitFlow.Reply
	161, // 114: weshnet.protocol.v1.ProtocolService.CredentialVerificationServiceCompleteFlow:output_type -> weshnet.protocol.v1.CredentialVerificationServiceCompleteFlow.Reply
	163, // 115: weshnet.protocol.v1.ProtocolService.VerifiedCredentialsList:output_type -> weshnet.protocol.v1.VerifiedCredentialsList.Reply
	165, // 116: weshnet.protocol.v1.ProtocolService.ReplicationServiceRegisterGroup:output_type -> weshnet.protocol.v1.ReplicationServiceRegisterGroup.Reply
	175, // 117: weshnet.protocol.v1.ProtocolService.PeerList:output_type -> weshnet.protocol.v1.PeerList.Reply
	180, // 118: weshnet.protocol.v1.ProtocolService.OutOfStoreReceive:output_type -> weshnet.protocol.v1.OutOfStoreReceive.Reply
	182, // 119: weshnet.protocol.v1.ProtocolService.OutOfStoreSeal:output_type -> weshnet.protocol.v1.OutOfStoreSeal.Reply
	186, // 120: weshnet.protocol.v1.ProtocolService.RefreshContactRequest:output_type -> weshnet.protocol.v1.RefreshContactRequest.Reply
	81,  // [81:121] is the sub-list for method output_type
	41,  // [41:81] is the sub-list for method input_type
	41,  // [41:41] is the sub-list for extension type_name
	41,  // [41:41] is the sub-list for extension extendee
	0,   // [0:41] is the sub-list for field type_name
}

func init() { file_protocoltypes_proto_init() }
func file_protocoltypes_proto_init() {
	if File_protocoltypes_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_protocoltypes_proto_msgTypes[0].Exporter = func(v any, i int) any {
			switch v := v.(*Account); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[1].Exporter = func(v any, i int) any {
			switch v := v.(*Group); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[2].Exporter = func(v any, i int) any {
			switch v := v.(*GroupHeadsExport); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[3].Exporter = func(v any, i int) any {
			switch v := v.(*GroupMetadata); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[4].Exporter = func(v any, i int) any {
			switch v := v.(*GroupEnvelope); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[5].Exporter = func(v any, i int) any {
			switch v := v.(*MessageHeaders); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[6].Exporter = func(v any, i int) any {
			switch v := v.(*ProtocolMetadata); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[7].Exporter = func(v any, i int) any {
			switch v := v.(*EncryptedMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[8].Exporter = func(v any, i int) any {
			switch v := v.(*MessageEnvelope); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[9].Exporter = func(v any, i int) any {
			switch v := v.(*EventContext); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[10].Exporter = func(v any, i int) any {
			switch v := v.(*GroupMetadataPayloadSent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[11].Exporter = func(v any, i int) any {
			switch v := v.(*ContactAliasKeyAdded); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[12].Exporter = func(v any, i int) any {
			switch v := v.(*GroupMemberDeviceAdded); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[13].Exporter = func(v any, i int) any {
			switch v := v.(*DeviceChainKey); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[14].Exporter = func(v any, i int) any {
			switch v := v.(*GroupDeviceChainKeyAdded); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[15].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupAliasResolverAdded); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[16].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupAdminRoleGranted); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[17].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupInitialMemberAnnounced); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[18].Exporter = func(v any, i int) any {
			switch v := v.(*GroupAddAdditionalRendezvousSeed); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[19].Exporter = func(v any, i int) any {
			switch v := v.(*GroupRemoveAdditionalRendezvousSeed); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[20].Exporter = func(v any, i int) any {
			switch v := v.(*AccountGroupJoined); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[21].Exporter = func(v any, i int) any {
			switch v := v.(*AccountGroupLeft); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[22].Exporter = func(v any, i int) any {
			switch v := v.(*AccountContactRequestDisabled); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[23].Exporter = func(v any, i int) any {
			switch v := v.(*AccountContactRequestEnabled); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[24].Exporter = func(v any, i int) any {
			switch v := v.(*AccountContactRequestReferenceReset); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[25].Exporter = func(v any, i int) any {
			switch v := v.(*AccountContactRequestOutgoingEnqueued); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[26].Exporter = func(v any, i int) any {
			switch v := v.(*AccountContactRequestOutgoingSent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[27].Exporter = func(v any, i int) any {
			switch v := v.(*AccountContactRequestIncomingReceived); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[28].Exporter = func(v any, i int) any {
			switch v := v.(*AccountContactRequestIncomingDiscarded); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[29].Exporter = func(v any, i int) any {
			switch v := v.(*AccountContactRequestIncomingAccepted); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[30].Exporter = func(v any, i int) any {
			switch v := v.(*AccountContactBlocked); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[31].Exporter = func(v any, i int) any {
			switch v := v.(*AccountContactUnblocked); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[32].Exporter = func(v any, i int) any {
			switch v := v.(*GroupReplicating); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[33].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceExportData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[34].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceGetConfiguration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[35].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestReference); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[36].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestDisable); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[37].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestEnable); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[38].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestResetReference); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[39].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestSend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[40].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestAccept); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[41].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestDiscard); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[42].Exporter = func(v any, i int) any {
			switch v := v.(*ShareContact); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[43].Exporter = func(v any, i int) any {
			switch v := v.(*DecodeContact); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[44].Exporter = func(v any, i int) any {
			switch v := v.(*ContactBlock); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[45].Exporter = func(v any, i int) any {
			switch v := v.(*ContactUnblock); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[46].Exporter = func(v any, i int) any {
			switch v := v.(*ContactAliasKeySend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[47].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupCreate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[48].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupJoin); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[49].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupLeave); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[50].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupAliasResolverDisclose); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[51].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupAdminRoleGrant); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[52].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupInvitationCreate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[53].Exporter = func(v any, i int) any {
			switch v := v.(*AppMetadataSend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[54].Exporter = func(v any, i int) any {
			switch v := v.(*AppMessageSend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[55].Exporter = func(v any, i int) any {
			switch v := v.(*GroupMetadataEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[56].Exporter = func(v any, i int) any {
			switch v := v.(*GroupMessageEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[57].Exporter = func(v any, i int) any {
			switch v := v.(*GroupMetadataList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[58].Exporter = func(v any, i int) any {
			switch v := v.(*GroupMessageList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[59].Exporter = func(v any, i int) any {
			switch v := v.(*GroupInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[60].Exporter = func(v any, i int) any {
			switch v := v.(*ActivateGroup); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[61].Exporter = func(v any, i int) any {
			switch v := v.(*DeactivateGroup); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[62].Exporter = func(v any, i int) any {
			switch v := v.(*GroupDeviceStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[63].Exporter = func(v any, i int) any {
			switch v := v.(*DebugListGroups); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[64].Exporter = func(v any, i int) any {
			switch v := v.(*DebugInspectGroupStore); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[65].Exporter = func(v any, i int) any {
			switch v := v.(*DebugGroup); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[66].Exporter = func(v any, i int) any {
			switch v := v.(*ShareableContact); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[67].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceTokenSupportedService); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[68].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceToken); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[69].Exporter = func(v any, i int) any {
			switch v := v.(*CredentialVerificationServiceInitFlow); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[70].Exporter = func(v any, i int) any {
			switch v := v.(*CredentialVerificationServiceCompleteFlow); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[71].Exporter = func(v any, i int) any {
			switch v := v.(*VerifiedCredentialsList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[72].Exporter = func(v any, i int) any {
			switch v := v.(*ReplicationServiceRegisterGroup); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[73].Exporter = func(v any, i int) any {
			switch v := v.(*ReplicationServiceReplicateGroup); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[74].Exporter = func(v any, i int) any {
			switch v := v.(*SystemInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[75].Exporter = func(v any, i int) any {
			switch v := v.(*PeerList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[76].Exporter = func(v any, i int) any {
			switch v := v.(*Progress); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[77].Exporter = func(v any, i int) any {
			switch v := v.(*OutOfStoreMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[78].Exporter = func(v any, i int) any {
			switch v := v.(*OutOfStoreMessageEnvelope); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[79].Exporter = func(v any, i int) any {
			switch v := v.(*OutOfStoreReceive); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[80].Exporter = func(v any, i int) any {
			switch v := v.(*OutOfStoreSeal); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[81].Exporter = func(v any, i int) any {
			switch v := v.(*AccountVerifiedCredentialRegistered); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[82].Exporter = func(v any, i int) any {
			switch v := v.(*FirstLastCounters); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[83].Exporter = func(v any, i int) any {
			switch v := v.(*OrbitDBMessageHeads); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[84].Exporter = func(v any, i int) any {
			switch v := v.(*RefreshContactRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[86].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceExportData_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[87].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceExportData_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[88].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceGetConfiguration_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[89].Exporter = func(v any, i int) any {
			switch v := v.(*ServiceGetConfiguration_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[90].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestReference_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[91].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestReference_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[92].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestDisable_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[93].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestDisable_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[94].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestEnable_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[95].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestEnable_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[96].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestResetReference_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[97].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestResetReference_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[98].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestSend_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[99].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestSend_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[100].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestAccept_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[101].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestAccept_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[102].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestDiscard_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[103].Exporter = func(v any, i int) any {
			switch v := v.(*ContactRequestDiscard_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[104].Exporter = func(v any, i int) any {
			switch v := v.(*ShareContact_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[105].Exporter = func(v any, i int) any {
			switch v := v.(*ShareContact_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[106].Exporter = func(v any, i int) any {
			switch v := v.(*DecodeContact_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[107].Exporter = func(v any, i int) any {
			switch v := v.(*DecodeContact_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[108].Exporter = func(v any, i int) any {
			switch v := v.(*ContactBlock_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[109].Exporter = func(v any, i int) any {
			switch v := v.(*ContactBlock_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[110].Exporter = func(v any, i int) any {
			switch v := v.(*ContactUnblock_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[111].Exporter = func(v any, i int) any {
			switch v := v.(*ContactUnblock_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[112].Exporter = func(v any, i int) any {
			switch v := v.(*ContactAliasKeySend_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[113].Exporter = func(v any, i int) any {
			switch v := v.(*ContactAliasKeySend_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[114].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupCreate_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[115].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupCreate_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[116].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupJoin_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[117].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupJoin_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[118].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupLeave_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[119].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupLeave_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[120].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupAliasResolverDisclose_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[121].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupAliasResolverDisclose_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[122].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupAdminRoleGrant_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[123].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupAdminRoleGrant_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[124].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupInvitationCreate_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[125].Exporter = func(v any, i int) any {
			switch v := v.(*MultiMemberGroupInvitationCreate_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[126].Exporter = func(v any, i int) any {
			switch v := v.(*AppMetadataSend_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[127].Exporter = func(v any, i int) any {
			switch v := v.(*AppMetadataSend_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[128].Exporter = func(v any, i int) any {
			switch v := v.(*AppMessageSend_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[129].Exporter = func(v any, i int) any {
			switch v := v.(*AppMessageSend_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[130].Exporter = func(v any, i int) any {
			switch v := v.(*GroupMetadataList_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[131].Exporter = func(v any, i int) any {
			switch v := v.(*GroupMessageList_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[132].Exporter = func(v any, i int) any {
			switch v := v.(*GroupInfo_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[133].Exporter = func(v any, i int) any {
			switch v := v.(*GroupInfo_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[134].Exporter = func(v any, i int) any {
			switch v := v.(*ActivateGroup_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[135].Exporter = func(v any, i int) any {
			switch v := v.(*ActivateGroup_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[136].Exporter = func(v any, i int) any {
			switch v := v.(*DeactivateGroup_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[137].Exporter = func(v any, i int) any {
			switch v := v.(*DeactivateGroup_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[138].Exporter = func(v any, i int) any {
			switch v := v.(*GroupDeviceStatus_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[139].Exporter = func(v any, i int) any {
			switch v := v.(*GroupDeviceStatus_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[140].Exporter = func(v any, i int) any {
			switch v := v.(*GroupDeviceStatus_Reply_PeerConnected); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[141].Exporter = func(v any, i int) any {
			switch v := v.(*GroupDeviceStatus_Reply_PeerReconnecting); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[142].Exporter = func(v any, i int) any {
			switch v := v.(*GroupDeviceStatus_Reply_PeerDisconnected); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[143].Exporter = func(v any, i int) any {
			switch v := v.(*DebugListGroups_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[144].Exporter = func(v any, i int) any {
			switch v := v.(*DebugListGroups_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[145].Exporter = func(v any, i int) any {
			switch v := v.(*DebugInspectGroupStore_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[146].Exporter = func(v any, i int) any {
			switch v := v.(*DebugInspectGroupStore_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[147].Exporter = func(v any, i int) any {
			switch v := v.(*DebugGroup_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[148].Exporter = func(v any, i int) any {
			switch v := v.(*DebugGroup_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[149].Exporter = func(v any, i int) any {
			switch v := v.(*CredentialVerificationServiceInitFlow_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[150].Exporter = func(v any, i int) any {
			switch v := v.(*CredentialVerificationServiceInitFlow_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[151].Exporter = func(v any, i int) any {
			switch v := v.(*CredentialVerificationServiceCompleteFlow_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[152].Exporter = func(v any, i int) any {
			switch v := v.(*CredentialVerificationServiceCompleteFlow_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[153].Exporter = func(v any, i int) any {
			switch v := v.(*VerifiedCredentialsList_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[154].Exporter = func(v any, i int) any {
			switch v := v.(*VerifiedCredentialsList_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[155].Exporter = func(v any, i int) any {
			switch v := v.(*ReplicationServiceRegisterGroup_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[156].Exporter = func(v any, i int) any {
			switch v := v.(*ReplicationServiceRegisterGroup_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[157].Exporter = func(v any, i int) any {
			switch v := v.(*ReplicationServiceReplicateGroup_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[158].Exporter = func(v any, i int) any {
			switch v := v.(*ReplicationServiceReplicateGroup_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[159].Exporter = func(v any, i int) any {
			switch v := v.(*SystemInfo_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[160].Exporter = func(v any, i int) any {
			switch v := v.(*SystemInfo_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[161].Exporter = func(v any, i int) any {
			switch v := v.(*SystemInfo_OrbitDB); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[162].Exporter = func(v any, i int) any {
			switch v := v.(*SystemInfo_P2P); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[163].Exporter = func(v any, i int) any {
			switch v := v.(*SystemInfo_Process); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[164].Exporter = func(v any, i int) any {
			switch v := v.(*SystemInfo_OrbitDB_ReplicationStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[165].Exporter = func(v any, i int) any {
			switch v := v.(*PeerList_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[166].Exporter = func(v any, i int) any {
			switch v := v.(*PeerList_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[167].Exporter = func(v any, i int) any {
			switch v := v.(*PeerList_Peer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[168].Exporter = func(v any, i int) any {
			switch v := v.(*PeerList_Route); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[169].Exporter = func(v any, i int) any {
			switch v := v.(*PeerList_Stream); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[170].Exporter = func(v any, i int) any {
			switch v := v.(*OutOfStoreReceive_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[171].Exporter = func(v any, i int) any {
			switch v := v.(*OutOfStoreReceive_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[172].Exporter = func(v any, i int) any {
			switch v := v.(*OutOfStoreSeal_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[173].Exporter = func(v any, i int) any {
			switch v := v.(*OutOfStoreSeal_Reply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[174].Exporter = func(v any, i int) any {
			switch v := v.(*OrbitDBMessageHeads_Box); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[175].Exporter = func(v any, i int) any {
			switch v := v.(*RefreshContactRequest_Peer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[176].Exporter = func(v any, i int) any {
			switch v := v.(*RefreshContactRequest_Request); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_protocoltypes_proto_msgTypes[177].Exporter = func(v any, i int) any {
			switch v := v.(*RefreshContactRequest_Reply); 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_protocoltypes_proto_rawDesc,
			NumEnums:      9,
			NumMessages:   178,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_protocoltypes_proto_goTypes,
		DependencyIndexes: file_protocoltypes_proto_depIdxs,
		EnumInfos:         file_protocoltypes_proto_enumTypes,
		MessageInfos:      file_protocoltypes_proto_msgTypes,
	}.Build()
	File_protocoltypes_proto = out.File
	file_protocoltypes_proto_rawDesc = nil
	file_protocoltypes_proto_goTypes = nil
	file_protocoltypes_proto_depIdxs = nil
}
