// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.30.0
// 	protoc        v3.21.12
// source: trace.proto

package pb

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

const (
	TraceEvent_PUBLISH_MESSAGE   TraceEvent_Type = 0
	TraceEvent_REJECT_MESSAGE    TraceEvent_Type = 1
	TraceEvent_DUPLICATE_MESSAGE TraceEvent_Type = 2
	TraceEvent_DELIVER_MESSAGE   TraceEvent_Type = 3
	TraceEvent_ADD_PEER          TraceEvent_Type = 4
	TraceEvent_REMOVE_PEER       TraceEvent_Type = 5
	TraceEvent_RECV_RPC          TraceEvent_Type = 6
	TraceEvent_SEND_RPC          TraceEvent_Type = 7
	TraceEvent_DROP_RPC          TraceEvent_Type = 8
	TraceEvent_JOIN              TraceEvent_Type = 9
	TraceEvent_LEAVE             TraceEvent_Type = 10
	TraceEvent_GRAFT             TraceEvent_Type = 11
	TraceEvent_PRUNE             TraceEvent_Type = 12
)

// Enum value maps for TraceEvent_Type.
var (
	TraceEvent_Type_name = map[int32]string{
		0:  "PUBLISH_MESSAGE",
		1:  "REJECT_MESSAGE",
		2:  "DUPLICATE_MESSAGE",
		3:  "DELIVER_MESSAGE",
		4:  "ADD_PEER",
		5:  "REMOVE_PEER",
		6:  "RECV_RPC",
		7:  "SEND_RPC",
		8:  "DROP_RPC",
		9:  "JOIN",
		10: "LEAVE",
		11: "GRAFT",
		12: "PRUNE",
	}
	TraceEvent_Type_value = map[string]int32{
		"PUBLISH_MESSAGE":   0,
		"REJECT_MESSAGE":    1,
		"DUPLICATE_MESSAGE": 2,
		"DELIVER_MESSAGE":   3,
		"ADD_PEER":          4,
		"REMOVE_PEER":       5,
		"RECV_RPC":          6,
		"SEND_RPC":          7,
		"DROP_RPC":          8,
		"JOIN":              9,
		"LEAVE":             10,
		"GRAFT":             11,
		"PRUNE":             12,
	}
)

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

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

func (TraceEvent_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_trace_proto_enumTypes[0].Descriptor()
}

func (TraceEvent_Type) Type() protoreflect.EnumType {
	return &file_trace_proto_enumTypes[0]
}

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

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

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

	Type             *TraceEvent_Type             `protobuf:"varint,1,opt,name=type,proto3,enum=blossomsub.pb.TraceEvent_Type,oneof" json:"type,omitempty"`
	PeerID           []byte                       `protobuf:"bytes,2,opt,name=peerID,proto3,oneof" json:"peerID,omitempty"`
	Timestamp        *int64                       `protobuf:"varint,3,opt,name=timestamp,proto3,oneof" json:"timestamp,omitempty"`
	PublishMessage   *TraceEvent_PublishMessage   `protobuf:"bytes,4,opt,name=publishMessage,proto3,oneof" json:"publishMessage,omitempty"`
	RejectMessage    *TraceEvent_RejectMessage    `protobuf:"bytes,5,opt,name=rejectMessage,proto3,oneof" json:"rejectMessage,omitempty"`
	DuplicateMessage *TraceEvent_DuplicateMessage `protobuf:"bytes,6,opt,name=duplicateMessage,proto3,oneof" json:"duplicateMessage,omitempty"`
	DeliverMessage   *TraceEvent_DeliverMessage   `protobuf:"bytes,7,opt,name=deliverMessage,proto3,oneof" json:"deliverMessage,omitempty"`
	AddPeer          *TraceEvent_AddPeer          `protobuf:"bytes,8,opt,name=addPeer,proto3,oneof" json:"addPeer,omitempty"`
	RemovePeer       *TraceEvent_RemovePeer       `protobuf:"bytes,9,opt,name=removePeer,proto3,oneof" json:"removePeer,omitempty"`
	RecvRPC          *TraceEvent_RecvRPC          `protobuf:"bytes,10,opt,name=recvRPC,proto3,oneof" json:"recvRPC,omitempty"`
	SendRPC          *TraceEvent_SendRPC          `protobuf:"bytes,11,opt,name=sendRPC,proto3,oneof" json:"sendRPC,omitempty"`
	DropRPC          *TraceEvent_DropRPC          `protobuf:"bytes,12,opt,name=dropRPC,proto3,oneof" json:"dropRPC,omitempty"`
	Join             *TraceEvent_Join             `protobuf:"bytes,13,opt,name=join,proto3,oneof" json:"join,omitempty"`
	Leave            *TraceEvent_Leave            `protobuf:"bytes,14,opt,name=leave,proto3,oneof" json:"leave,omitempty"`
	Graft            *TraceEvent_Graft            `protobuf:"bytes,15,opt,name=graft,proto3,oneof" json:"graft,omitempty"`
	Prune            *TraceEvent_Prune            `protobuf:"bytes,16,opt,name=prune,proto3,oneof" json:"prune,omitempty"`
}

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

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

func (*TraceEvent) ProtoMessage() {}

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

func (x *TraceEvent) GetType() TraceEvent_Type {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return TraceEvent_PUBLISH_MESSAGE
}

func (x *TraceEvent) GetPeerID() []byte {
	if x != nil {
		return x.PeerID
	}
	return nil
}

func (x *TraceEvent) GetTimestamp() int64 {
	if x != nil && x.Timestamp != nil {
		return *x.Timestamp
	}
	return 0
}

func (x *TraceEvent) GetPublishMessage() *TraceEvent_PublishMessage {
	if x != nil {
		return x.PublishMessage
	}
	return nil
}

func (x *TraceEvent) GetRejectMessage() *TraceEvent_RejectMessage {
	if x != nil {
		return x.RejectMessage
	}
	return nil
}

func (x *TraceEvent) GetDuplicateMessage() *TraceEvent_DuplicateMessage {
	if x != nil {
		return x.DuplicateMessage
	}
	return nil
}

func (x *TraceEvent) GetDeliverMessage() *TraceEvent_DeliverMessage {
	if x != nil {
		return x.DeliverMessage
	}
	return nil
}

func (x *TraceEvent) GetAddPeer() *TraceEvent_AddPeer {
	if x != nil {
		return x.AddPeer
	}
	return nil
}

func (x *TraceEvent) GetRemovePeer() *TraceEvent_RemovePeer {
	if x != nil {
		return x.RemovePeer
	}
	return nil
}

func (x *TraceEvent) GetRecvRPC() *TraceEvent_RecvRPC {
	if x != nil {
		return x.RecvRPC
	}
	return nil
}

func (x *TraceEvent) GetSendRPC() *TraceEvent_SendRPC {
	if x != nil {
		return x.SendRPC
	}
	return nil
}

func (x *TraceEvent) GetDropRPC() *TraceEvent_DropRPC {
	if x != nil {
		return x.DropRPC
	}
	return nil
}

func (x *TraceEvent) GetJoin() *TraceEvent_Join {
	if x != nil {
		return x.Join
	}
	return nil
}

func (x *TraceEvent) GetLeave() *TraceEvent_Leave {
	if x != nil {
		return x.Leave
	}
	return nil
}

func (x *TraceEvent) GetGraft() *TraceEvent_Graft {
	if x != nil {
		return x.Graft
	}
	return nil
}

func (x *TraceEvent) GetPrune() *TraceEvent_Prune {
	if x != nil {
		return x.Prune
	}
	return nil
}

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

	Batch []*TraceEvent `protobuf:"bytes,1,rep,name=batch,proto3" json:"batch,omitempty"`
}

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

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

func (*TraceEventBatch) ProtoMessage() {}

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

func (x *TraceEventBatch) GetBatch() []*TraceEvent {
	if x != nil {
		return x.Batch
	}
	return nil
}

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

	MessageID []byte `protobuf:"bytes,1,opt,name=messageID,proto3,oneof" json:"messageID,omitempty"`
	Bitmask   []byte `protobuf:"bytes,2,opt,name=bitmask,proto3,oneof" json:"bitmask,omitempty"`
}

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

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

func (*TraceEvent_PublishMessage) ProtoMessage() {}

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

func (x *TraceEvent_PublishMessage) GetMessageID() []byte {
	if x != nil {
		return x.MessageID
	}
	return nil
}

func (x *TraceEvent_PublishMessage) GetBitmask() []byte {
	if x != nil {
		return x.Bitmask
	}
	return nil
}

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

	MessageID    []byte  `protobuf:"bytes,1,opt,name=messageID,proto3,oneof" json:"messageID,omitempty"`
	ReceivedFrom []byte  `protobuf:"bytes,2,opt,name=receivedFrom,proto3,oneof" json:"receivedFrom,omitempty"`
	Reason       *string `protobuf:"bytes,3,opt,name=reason,proto3,oneof" json:"reason,omitempty"`
	Bitmask      []byte  `protobuf:"bytes,4,opt,name=bitmask,proto3,oneof" json:"bitmask,omitempty"`
}

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

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

func (*TraceEvent_RejectMessage) ProtoMessage() {}

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

func (x *TraceEvent_RejectMessage) GetMessageID() []byte {
	if x != nil {
		return x.MessageID
	}
	return nil
}

func (x *TraceEvent_RejectMessage) GetReceivedFrom() []byte {
	if x != nil {
		return x.ReceivedFrom
	}
	return nil
}

func (x *TraceEvent_RejectMessage) GetReason() string {
	if x != nil && x.Reason != nil {
		return *x.Reason
	}
	return ""
}

func (x *TraceEvent_RejectMessage) GetBitmask() []byte {
	if x != nil {
		return x.Bitmask
	}
	return nil
}

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

	MessageID    []byte `protobuf:"bytes,1,opt,name=messageID,proto3,oneof" json:"messageID,omitempty"`
	ReceivedFrom []byte `protobuf:"bytes,2,opt,name=receivedFrom,proto3,oneof" json:"receivedFrom,omitempty"`
	Bitmask      []byte `protobuf:"bytes,3,opt,name=bitmask,proto3,oneof" json:"bitmask,omitempty"`
}

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

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

func (*TraceEvent_DuplicateMessage) ProtoMessage() {}

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

func (x *TraceEvent_DuplicateMessage) GetMessageID() []byte {
	if x != nil {
		return x.MessageID
	}
	return nil
}

func (x *TraceEvent_DuplicateMessage) GetReceivedFrom() []byte {
	if x != nil {
		return x.ReceivedFrom
	}
	return nil
}

func (x *TraceEvent_DuplicateMessage) GetBitmask() []byte {
	if x != nil {
		return x.Bitmask
	}
	return nil
}

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

	MessageID    []byte `protobuf:"bytes,1,opt,name=messageID,proto3,oneof" json:"messageID,omitempty"`
	Bitmask      []byte `protobuf:"bytes,2,opt,name=bitmask,proto3,oneof" json:"bitmask,omitempty"`
	ReceivedFrom []byte `protobuf:"bytes,3,opt,name=receivedFrom,proto3,oneof" json:"receivedFrom,omitempty"`
}

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

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

func (*TraceEvent_DeliverMessage) ProtoMessage() {}

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

func (x *TraceEvent_DeliverMessage) GetMessageID() []byte {
	if x != nil {
		return x.MessageID
	}
	return nil
}

func (x *TraceEvent_DeliverMessage) GetBitmask() []byte {
	if x != nil {
		return x.Bitmask
	}
	return nil
}

func (x *TraceEvent_DeliverMessage) GetReceivedFrom() []byte {
	if x != nil {
		return x.ReceivedFrom
	}
	return nil
}

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

	PeerID []byte  `protobuf:"bytes,1,opt,name=peerID,proto3,oneof" json:"peerID,omitempty"`
	Proto  *string `protobuf:"bytes,2,opt,name=proto,proto3,oneof" json:"proto,omitempty"`
}

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

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

func (*TraceEvent_AddPeer) ProtoMessage() {}

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

func (x *TraceEvent_AddPeer) GetPeerID() []byte {
	if x != nil {
		return x.PeerID
	}
	return nil
}

func (x *TraceEvent_AddPeer) GetProto() string {
	if x != nil && x.Proto != nil {
		return *x.Proto
	}
	return ""
}

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

	PeerID []byte `protobuf:"bytes,1,opt,name=peerID,proto3,oneof" json:"peerID,omitempty"`
}

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

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

func (*TraceEvent_RemovePeer) ProtoMessage() {}

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

func (x *TraceEvent_RemovePeer) GetPeerID() []byte {
	if x != nil {
		return x.PeerID
	}
	return nil
}

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

	ReceivedFrom []byte              `protobuf:"bytes,1,opt,name=receivedFrom,proto3,oneof" json:"receivedFrom,omitempty"`
	Meta         *TraceEvent_RPCMeta `protobuf:"bytes,2,opt,name=meta,proto3,oneof" json:"meta,omitempty"`
}

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

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

func (*TraceEvent_RecvRPC) ProtoMessage() {}

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

func (x *TraceEvent_RecvRPC) GetReceivedFrom() []byte {
	if x != nil {
		return x.ReceivedFrom
	}
	return nil
}

func (x *TraceEvent_RecvRPC) GetMeta() *TraceEvent_RPCMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

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

	SendTo []byte              `protobuf:"bytes,1,opt,name=sendTo,proto3,oneof" json:"sendTo,omitempty"`
	Meta   *TraceEvent_RPCMeta `protobuf:"bytes,2,opt,name=meta,proto3,oneof" json:"meta,omitempty"`
}

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

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

func (*TraceEvent_SendRPC) ProtoMessage() {}

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

func (x *TraceEvent_SendRPC) GetSendTo() []byte {
	if x != nil {
		return x.SendTo
	}
	return nil
}

func (x *TraceEvent_SendRPC) GetMeta() *TraceEvent_RPCMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

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

	SendTo []byte              `protobuf:"bytes,1,opt,name=sendTo,proto3,oneof" json:"sendTo,omitempty"`
	Meta   *TraceEvent_RPCMeta `protobuf:"bytes,2,opt,name=meta,proto3,oneof" json:"meta,omitempty"`
}

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

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

func (*TraceEvent_DropRPC) ProtoMessage() {}

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

func (x *TraceEvent_DropRPC) GetSendTo() []byte {
	if x != nil {
		return x.SendTo
	}
	return nil
}

func (x *TraceEvent_DropRPC) GetMeta() *TraceEvent_RPCMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

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

	Bitmask []byte `protobuf:"bytes,1,opt,name=bitmask,proto3,oneof" json:"bitmask,omitempty"`
}

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

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

func (*TraceEvent_Join) ProtoMessage() {}

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

func (x *TraceEvent_Join) GetBitmask() []byte {
	if x != nil {
		return x.Bitmask
	}
	return nil
}

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

	Bitmask []byte `protobuf:"bytes,2,opt,name=bitmask,proto3,oneof" json:"bitmask,omitempty"`
}

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

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

func (*TraceEvent_Leave) ProtoMessage() {}

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

func (x *TraceEvent_Leave) GetBitmask() []byte {
	if x != nil {
		return x.Bitmask
	}
	return nil
}

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

	PeerID  []byte `protobuf:"bytes,1,opt,name=peerID,proto3,oneof" json:"peerID,omitempty"`
	Bitmask []byte `protobuf:"bytes,2,opt,name=bitmask,proto3,oneof" json:"bitmask,omitempty"`
}

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

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

func (*TraceEvent_Graft) ProtoMessage() {}

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

func (x *TraceEvent_Graft) GetPeerID() []byte {
	if x != nil {
		return x.PeerID
	}
	return nil
}

func (x *TraceEvent_Graft) GetBitmask() []byte {
	if x != nil {
		return x.Bitmask
	}
	return nil
}

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

	PeerID  []byte `protobuf:"bytes,1,opt,name=peerID,proto3,oneof" json:"peerID,omitempty"`
	Bitmask []byte `protobuf:"bytes,2,opt,name=bitmask,proto3,oneof" json:"bitmask,omitempty"`
}

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

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

func (*TraceEvent_Prune) ProtoMessage() {}

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

func (x *TraceEvent_Prune) GetPeerID() []byte {
	if x != nil {
		return x.PeerID
	}
	return nil
}

func (x *TraceEvent_Prune) GetBitmask() []byte {
	if x != nil {
		return x.Bitmask
	}
	return nil
}

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

	Messages     []*TraceEvent_MessageMeta `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"`
	Subscription []*TraceEvent_SubMeta     `protobuf:"bytes,2,rep,name=subscription,proto3" json:"subscription,omitempty"`
	Control      *TraceEvent_ControlMeta   `protobuf:"bytes,3,opt,name=control,proto3,oneof" json:"control,omitempty"`
}

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

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

func (*TraceEvent_RPCMeta) ProtoMessage() {}

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

func (x *TraceEvent_RPCMeta) GetMessages() []*TraceEvent_MessageMeta {
	if x != nil {
		return x.Messages
	}
	return nil
}

func (x *TraceEvent_RPCMeta) GetSubscription() []*TraceEvent_SubMeta {
	if x != nil {
		return x.Subscription
	}
	return nil
}

func (x *TraceEvent_RPCMeta) GetControl() *TraceEvent_ControlMeta {
	if x != nil {
		return x.Control
	}
	return nil
}

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

	MessageID []byte `protobuf:"bytes,1,opt,name=messageID,proto3,oneof" json:"messageID,omitempty"`
	Bitmask   []byte `protobuf:"bytes,2,opt,name=bitmask,proto3,oneof" json:"bitmask,omitempty"`
}

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

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

func (*TraceEvent_MessageMeta) ProtoMessage() {}

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

func (x *TraceEvent_MessageMeta) GetMessageID() []byte {
	if x != nil {
		return x.MessageID
	}
	return nil
}

func (x *TraceEvent_MessageMeta) GetBitmask() []byte {
	if x != nil {
		return x.Bitmask
	}
	return nil
}

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

	Subscribe *bool  `protobuf:"varint,1,opt,name=subscribe,proto3,oneof" json:"subscribe,omitempty"`
	Bitmask   []byte `protobuf:"bytes,2,opt,name=bitmask,proto3,oneof" json:"bitmask,omitempty"`
}

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

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

func (*TraceEvent_SubMeta) ProtoMessage() {}

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

func (x *TraceEvent_SubMeta) GetSubscribe() bool {
	if x != nil && x.Subscribe != nil {
		return *x.Subscribe
	}
	return false
}

func (x *TraceEvent_SubMeta) GetBitmask() []byte {
	if x != nil {
		return x.Bitmask
	}
	return nil
}

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

	Ihave []*TraceEvent_ControlIHaveMeta `protobuf:"bytes,1,rep,name=ihave,proto3" json:"ihave,omitempty"`
	Iwant []*TraceEvent_ControlIWantMeta `protobuf:"bytes,2,rep,name=iwant,proto3" json:"iwant,omitempty"`
	Graft []*TraceEvent_ControlGraftMeta `protobuf:"bytes,3,rep,name=graft,proto3" json:"graft,omitempty"`
	Prune []*TraceEvent_ControlPruneMeta `protobuf:"bytes,4,rep,name=prune,proto3" json:"prune,omitempty"`
}

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

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

func (*TraceEvent_ControlMeta) ProtoMessage() {}

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

func (x *TraceEvent_ControlMeta) GetIhave() []*TraceEvent_ControlIHaveMeta {
	if x != nil {
		return x.Ihave
	}
	return nil
}

func (x *TraceEvent_ControlMeta) GetIwant() []*TraceEvent_ControlIWantMeta {
	if x != nil {
		return x.Iwant
	}
	return nil
}

func (x *TraceEvent_ControlMeta) GetGraft() []*TraceEvent_ControlGraftMeta {
	if x != nil {
		return x.Graft
	}
	return nil
}

func (x *TraceEvent_ControlMeta) GetPrune() []*TraceEvent_ControlPruneMeta {
	if x != nil {
		return x.Prune
	}
	return nil
}

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

	Bitmask    []byte   `protobuf:"bytes,1,opt,name=bitmask,proto3,oneof" json:"bitmask,omitempty"`
	MessageIDs [][]byte `protobuf:"bytes,2,rep,name=messageIDs,proto3" json:"messageIDs,omitempty"`
}

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

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

func (*TraceEvent_ControlIHaveMeta) ProtoMessage() {}

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

func (x *TraceEvent_ControlIHaveMeta) GetBitmask() []byte {
	if x != nil {
		return x.Bitmask
	}
	return nil
}

func (x *TraceEvent_ControlIHaveMeta) GetMessageIDs() [][]byte {
	if x != nil {
		return x.MessageIDs
	}
	return nil
}

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

	MessageIDs [][]byte `protobuf:"bytes,1,rep,name=messageIDs,proto3" json:"messageIDs,omitempty"`
}

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

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

func (*TraceEvent_ControlIWantMeta) ProtoMessage() {}

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

func (x *TraceEvent_ControlIWantMeta) GetMessageIDs() [][]byte {
	if x != nil {
		return x.MessageIDs
	}
	return nil
}

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

	Bitmask []byte `protobuf:"bytes,1,opt,name=bitmask,proto3,oneof" json:"bitmask,omitempty"`
}

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

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

func (*TraceEvent_ControlGraftMeta) ProtoMessage() {}

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

func (x *TraceEvent_ControlGraftMeta) GetBitmask() []byte {
	if x != nil {
		return x.Bitmask
	}
	return nil
}

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

	Bitmask []byte   `protobuf:"bytes,1,opt,name=bitmask,proto3,oneof" json:"bitmask,omitempty"`
	Peers   [][]byte `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"`
}

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

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

func (*TraceEvent_ControlPruneMeta) ProtoMessage() {}

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

func (x *TraceEvent_ControlPruneMeta) GetBitmask() []byte {
	if x != nil {
		return x.Bitmask
	}
	return nil
}

func (x *TraceEvent_ControlPruneMeta) GetPeers() [][]byte {
	if x != nil {
		return x.Peers
	}
	return nil
}

var File_trace_proto protoreflect.FileDescriptor

var file_trace_proto_rawDesc = []byte{
	0x0a, 0x0b, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x62,
	0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x22, 0xfe, 0x1e, 0x0a,
	0x0a, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x62, 0x6c, 0x6f, 0x73,
	0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45,
	0x76, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x44, 0x88, 0x01,
	0x01, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62,
	0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61,
	0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x03, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73,
	0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0d, 0x72,
	0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x27, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e,
	0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65,
	0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x04, 0x52, 0x0d, 0x72,
	0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12,
	0x5b, 0x0a, 0x10, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x62, 0x6c, 0x6f, 0x73,
	0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45,
	0x76, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x05, 0x52, 0x10, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x0e,
	0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75,
	0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e,
	0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x06,
	0x52, 0x0e, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75,
	0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e,
	0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x48, 0x07, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x65,
	0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50,
	0x65, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x62, 0x6c, 0x6f, 0x73,
	0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45,
	0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x48,
	0x08, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x88, 0x01, 0x01,
	0x12, 0x40, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x18, 0x0a, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x21, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70,
	0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x63,
	0x76, 0x52, 0x50, 0x43, 0x48, 0x09, 0x52, 0x07, 0x72, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x88,
	0x01, 0x01, 0x12, 0x40, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62,
	0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x53,
	0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x48, 0x0a, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x50,
	0x43, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x07, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73,
	0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x48, 0x0b, 0x52, 0x07, 0x64, 0x72, 0x6f, 0x70,
	0x52, 0x50, 0x43, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x04, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75,
	0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e,
	0x4a, 0x6f, 0x69, 0x6e, 0x48, 0x0c, 0x52, 0x04, 0x6a, 0x6f, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12,
	0x3a, 0x0a, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f,
	0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54,
	0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x48,
	0x0d, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x05, 0x67,
	0x72, 0x61, 0x66, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x6c, 0x6f,
	0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x72, 0x61, 0x66, 0x74, 0x48, 0x0e, 0x52, 0x05, 0x67,
	0x72, 0x61, 0x66, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x05, 0x70, 0x72, 0x75, 0x6e, 0x65,
	0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d,
	0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x2e, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x48, 0x0f, 0x52, 0x05, 0x70, 0x72, 0x75, 0x6e, 0x65,
	0x88, 0x01, 0x01, 0x1a, 0x6c, 0x0a, 0x0e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x6d,
	0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x07, 0x62, 0x69, 0x74,
	0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x49, 0x44, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73,
	0x6b, 0x1a, 0xcd, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76,
	0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x0c,
	0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12,
	0x1b, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48,
	0x02, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07,
	0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x03, 0x52,
	0x07, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f,
	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65,
	0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72,
	0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73,
	0x6b, 0x1a, 0xa8, 0x01, 0x0a, 0x10, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x72, 0x65, 0x63,
	0x65, 0x69, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48,
	0x01, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x88,
	0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0c, 0x48, 0x02, 0x52, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01,
	0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x42,
	0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d,
	0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x1a, 0xa6, 0x01, 0x0a,
	0x0e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
	0x21, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x88,
	0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01,
	0x01, 0x12, 0x27, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f,
	0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x02, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69,
	0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x69, 0x74,
	0x6d, 0x61, 0x73, 0x6b, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
	0x64, 0x46, 0x72, 0x6f, 0x6d, 0x1a, 0x56, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72,
	0x12, 0x1b, 0x0a, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
	0x48, 0x00, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a,
	0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x65, 0x65,
	0x72, 0x49, 0x44, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x34, 0x0a,
	0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x06, 0x70,
	0x65, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x06, 0x70,
	0x65, 0x65, 0x72, 0x49, 0x44, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x65, 0x65,
	0x72, 0x49, 0x44, 0x1a, 0x88, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x12,
	0x27, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
	0x64, 0x46, 0x72, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d,
	0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x2e, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x01, 0x52, 0x04, 0x6d, 0x65, 0x74,
	0x61, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
	0x64, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x1a, 0x76,
	0x0a, 0x07, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x6e,
	0x64, 0x54, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x6e,
	0x64, 0x54, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75,
	0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e,
	0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x01, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x88,
	0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x42, 0x07, 0x0a,
	0x05, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x1a, 0x76, 0x0a, 0x07, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50,
	0x43, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0c, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x3a,
	0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62,
	0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61,
	0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x48,
	0x01, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73,
	0x65, 0x6e, 0x64, 0x54, 0x6f, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x1a, 0x31,
	0x0a, 0x04, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x1d, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73,
	0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61,
	0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73,
	0x6b, 0x1a, 0x32, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x62, 0x69,
	0x74, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x62,
	0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x69,
	0x74, 0x6d, 0x61, 0x73, 0x6b, 0x1a, 0x5a, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x66, 0x74, 0x12, 0x1b,
	0x0a, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00,
	0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x62,
	0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x07,
	0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70,
	0x65, 0x65, 0x72, 0x49, 0x44, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73,
	0x6b, 0x1a, 0x5a, 0x0a, 0x05, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x65,
	0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x06, 0x70, 0x65,
	0x65, 0x72, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61,
	0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x07, 0x62, 0x69, 0x74, 0x6d,
	0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x49,
	0x44, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x1a, 0xe5, 0x01,
	0x0a, 0x07, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x08, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62, 0x6c,
	0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63,
	0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65,
	0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0c,
	0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e,
	0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x75,
	0x62, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75,
	0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e,
	0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x00, 0x52, 0x07, 0x63,
	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f,
	0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x1a, 0x69, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x4d, 0x65, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49,
	0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x49, 0x44, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61,
	0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x07, 0x62, 0x69, 0x74, 0x6d,
	0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x49, 0x44, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b,
	0x1a, 0x65, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x09, 0x73,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00,
	0x52, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d,
	0x0a, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48,
	0x01, 0x52, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a,
	0x0a, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f,
	0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x1a, 0x95, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74,
	0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x05, 0x69, 0x68, 0x61, 0x76, 0x65,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d,
	0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, 0x4d, 0x65,
	0x74, 0x61, 0x52, 0x05, 0x69, 0x68, 0x61, 0x76, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x69, 0x77, 0x61,
	0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73,
	0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74,
	0x4d, 0x65, 0x74, 0x61, 0x52, 0x05, 0x69, 0x77, 0x61, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x05, 0x67,
	0x72, 0x61, 0x66, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x62, 0x6c, 0x6f,
	0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61,
	0x66, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x05, 0x67, 0x72, 0x61, 0x66, 0x74, 0x12, 0x40, 0x0a,
	0x05, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x62,
	0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61,
	0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50,
	0x72, 0x75, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x05, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x1a,
	0x5d, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, 0x4d,
	0x65, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x88,
	0x01, 0x01, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49,
	0x44, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x1a, 0x32,
	0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65,
	0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49,
	0x44, 0x73, 0x1a, 0x3d, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61,
	0x66, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73,
	0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61,
	0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73,
	0x6b, 0x1a, 0x53, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e,
	0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x73,
	0x6b, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0c, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62,
	0x69, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0xcf, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x13, 0x0a, 0x0f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
	0x47, 0x45, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x55, 0x50, 0x4c,
	0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12,
	0x13, 0x0a, 0x0f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
	0x47, 0x45, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52,
	0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45,
	0x52, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x10,
	0x06, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x07, 0x12,
	0x0c, 0x0a, 0x08, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x08, 0x12, 0x08, 0x0a,
	0x04, 0x4a, 0x4f, 0x49, 0x4e, 0x10, 0x09, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x45, 0x41, 0x56, 0x45,
	0x10, 0x0a, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x52, 0x41, 0x46, 0x54, 0x10, 0x0b, 0x12, 0x09, 0x0a,
	0x05, 0x50, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x0c, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x49, 0x44, 0x42, 0x0c, 0x0a, 0x0a,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70,
	0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x10, 0x0a,
	0x0e, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42,
	0x13, 0x0a, 0x11, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72,
	0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x50,
	0x65, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65,
	0x65, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x42, 0x0a,
	0x0a, 0x08, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x64,
	0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x42,
	0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x72,
	0x61, 0x66, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x22, 0x42, 0x0a,
	0x0f, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68,
	0x12, 0x2f, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x19, 0x2e, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x62, 0x2e,
	0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x62, 0x61, 0x74, 0x63,
	0x68, 0x42, 0x43, 0x5a, 0x41, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x71, 0x75, 0x69, 0x6c,
	0x69, 0x62, 0x72, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x71, 0x75, 0x69, 0x6c, 0x69,
	0x62, 0x72, 0x69, 0x75, 0x6d, 0x2f, 0x6d, 0x6f, 0x6e, 0x6f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x67,
	0x6f, 0x2d, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2d, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d,
	0x73, 0x75, 0x62, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_trace_proto_rawDescOnce sync.Once
	file_trace_proto_rawDescData = file_trace_proto_rawDesc
)

func file_trace_proto_rawDescGZIP() []byte {
	file_trace_proto_rawDescOnce.Do(func() {
		file_trace_proto_rawDescData = protoimpl.X.CompressGZIP(file_trace_proto_rawDescData)
	})
	return file_trace_proto_rawDescData
}

var file_trace_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_trace_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_trace_proto_goTypes = []interface{}{
	(TraceEvent_Type)(0),                // 0: blossomsub.pb.TraceEvent.Type
	(*TraceEvent)(nil),                  // 1: blossomsub.pb.TraceEvent
	(*TraceEventBatch)(nil),             // 2: blossomsub.pb.TraceEventBatch
	(*TraceEvent_PublishMessage)(nil),   // 3: blossomsub.pb.TraceEvent.PublishMessage
	(*TraceEvent_RejectMessage)(nil),    // 4: blossomsub.pb.TraceEvent.RejectMessage
	(*TraceEvent_DuplicateMessage)(nil), // 5: blossomsub.pb.TraceEvent.DuplicateMessage
	(*TraceEvent_DeliverMessage)(nil),   // 6: blossomsub.pb.TraceEvent.DeliverMessage
	(*TraceEvent_AddPeer)(nil),          // 7: blossomsub.pb.TraceEvent.AddPeer
	(*TraceEvent_RemovePeer)(nil),       // 8: blossomsub.pb.TraceEvent.RemovePeer
	(*TraceEvent_RecvRPC)(nil),          // 9: blossomsub.pb.TraceEvent.RecvRPC
	(*TraceEvent_SendRPC)(nil),          // 10: blossomsub.pb.TraceEvent.SendRPC
	(*TraceEvent_DropRPC)(nil),          // 11: blossomsub.pb.TraceEvent.DropRPC
	(*TraceEvent_Join)(nil),             // 12: blossomsub.pb.TraceEvent.Join
	(*TraceEvent_Leave)(nil),            // 13: blossomsub.pb.TraceEvent.Leave
	(*TraceEvent_Graft)(nil),            // 14: blossomsub.pb.TraceEvent.Graft
	(*TraceEvent_Prune)(nil),            // 15: blossomsub.pb.TraceEvent.Prune
	(*TraceEvent_RPCMeta)(nil),          // 16: blossomsub.pb.TraceEvent.RPCMeta
	(*TraceEvent_MessageMeta)(nil),      // 17: blossomsub.pb.TraceEvent.MessageMeta
	(*TraceEvent_SubMeta)(nil),          // 18: blossomsub.pb.TraceEvent.SubMeta
	(*TraceEvent_ControlMeta)(nil),      // 19: blossomsub.pb.TraceEvent.ControlMeta
	(*TraceEvent_ControlIHaveMeta)(nil), // 20: blossomsub.pb.TraceEvent.ControlIHaveMeta
	(*TraceEvent_ControlIWantMeta)(nil), // 21: blossomsub.pb.TraceEvent.ControlIWantMeta
	(*TraceEvent_ControlGraftMeta)(nil), // 22: blossomsub.pb.TraceEvent.ControlGraftMeta
	(*TraceEvent_ControlPruneMeta)(nil), // 23: blossomsub.pb.TraceEvent.ControlPruneMeta
}
var file_trace_proto_depIdxs = []int32{
	0,  // 0: blossomsub.pb.TraceEvent.type:type_name -> blossomsub.pb.TraceEvent.Type
	3,  // 1: blossomsub.pb.TraceEvent.publishMessage:type_name -> blossomsub.pb.TraceEvent.PublishMessage
	4,  // 2: blossomsub.pb.TraceEvent.rejectMessage:type_name -> blossomsub.pb.TraceEvent.RejectMessage
	5,  // 3: blossomsub.pb.TraceEvent.duplicateMessage:type_name -> blossomsub.pb.TraceEvent.DuplicateMessage
	6,  // 4: blossomsub.pb.TraceEvent.deliverMessage:type_name -> blossomsub.pb.TraceEvent.DeliverMessage
	7,  // 5: blossomsub.pb.TraceEvent.addPeer:type_name -> blossomsub.pb.TraceEvent.AddPeer
	8,  // 6: blossomsub.pb.TraceEvent.removePeer:type_name -> blossomsub.pb.TraceEvent.RemovePeer
	9,  // 7: blossomsub.pb.TraceEvent.recvRPC:type_name -> blossomsub.pb.TraceEvent.RecvRPC
	10, // 8: blossomsub.pb.TraceEvent.sendRPC:type_name -> blossomsub.pb.TraceEvent.SendRPC
	11, // 9: blossomsub.pb.TraceEvent.dropRPC:type_name -> blossomsub.pb.TraceEvent.DropRPC
	12, // 10: blossomsub.pb.TraceEvent.join:type_name -> blossomsub.pb.TraceEvent.Join
	13, // 11: blossomsub.pb.TraceEvent.leave:type_name -> blossomsub.pb.TraceEvent.Leave
	14, // 12: blossomsub.pb.TraceEvent.graft:type_name -> blossomsub.pb.TraceEvent.Graft
	15, // 13: blossomsub.pb.TraceEvent.prune:type_name -> blossomsub.pb.TraceEvent.Prune
	1,  // 14: blossomsub.pb.TraceEventBatch.batch:type_name -> blossomsub.pb.TraceEvent
	16, // 15: blossomsub.pb.TraceEvent.RecvRPC.meta:type_name -> blossomsub.pb.TraceEvent.RPCMeta
	16, // 16: blossomsub.pb.TraceEvent.SendRPC.meta:type_name -> blossomsub.pb.TraceEvent.RPCMeta
	16, // 17: blossomsub.pb.TraceEvent.DropRPC.meta:type_name -> blossomsub.pb.TraceEvent.RPCMeta
	17, // 18: blossomsub.pb.TraceEvent.RPCMeta.messages:type_name -> blossomsub.pb.TraceEvent.MessageMeta
	18, // 19: blossomsub.pb.TraceEvent.RPCMeta.subscription:type_name -> blossomsub.pb.TraceEvent.SubMeta
	19, // 20: blossomsub.pb.TraceEvent.RPCMeta.control:type_name -> blossomsub.pb.TraceEvent.ControlMeta
	20, // 21: blossomsub.pb.TraceEvent.ControlMeta.ihave:type_name -> blossomsub.pb.TraceEvent.ControlIHaveMeta
	21, // 22: blossomsub.pb.TraceEvent.ControlMeta.iwant:type_name -> blossomsub.pb.TraceEvent.ControlIWantMeta
	22, // 23: blossomsub.pb.TraceEvent.ControlMeta.graft:type_name -> blossomsub.pb.TraceEvent.ControlGraftMeta
	23, // 24: blossomsub.pb.TraceEvent.ControlMeta.prune:type_name -> blossomsub.pb.TraceEvent.ControlPruneMeta
	25, // [25:25] is the sub-list for method output_type
	25, // [25:25] is the sub-list for method input_type
	25, // [25:25] is the sub-list for extension type_name
	25, // [25:25] is the sub-list for extension extendee
	0,  // [0:25] is the sub-list for field type_name
}

func init() { file_trace_proto_init() }
func file_trace_proto_init() {
	if File_trace_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_trace_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEventBatch); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_PublishMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_RejectMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_DuplicateMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_DeliverMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_AddPeer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_RemovePeer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_RecvRPC); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_SendRPC); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_DropRPC); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_Join); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_Leave); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_Graft); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_Prune); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_RPCMeta); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_MessageMeta); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_SubMeta); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_ControlMeta); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_ControlIHaveMeta); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_ControlIWantMeta); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_ControlGraftMeta); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_trace_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TraceEvent_ControlPruneMeta); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_trace_proto_msgTypes[0].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[2].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[3].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[4].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[5].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[6].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[7].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[8].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[9].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[10].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[11].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[12].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[13].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[14].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[15].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[16].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[17].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[19].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[21].OneofWrappers = []interface{}{}
	file_trace_proto_msgTypes[22].OneofWrappers = []interface{}{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_trace_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   23,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_trace_proto_goTypes,
		DependencyIndexes: file_trace_proto_depIdxs,
		EnumInfos:         file_trace_proto_enumTypes,
		MessageInfos:      file_trace_proto_msgTypes,
	}.Build()
	File_trace_proto = out.File
	file_trace_proto_rawDesc = nil
	file_trace_proto_goTypes = nil
	file_trace_proto_depIdxs = nil
}