// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.27.1
// 	protoc        v3.15.5
// source: proto/rtc.proto

package proto

import (
	context "context"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	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 CommonResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrCode int32  `protobuf:"varint,1,opt,name=errCode,proto3" json:"errCode,omitempty"`
	ErrMsg  string `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg,omitempty"`
}

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

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

func (*CommonResp) ProtoMessage() {}

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

func (x *CommonResp) GetErrCode() int32 {
	if x != nil {
		return x.ErrCode
	}
	return 0
}

func (x *CommonResp) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

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

	SendID           string           `protobuf:"bytes,1,opt,name=sendID,proto3" json:"sendID,omitempty"`
	RecvID           string           `protobuf:"bytes,2,opt,name=recvID,proto3" json:"recvID,omitempty"`
	GroupID          string           `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID,omitempty"`
	ClientMsgID      string           `protobuf:"bytes,4,opt,name=clientMsgID,proto3" json:"clientMsgID,omitempty"`
	ServerMsgID      string           `protobuf:"bytes,5,opt,name=serverMsgID,proto3" json:"serverMsgID,omitempty"`
	SenderPlatformID int32            `protobuf:"varint,6,opt,name=senderPlatformID,proto3" json:"senderPlatformID,omitempty"`
	SenderNickname   string           `protobuf:"bytes,7,opt,name=senderNickname,proto3" json:"senderNickname,omitempty"`
	SenderFaceURL    string           `protobuf:"bytes,8,opt,name=senderFaceURL,proto3" json:"senderFaceURL,omitempty"`
	SessionType      int32            `protobuf:"varint,9,opt,name=sessionType,proto3" json:"sessionType,omitempty"`
	MsgFrom          int32            `protobuf:"varint,10,opt,name=msgFrom,proto3" json:"msgFrom,omitempty"`
	ContentType      int32            `protobuf:"varint,11,opt,name=contentType,proto3" json:"contentType,omitempty"`
	Content          []byte           `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"`
	Seq              uint32           `protobuf:"varint,14,opt,name=seq,proto3" json:"seq,omitempty"`
	SendTime         int64            `protobuf:"varint,15,opt,name=sendTime,proto3" json:"sendTime,omitempty"`
	CreateTime       int64            `protobuf:"varint,16,opt,name=createTime,proto3" json:"createTime,omitempty"`
	Status           int32            `protobuf:"varint,17,opt,name=status,proto3" json:"status,omitempty"`
	Options          map[string]bool  `protobuf:"bytes,18,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	OfflinePushInfo  *OfflinePushInfo `protobuf:"bytes,19,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
}

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

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

func (*MsgData) ProtoMessage() {}

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

func (x *MsgData) GetSendID() string {
	if x != nil {
		return x.SendID
	}
	return ""
}

func (x *MsgData) GetRecvID() string {
	if x != nil {
		return x.RecvID
	}
	return ""
}

func (x *MsgData) GetGroupID() string {
	if x != nil {
		return x.GroupID
	}
	return ""
}

func (x *MsgData) GetClientMsgID() string {
	if x != nil {
		return x.ClientMsgID
	}
	return ""
}

func (x *MsgData) GetServerMsgID() string {
	if x != nil {
		return x.ServerMsgID
	}
	return ""
}

func (x *MsgData) GetSenderPlatformID() int32 {
	if x != nil {
		return x.SenderPlatformID
	}
	return 0
}

func (x *MsgData) GetSenderNickname() string {
	if x != nil {
		return x.SenderNickname
	}
	return ""
}

func (x *MsgData) GetSenderFaceURL() string {
	if x != nil {
		return x.SenderFaceURL
	}
	return ""
}

func (x *MsgData) GetSessionType() int32 {
	if x != nil {
		return x.SessionType
	}
	return 0
}

func (x *MsgData) GetMsgFrom() int32 {
	if x != nil {
		return x.MsgFrom
	}
	return 0
}

func (x *MsgData) GetContentType() int32 {
	if x != nil {
		return x.ContentType
	}
	return 0
}

func (x *MsgData) GetContent() []byte {
	if x != nil {
		return x.Content
	}
	return nil
}

func (x *MsgData) GetSeq() uint32 {
	if x != nil {
		return x.Seq
	}
	return 0
}

func (x *MsgData) GetSendTime() int64 {
	if x != nil {
		return x.SendTime
	}
	return 0
}

func (x *MsgData) GetCreateTime() int64 {
	if x != nil {
		return x.CreateTime
	}
	return 0
}

func (x *MsgData) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *MsgData) GetOptions() map[string]bool {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *MsgData) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

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

	GroupID       string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"`
	GroupName     string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"`
	Notification  string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"`
	Introduction  string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"`
	FaceURL       string `protobuf:"bytes,5,opt,name=faceURL,proto3" json:"faceURL,omitempty"`
	OwnerUserID   string `protobuf:"bytes,6,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"`
	CreateTime    uint32 `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"`
	MemberCount   uint32 `protobuf:"varint,8,opt,name=memberCount,proto3" json:"memberCount,omitempty"`
	Ex            string `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex,omitempty"`
	Status        int32  `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"`
	CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID,proto3" json:"creatorUserID,omitempty"`
	GroupType     int32  `protobuf:"varint,12,opt,name=groupType,proto3" json:"groupType,omitempty"`
}

func (x *GroupInfo) Reset() {
	*x = GroupInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_proto_rtc_proto_msgTypes[2]
		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_proto_rtc_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 GroupInfo.ProtoReflect.Descriptor instead.
func (*GroupInfo) Descriptor() ([]byte, []int) {
	return file_proto_rtc_proto_rawDescGZIP(), []int{2}
}

func (x *GroupInfo) GetGroupID() string {
	if x != nil {
		return x.GroupID
	}
	return ""
}

func (x *GroupInfo) GetGroupName() string {
	if x != nil {
		return x.GroupName
	}
	return ""
}

func (x *GroupInfo) GetNotification() string {
	if x != nil {
		return x.Notification
	}
	return ""
}

func (x *GroupInfo) GetIntroduction() string {
	if x != nil {
		return x.Introduction
	}
	return ""
}

func (x *GroupInfo) GetFaceURL() string {
	if x != nil {
		return x.FaceURL
	}
	return ""
}

func (x *GroupInfo) GetOwnerUserID() string {
	if x != nil {
		return x.OwnerUserID
	}
	return ""
}

func (x *GroupInfo) GetCreateTime() uint32 {
	if x != nil {
		return x.CreateTime
	}
	return 0
}

func (x *GroupInfo) GetMemberCount() uint32 {
	if x != nil {
		return x.MemberCount
	}
	return 0
}

func (x *GroupInfo) GetEx() string {
	if x != nil {
		return x.Ex
	}
	return ""
}

func (x *GroupInfo) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *GroupInfo) GetCreatorUserID() string {
	if x != nil {
		return x.CreatorUserID
	}
	return ""
}

func (x *GroupInfo) GetGroupType() int32 {
	if x != nil {
		return x.GroupType
	}
	return 0
}

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

	GroupID        string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"`
	UserID         string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"`
	RoleLevel      int32  `protobuf:"varint,3,opt,name=roleLevel,proto3" json:"roleLevel,omitempty"`
	JoinTime       int32  `protobuf:"varint,4,opt,name=joinTime,proto3" json:"joinTime,omitempty"`
	Nickname       string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname,omitempty"`
	FaceURL        string `protobuf:"bytes,6,opt,name=faceURL,proto3" json:"faceURL,omitempty"`
	AppMangerLevel int32  `protobuf:"varint,7,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` //if >0
	JoinSource     int32  `protobuf:"varint,8,opt,name=joinSource,proto3" json:"joinSource,omitempty"`
	OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"`
	Ex             string `protobuf:"bytes,10,opt,name=ex,proto3" json:"ex,omitempty"`
}

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

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

func (*GroupMemberFullInfo) ProtoMessage() {}

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

func (x *GroupMemberFullInfo) GetGroupID() string {
	if x != nil {
		return x.GroupID
	}
	return ""
}

func (x *GroupMemberFullInfo) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

func (x *GroupMemberFullInfo) GetRoleLevel() int32 {
	if x != nil {
		return x.RoleLevel
	}
	return 0
}

func (x *GroupMemberFullInfo) GetJoinTime() int32 {
	if x != nil {
		return x.JoinTime
	}
	return 0
}

func (x *GroupMemberFullInfo) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

func (x *GroupMemberFullInfo) GetFaceURL() string {
	if x != nil {
		return x.FaceURL
	}
	return ""
}

func (x *GroupMemberFullInfo) GetAppMangerLevel() int32 {
	if x != nil {
		return x.AppMangerLevel
	}
	return 0
}

func (x *GroupMemberFullInfo) GetJoinSource() int32 {
	if x != nil {
		return x.JoinSource
	}
	return 0
}

func (x *GroupMemberFullInfo) GetOperatorUserID() string {
	if x != nil {
		return x.OperatorUserID
	}
	return ""
}

func (x *GroupMemberFullInfo) GetEx() string {
	if x != nil {
		return x.Ex
	}
	return ""
}

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

	GroupInfo       *GroupInfo           `protobuf:"bytes,1,opt,name=groupInfo,proto3" json:"groupInfo,omitempty"`
	GroupMemberInfo *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=groupMemberInfo,proto3" json:"groupMemberInfo,omitempty"`
	UserInfo        *PublicUserInfo      `protobuf:"bytes,3,opt,name=userInfo,proto3" json:"userInfo,omitempty"`
}

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

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

func (*ParticipantMetaData) ProtoMessage() {}

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

func (x *ParticipantMetaData) GetGroupInfo() *GroupInfo {
	if x != nil {
		return x.GroupInfo
	}
	return nil
}

func (x *ParticipantMetaData) GetGroupMemberInfo() *GroupMemberFullInfo {
	if x != nil {
		return x.GroupMemberInfo
	}
	return nil
}

func (x *ParticipantMetaData) GetUserInfo() *PublicUserInfo {
	if x != nil {
		return x.UserInfo
	}
	return nil
}

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

	UserID   string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"`
	Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"`
	FaceURL  string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"`
	Gender   int32  `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"`
	Ex       string `protobuf:"bytes,5,opt,name=ex,proto3" json:"ex,omitempty"`
}

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

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

func (*PublicUserInfo) ProtoMessage() {}

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

func (x *PublicUserInfo) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

func (x *PublicUserInfo) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

func (x *PublicUserInfo) GetFaceURL() string {
	if x != nil {
		return x.FaceURL
	}
	return ""
}

func (x *PublicUserInfo) GetGender() int32 {
	if x != nil {
		return x.Gender
	}
	return 0
}

func (x *PublicUserInfo) GetEx() string {
	if x != nil {
		return x.Ex
	}
	return ""
}

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

	Room        string               `protobuf:"bytes,1,opt,name=room,proto3" json:"room,omitempty"`
	Identity    string               `protobuf:"bytes,2,opt,name=identity,proto3" json:"identity,omitempty"`
	MetaData    *ParticipantMetaData `protobuf:"bytes,3,opt,name=metaData,proto3" json:"metaData,omitempty"`
	OperationID string               `protobuf:"bytes,4,opt,name=operationID,proto3" json:"operationID,omitempty"`
}

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

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

func (*GetJoinTokenReq) ProtoMessage() {}

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

func (x *GetJoinTokenReq) GetRoom() string {
	if x != nil {
		return x.Room
	}
	return ""
}

func (x *GetJoinTokenReq) GetIdentity() string {
	if x != nil {
		return x.Identity
	}
	return ""
}

func (x *GetJoinTokenReq) GetMetaData() *ParticipantMetaData {
	if x != nil {
		return x.MetaData
	}
	return nil
}

func (x *GetJoinTokenReq) GetOperationID() string {
	if x != nil {
		return x.OperationID
	}
	return ""
}

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

	CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"`
	Jwt        string      `protobuf:"bytes,2,opt,name=jwt,proto3" json:"jwt,omitempty"`
	LiveURL    string      `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"`
}

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

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

func (*GetJoinTokenResp) ProtoMessage() {}

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

func (x *GetJoinTokenResp) GetCommonResp() *CommonResp {
	if x != nil {
		return x.CommonResp
	}
	return nil
}

func (x *GetJoinTokenResp) GetJwt() string {
	if x != nil {
		return x.Jwt
	}
	return ""
}

func (x *GetJoinTokenResp) GetLiveURL() string {
	if x != nil {
		return x.LiveURL
	}
	return ""
}

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

	Title         string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
	Desc          string `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"`
	Ex            string `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex,omitempty"`
	IOSPushSound  string `protobuf:"bytes,4,opt,name=iOSPushSound,proto3" json:"iOSPushSound,omitempty"`
	IOSBadgeCount bool   `protobuf:"varint,5,opt,name=iOSBadgeCount,proto3" json:"iOSBadgeCount,omitempty"`
}

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

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

func (*OfflinePushInfo) ProtoMessage() {}

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

func (x *OfflinePushInfo) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *OfflinePushInfo) GetDesc() string {
	if x != nil {
		return x.Desc
	}
	return ""
}

func (x *OfflinePushInfo) GetEx() string {
	if x != nil {
		return x.Ex
	}
	return ""
}

func (x *OfflinePushInfo) GetIOSPushSound() string {
	if x != nil {
		return x.IOSPushSound
	}
	return ""
}

func (x *OfflinePushInfo) GetIOSBadgeCount() bool {
	if x != nil {
		return x.IOSBadgeCount
	}
	return false
}

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

	// Types that are assignable to Payload:
	//	*SignalReq_Invite
	//	*SignalReq_InviteInGroup
	//	*SignalReq_Cancel
	//	*SignalReq_Accept
	//	*SignalReq_HungUp
	//	*SignalReq_Reject
	Payload isSignalReq_Payload `protobuf_oneof:"payload"`
}

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

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

func (*SignalReq) ProtoMessage() {}

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

func (m *SignalReq) GetPayload() isSignalReq_Payload {
	if m != nil {
		return m.Payload
	}
	return nil
}

func (x *SignalReq) GetInvite() *SignalInviteReq {
	if x, ok := x.GetPayload().(*SignalReq_Invite); ok {
		return x.Invite
	}
	return nil
}

func (x *SignalReq) GetInviteInGroup() *SignalInviteInGroupReq {
	if x, ok := x.GetPayload().(*SignalReq_InviteInGroup); ok {
		return x.InviteInGroup
	}
	return nil
}

func (x *SignalReq) GetCancel() *SignalCancelReq {
	if x, ok := x.GetPayload().(*SignalReq_Cancel); ok {
		return x.Cancel
	}
	return nil
}

func (x *SignalReq) GetAccept() *SignalAcceptReq {
	if x, ok := x.GetPayload().(*SignalReq_Accept); ok {
		return x.Accept
	}
	return nil
}

func (x *SignalReq) GetHungUp() *SignalHungUpReq {
	if x, ok := x.GetPayload().(*SignalReq_HungUp); ok {
		return x.HungUp
	}
	return nil
}

func (x *SignalReq) GetReject() *SignalRejectReq {
	if x, ok := x.GetPayload().(*SignalReq_Reject); ok {
		return x.Reject
	}
	return nil
}

type isSignalReq_Payload interface {
	isSignalReq_Payload()
}

type SignalReq_Invite struct {
	Invite *SignalInviteReq `protobuf:"bytes,1,opt,name=invite,proto3,oneof"`
}

type SignalReq_InviteInGroup struct {
	InviteInGroup *SignalInviteInGroupReq `protobuf:"bytes,2,opt,name=inviteInGroup,proto3,oneof"`
}

type SignalReq_Cancel struct {
	Cancel *SignalCancelReq `protobuf:"bytes,3,opt,name=cancel,proto3,oneof"`
}

type SignalReq_Accept struct {
	Accept *SignalAcceptReq `protobuf:"bytes,4,opt,name=accept,proto3,oneof"`
}

type SignalReq_HungUp struct {
	HungUp *SignalHungUpReq `protobuf:"bytes,5,opt,name=hungUp,proto3,oneof"`
}

type SignalReq_Reject struct {
	Reject *SignalRejectReq `protobuf:"bytes,6,opt,name=reject,proto3,oneof"`
}

func (*SignalReq_Invite) isSignalReq_Payload() {}

func (*SignalReq_InviteInGroup) isSignalReq_Payload() {}

func (*SignalReq_Cancel) isSignalReq_Payload() {}

func (*SignalReq_Accept) isSignalReq_Payload() {}

func (*SignalReq_HungUp) isSignalReq_Payload() {}

func (*SignalReq_Reject) isSignalReq_Payload() {}

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

	// Types that are assignable to Payload:
	//	*SignalResp_Invite
	//	*SignalResp_InviteInGroup
	//	*SignalResp_Cancel
	//	*SignalResp_Accept
	//	*SignalResp_HungUp
	//	*SignalResp_Reject
	Payload isSignalResp_Payload `protobuf_oneof:"payload"`
}

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

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

func (*SignalResp) ProtoMessage() {}

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

func (m *SignalResp) GetPayload() isSignalResp_Payload {
	if m != nil {
		return m.Payload
	}
	return nil
}

func (x *SignalResp) GetInvite() *SignalInviteReply {
	if x, ok := x.GetPayload().(*SignalResp_Invite); ok {
		return x.Invite
	}
	return nil
}

func (x *SignalResp) GetInviteInGroup() *SignalInviteInGroupReply {
	if x, ok := x.GetPayload().(*SignalResp_InviteInGroup); ok {
		return x.InviteInGroup
	}
	return nil
}

func (x *SignalResp) GetCancel() *SignalCancelReply {
	if x, ok := x.GetPayload().(*SignalResp_Cancel); ok {
		return x.Cancel
	}
	return nil
}

func (x *SignalResp) GetAccept() *SignalAcceptReply {
	if x, ok := x.GetPayload().(*SignalResp_Accept); ok {
		return x.Accept
	}
	return nil
}

func (x *SignalResp) GetHungUp() *SignalHungUpReply {
	if x, ok := x.GetPayload().(*SignalResp_HungUp); ok {
		return x.HungUp
	}
	return nil
}

func (x *SignalResp) GetReject() *SignalRejectReply {
	if x, ok := x.GetPayload().(*SignalResp_Reject); ok {
		return x.Reject
	}
	return nil
}

type isSignalResp_Payload interface {
	isSignalResp_Payload()
}

type SignalResp_Invite struct {
	Invite *SignalInviteReply `protobuf:"bytes,1,opt,name=invite,proto3,oneof"`
}

type SignalResp_InviteInGroup struct {
	InviteInGroup *SignalInviteInGroupReply `protobuf:"bytes,2,opt,name=inviteInGroup,proto3,oneof"`
}

type SignalResp_Cancel struct {
	Cancel *SignalCancelReply `protobuf:"bytes,3,opt,name=cancel,proto3,oneof"`
}

type SignalResp_Accept struct {
	Accept *SignalAcceptReply `protobuf:"bytes,4,opt,name=accept,proto3,oneof"`
}

type SignalResp_HungUp struct {
	HungUp *SignalHungUpReply `protobuf:"bytes,5,opt,name=hungUp,proto3,oneof"`
}

type SignalResp_Reject struct {
	Reject *SignalRejectReply `protobuf:"bytes,6,opt,name=reject,proto3,oneof"`
}

func (*SignalResp_Invite) isSignalResp_Payload() {}

func (*SignalResp_InviteInGroup) isSignalResp_Payload() {}

func (*SignalResp_Cancel) isSignalResp_Payload() {}

func (*SignalResp_Accept) isSignalResp_Payload() {}

func (*SignalResp_HungUp) isSignalResp_Payload() {}

func (*SignalResp_Reject) isSignalResp_Payload() {}

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

	InviterUserID     string   `protobuf:"bytes,1,opt,name=inviterUserID,proto3" json:"inviterUserID,omitempty"`
	InviteeUserIDList []string `protobuf:"bytes,2,rep,name=inviteeUserIDList,proto3" json:"inviteeUserIDList,omitempty"`
	CustomData        string   `protobuf:"bytes,3,opt,name=customData,proto3" json:"customData,omitempty"`
	GroupID           string   `protobuf:"bytes,4,opt,name=groupID,proto3" json:"groupID,omitempty"`
	RoomID            string   `protobuf:"bytes,5,opt,name=roomID,proto3" json:"roomID,omitempty"`
	Timeout           int32    `protobuf:"varint,6,opt,name=timeout,proto3" json:"timeout,omitempty"`
	MediaType         string   `protobuf:"bytes,7,opt,name=mediaType,proto3" json:"mediaType,omitempty"`
	PlatformID        int32    `protobuf:"varint,8,opt,name=platformID,proto3" json:"platformID,omitempty"`
	SessionType       int32    `protobuf:"varint,9,opt,name=sessionType,proto3" json:"sessionType,omitempty"`
}

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

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

func (*InvitationInfo) ProtoMessage() {}

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

func (x *InvitationInfo) GetInviterUserID() string {
	if x != nil {
		return x.InviterUserID
	}
	return ""
}

func (x *InvitationInfo) GetInviteeUserIDList() []string {
	if x != nil {
		return x.InviteeUserIDList
	}
	return nil
}

func (x *InvitationInfo) GetCustomData() string {
	if x != nil {
		return x.CustomData
	}
	return ""
}

func (x *InvitationInfo) GetGroupID() string {
	if x != nil {
		return x.GroupID
	}
	return ""
}

func (x *InvitationInfo) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *InvitationInfo) GetTimeout() int32 {
	if x != nil {
		return x.Timeout
	}
	return 0
}

func (x *InvitationInfo) GetMediaType() string {
	if x != nil {
		return x.MediaType
	}
	return ""
}

func (x *InvitationInfo) GetPlatformID() int32 {
	if x != nil {
		return x.PlatformID
	}
	return 0
}

func (x *InvitationInfo) GetSessionType() int32 {
	if x != nil {
		return x.SessionType
	}
	return 0
}

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

	OpUserID        string               `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"`
	Invitation      *InvitationInfo      `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"`
	OfflinePushInfo *OfflinePushInfo     `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
	Participant     *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"`
}

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

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

func (*SignalInviteReq) ProtoMessage() {}

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

func (x *SignalInviteReq) GetOpUserID() string {
	if x != nil {
		return x.OpUserID
	}
	return ""
}

func (x *SignalInviteReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalInviteReq) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

func (x *SignalInviteReq) GetParticipant() *ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

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

	Token   string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	RoomID  string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"`
	LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"`
}

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

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

func (*SignalInviteReply) ProtoMessage() {}

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

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

func (x *SignalInviteReply) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalInviteReply) GetLiveURL() string {
	if x != nil {
		return x.LiveURL
	}
	return ""
}

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

	OpUserID        string               `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"`
	Invitation      *InvitationInfo      `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"`
	OfflinePushInfo *OfflinePushInfo     `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
	Participant     *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"`
}

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

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

func (*SignalInviteInGroupReq) ProtoMessage() {}

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

func (x *SignalInviteInGroupReq) GetOpUserID() string {
	if x != nil {
		return x.OpUserID
	}
	return ""
}

func (x *SignalInviteInGroupReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalInviteInGroupReq) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

func (x *SignalInviteInGroupReq) GetParticipant() *ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

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

	Token   string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	RoomID  string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"`
	LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"`
}

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

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

func (*SignalInviteInGroupReply) ProtoMessage() {}

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

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

func (x *SignalInviteInGroupReply) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalInviteInGroupReply) GetLiveURL() string {
	if x != nil {
		return x.LiveURL
	}
	return ""
}

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

	OpUserID        string               `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"`
	Invitation      *InvitationInfo      `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"`
	OfflinePushInfo *OfflinePushInfo     `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
	Participant     *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"`
}

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

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

func (*SignalCancelReq) ProtoMessage() {}

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

func (x *SignalCancelReq) GetOpUserID() string {
	if x != nil {
		return x.OpUserID
	}
	return ""
}

func (x *SignalCancelReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalCancelReq) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

func (x *SignalCancelReq) GetParticipant() *ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

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

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

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

func (*SignalCancelReply) ProtoMessage() {}

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

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

	OpUserID         string               `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"`
	Invitation       *InvitationInfo      `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"`
	OfflinePushInfo  *OfflinePushInfo     `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
	Participant      *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"`
	OpUserPlatformID int32                `protobuf:"varint,5,opt,name=opUserPlatformID,proto3" json:"opUserPlatformID,omitempty"`
}

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

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

func (*SignalAcceptReq) ProtoMessage() {}

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

func (x *SignalAcceptReq) GetOpUserID() string {
	if x != nil {
		return x.OpUserID
	}
	return ""
}

func (x *SignalAcceptReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalAcceptReq) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

func (x *SignalAcceptReq) GetParticipant() *ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

func (x *SignalAcceptReq) GetOpUserPlatformID() int32 {
	if x != nil {
		return x.OpUserPlatformID
	}
	return 0
}

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

	Token   string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	RoomID  string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"`
	LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"`
}

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

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

func (*SignalAcceptReply) ProtoMessage() {}

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

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

func (x *SignalAcceptReply) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalAcceptReply) GetLiveURL() string {
	if x != nil {
		return x.LiveURL
	}
	return ""
}

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

	OpUserID        string           `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"`
	Invitation      *InvitationInfo  `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"`
	OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
}

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

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

func (*SignalHungUpReq) ProtoMessage() {}

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

func (x *SignalHungUpReq) GetOpUserID() string {
	if x != nil {
		return x.OpUserID
	}
	return ""
}

func (x *SignalHungUpReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalHungUpReq) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

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

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

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

func (*SignalHungUpReply) ProtoMessage() {}

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

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

	OpUserID         string               `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"`
	Invitation       *InvitationInfo      `protobuf:"bytes,2,opt,name=invitation,proto3" json:"invitation,omitempty"`
	OfflinePushInfo  *OfflinePushInfo     `protobuf:"bytes,3,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
	Participant      *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant,proto3" json:"participant,omitempty"`
	OpUserPlatformID int32                `protobuf:"varint,5,opt,name=opUserPlatformID,proto3" json:"opUserPlatformID,omitempty"`
}

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

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

func (*SignalRejectReq) ProtoMessage() {}

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

func (x *SignalRejectReq) GetOpUserID() string {
	if x != nil {
		return x.OpUserID
	}
	return ""
}

func (x *SignalRejectReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalRejectReq) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

func (x *SignalRejectReq) GetParticipant() *ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

func (x *SignalRejectReq) GetOpUserPlatformID() int32 {
	if x != nil {
		return x.OpUserPlatformID
	}
	return 0
}

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

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

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

func (*SignalRejectReply) ProtoMessage() {}

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

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

	SignalReq   *SignalReq `protobuf:"bytes,1,opt,name=signalReq,proto3" json:"signalReq,omitempty"`
	OperationID string     `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"`
}

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

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

func (*SignalMessageAssembleReq) ProtoMessage() {}

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

func (x *SignalMessageAssembleReq) GetSignalReq() *SignalReq {
	if x != nil {
		return x.SignalReq
	}
	return nil
}

func (x *SignalMessageAssembleReq) GetOperationID() string {
	if x != nil {
		return x.OperationID
	}
	return ""
}

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

	CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"`
	IsPass     bool        `protobuf:"varint,2,opt,name=isPass,proto3" json:"isPass,omitempty"`
	SignalResp *SignalResp `protobuf:"bytes,3,opt,name=signalResp,proto3" json:"signalResp,omitempty"`
	MsgData    *MsgData    `protobuf:"bytes,4,opt,name=msgData,proto3" json:"msgData,omitempty"`
}

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

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

func (*SignalMessageAssembleResp) ProtoMessage() {}

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

func (x *SignalMessageAssembleResp) GetCommonResp() *CommonResp {
	if x != nil {
		return x.CommonResp
	}
	return nil
}

func (x *SignalMessageAssembleResp) GetIsPass() bool {
	if x != nil {
		return x.IsPass
	}
	return false
}

func (x *SignalMessageAssembleResp) GetSignalResp() *SignalResp {
	if x != nil {
		return x.SignalResp
	}
	return nil
}

func (x *SignalMessageAssembleResp) GetMsgData() *MsgData {
	if x != nil {
		return x.MsgData
	}
	return nil
}

var File_proto_rtc_proto protoreflect.FileDescriptor

var file_proto_rtc_proto_rawDesc = []byte{
	0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x74, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3e, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65,
	0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0xa4, 0x05, 0x0a, 0x07, 0x4d, 0x73, 0x67,
	0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06,
	0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65,
	0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x20,
	0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44,
	0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x65,
	0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x26,
	0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69,
	0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72,
	0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b,
	0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18,
	0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74,
	0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63,
	0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e,
	0x74, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69,
	0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
	0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x6f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x12, 0x40, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68,
	0x49, 0x6e, 0x66, 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49,
	0x6e, 0x66, 0x6f, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 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, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
	0xf5, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a,
	0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70,
	0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74,
	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74,
	0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a,
	0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77,
	0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d,
	0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b,
	0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x65,
	0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73,
	0x65, 0x72, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb7, 0x02, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
	0x44, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12,
	0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e,
	0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e,
	0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55,
	0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52,
	0x4c, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65,
	0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61,
	0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x69,
	0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6a,
	0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49,
	0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65,
	0x78, 0x22, 0xbe, 0x01, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
	0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x09, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x0f, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x31, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e,
	0x66, 0x6f, 0x22, 0x86, 0x01, 0x0a, 0x0e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a,
	0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63,
	0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65,
	0x55, 0x52, 0x4c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x65,
	0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x9b, 0x01, 0x0a, 0x0f,
	0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12,
	0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72,
	0x6f, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12,
	0x36, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63,
	0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d,
	0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70,
	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x71, 0x0a, 0x10, 0x47, 0x65, 0x74,
	0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a,
	0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x10, 0x0a, 0x03, 0x6a, 0x77, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6a,
	0x77, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0x95, 0x01, 0x0a,
	0x0f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x4f,
	0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0c, 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x24,
	0x0a, 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd7, 0x02, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52,
	0x65, 0x71, 0x12, 0x30, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61,
	0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e,
	0x76, 0x69, 0x74, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65,
	0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e,
	0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x30, 0x0a, 0x06, 0x63,
	0x61, 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c,
	0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x30, 0x0a,
	0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65,
	0x70, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x12,
	0x30, 0x0a, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75,
	0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55,
	0x70, 0x12, 0x30, 0x0a, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c,
	0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6a,
	0x65, 0x63, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xe4,
	0x02, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x32, 0x0a,
	0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69,
	0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74,
	0x65, 0x12, 0x47, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x76,
	0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x32, 0x0a, 0x06, 0x63, 0x61,
	0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x32,
	0x0a, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63,
	0x65, 0x70, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65,
	0x70, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61,
	0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06,
	0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x32, 0x0a, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79,
	0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61,
	0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xb0, 0x02, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69,
	0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2c,
	0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c,
	0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74,
	0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a,
	0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67,
	0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18,
	0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69,
	0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64,
	0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
	0x72, 0x6d, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73,
	0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x0f, 0x53, 0x69, 0x67,
	0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08,
	0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69,
	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x40, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e,
	0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66,
	0x6f, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50,
	0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61,
	0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22,
	0x5b, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f,
	0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d,
	0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0xeb, 0x01, 0x0a,
	0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a,
	0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x6f, 0x66,
	0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x66, 0x66, 0x6c,
	0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66,
	0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0b,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63,
	0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70,
	0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x62, 0x0a, 0x18, 0x53, 0x69,
	0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06,
	0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f,
	0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0xe4,
	0x01, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52,
	0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x35,
	0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65,
	0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75,
	0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50,
	0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69,
	0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
	0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63,
	0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43,
	0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x90, 0x02, 0x0a, 0x0f, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a,
	0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x0a, 0x69, 0x6e,
	0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68,
	0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49,
	0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61,
	0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61,
	0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
	0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66,
	0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, 0x70, 0x55,
	0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x22, 0x5b, 0x0a,
	0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x70,
	0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d,
	0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44,
	0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0xa6, 0x01, 0x0a, 0x0f, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1a,
	0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x0a, 0x69, 0x6e,
	0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68,
	0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49,
	0x6e, 0x66, 0x6f, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e,
	0x67, 0x55, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x90, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67,
	0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08,
	0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69,
	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x40, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e,
	0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66,
	0x6f, 0x12, 0x3c, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50,
	0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61,
	0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12,
	0x2a, 0x0a, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
	0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65,
	0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x22, 0x13, 0x0a, 0x11, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79,
	0x22, 0x6c, 0x0a, 0x18, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x09,
	0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65,
	0x71, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b,
	0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xc3,
	0x01, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0a,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52,
	0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12,
	0x16, 0x0a, 0x06, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x06, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61,
	0x6c, 0x52, 0x65, 0x73, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a,
	0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x07, 0x6d, 0x73,
	0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x6d, 0x73, 0x67,
	0x44, 0x61, 0x74, 0x61, 0x32, 0x68, 0x0a, 0x0a, 0x52, 0x74, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x12, 0x5a, 0x0a, 0x15, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0b,
	0x5a, 0x09, 0x2e, 0x2f, 0x72, 0x74, 0x63, 0x3b, 0x72, 0x74, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x33,
}

var (
	file_proto_rtc_proto_rawDescOnce sync.Once
	file_proto_rtc_proto_rawDescData = file_proto_rtc_proto_rawDesc
)

func file_proto_rtc_proto_rawDescGZIP() []byte {
	file_proto_rtc_proto_rawDescOnce.Do(func() {
		file_proto_rtc_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_rtc_proto_rawDescData)
	})
	return file_proto_rtc_proto_rawDescData
}

var file_proto_rtc_proto_msgTypes = make([]protoimpl.MessageInfo, 27)
var file_proto_rtc_proto_goTypes = []interface{}{
	(*CommonResp)(nil),                // 0: proto.CommonResp
	(*MsgData)(nil),                   // 1: proto.MsgData
	(*GroupInfo)(nil),                 // 2: proto.GroupInfo
	(*GroupMemberFullInfo)(nil),       // 3: proto.GroupMemberFullInfo
	(*ParticipantMetaData)(nil),       // 4: proto.ParticipantMetaData
	(*PublicUserInfo)(nil),            // 5: proto.PublicUserInfo
	(*GetJoinTokenReq)(nil),           // 6: proto.GetJoinTokenReq
	(*GetJoinTokenResp)(nil),          // 7: proto.GetJoinTokenResp
	(*OfflinePushInfo)(nil),           // 8: proto.OfflinePushInfo
	(*SignalReq)(nil),                 // 9: proto.SignalReq
	(*SignalResp)(nil),                // 10: proto.SignalResp
	(*InvitationInfo)(nil),            // 11: proto.InvitationInfo
	(*SignalInviteReq)(nil),           // 12: proto.SignalInviteReq
	(*SignalInviteReply)(nil),         // 13: proto.SignalInviteReply
	(*SignalInviteInGroupReq)(nil),    // 14: proto.SignalInviteInGroupReq
	(*SignalInviteInGroupReply)(nil),  // 15: proto.SignalInviteInGroupReply
	(*SignalCancelReq)(nil),           // 16: proto.SignalCancelReq
	(*SignalCancelReply)(nil),         // 17: proto.SignalCancelReply
	(*SignalAcceptReq)(nil),           // 18: proto.SignalAcceptReq
	(*SignalAcceptReply)(nil),         // 19: proto.SignalAcceptReply
	(*SignalHungUpReq)(nil),           // 20: proto.SignalHungUpReq
	(*SignalHungUpReply)(nil),         // 21: proto.SignalHungUpReply
	(*SignalRejectReq)(nil),           // 22: proto.SignalRejectReq
	(*SignalRejectReply)(nil),         // 23: proto.SignalRejectReply
	(*SignalMessageAssembleReq)(nil),  // 24: proto.SignalMessageAssembleReq
	(*SignalMessageAssembleResp)(nil), // 25: proto.SignalMessageAssembleResp
	nil,                               // 26: proto.MsgData.OptionsEntry
}
var file_proto_rtc_proto_depIdxs = []int32{
	26, // 0: proto.MsgData.options:type_name -> proto.MsgData.OptionsEntry
	8,  // 1: proto.MsgData.offlinePushInfo:type_name -> proto.OfflinePushInfo
	2,  // 2: proto.ParticipantMetaData.groupInfo:type_name -> proto.GroupInfo
	3,  // 3: proto.ParticipantMetaData.groupMemberInfo:type_name -> proto.GroupMemberFullInfo
	5,  // 4: proto.ParticipantMetaData.userInfo:type_name -> proto.PublicUserInfo
	4,  // 5: proto.GetJoinTokenReq.metaData:type_name -> proto.ParticipantMetaData
	0,  // 6: proto.GetJoinTokenResp.CommonResp:type_name -> proto.CommonResp
	12, // 7: proto.SignalReq.invite:type_name -> proto.SignalInviteReq
	14, // 8: proto.SignalReq.inviteInGroup:type_name -> proto.SignalInviteInGroupReq
	16, // 9: proto.SignalReq.cancel:type_name -> proto.SignalCancelReq
	18, // 10: proto.SignalReq.accept:type_name -> proto.SignalAcceptReq
	20, // 11: proto.SignalReq.hungUp:type_name -> proto.SignalHungUpReq
	22, // 12: proto.SignalReq.reject:type_name -> proto.SignalRejectReq
	13, // 13: proto.SignalResp.invite:type_name -> proto.SignalInviteReply
	15, // 14: proto.SignalResp.inviteInGroup:type_name -> proto.SignalInviteInGroupReply
	17, // 15: proto.SignalResp.cancel:type_name -> proto.SignalCancelReply
	19, // 16: proto.SignalResp.accept:type_name -> proto.SignalAcceptReply
	21, // 17: proto.SignalResp.hungUp:type_name -> proto.SignalHungUpReply
	23, // 18: proto.SignalResp.reject:type_name -> proto.SignalRejectReply
	11, // 19: proto.SignalInviteReq.invitation:type_name -> proto.InvitationInfo
	8,  // 20: proto.SignalInviteReq.offlinePushInfo:type_name -> proto.OfflinePushInfo
	4,  // 21: proto.SignalInviteReq.participant:type_name -> proto.ParticipantMetaData
	11, // 22: proto.SignalInviteInGroupReq.invitation:type_name -> proto.InvitationInfo
	8,  // 23: proto.SignalInviteInGroupReq.offlinePushInfo:type_name -> proto.OfflinePushInfo
	4,  // 24: proto.SignalInviteInGroupReq.participant:type_name -> proto.ParticipantMetaData
	11, // 25: proto.SignalCancelReq.invitation:type_name -> proto.InvitationInfo
	8,  // 26: proto.SignalCancelReq.offlinePushInfo:type_name -> proto.OfflinePushInfo
	4,  // 27: proto.SignalCancelReq.participant:type_name -> proto.ParticipantMetaData
	11, // 28: proto.SignalAcceptReq.invitation:type_name -> proto.InvitationInfo
	8,  // 29: proto.SignalAcceptReq.offlinePushInfo:type_name -> proto.OfflinePushInfo
	4,  // 30: proto.SignalAcceptReq.participant:type_name -> proto.ParticipantMetaData
	11, // 31: proto.SignalHungUpReq.invitation:type_name -> proto.InvitationInfo
	8,  // 32: proto.SignalHungUpReq.offlinePushInfo:type_name -> proto.OfflinePushInfo
	11, // 33: proto.SignalRejectReq.invitation:type_name -> proto.InvitationInfo
	8,  // 34: proto.SignalRejectReq.offlinePushInfo:type_name -> proto.OfflinePushInfo
	4,  // 35: proto.SignalRejectReq.participant:type_name -> proto.ParticipantMetaData
	9,  // 36: proto.SignalMessageAssembleReq.signalReq:type_name -> proto.SignalReq
	0,  // 37: proto.SignalMessageAssembleResp.commonResp:type_name -> proto.CommonResp
	10, // 38: proto.SignalMessageAssembleResp.signalResp:type_name -> proto.SignalResp
	1,  // 39: proto.SignalMessageAssembleResp.msgData:type_name -> proto.MsgData
	24, // 40: proto.RtcService.SignalMessageAssemble:input_type -> proto.SignalMessageAssembleReq
	25, // 41: proto.RtcService.SignalMessageAssemble:output_type -> proto.SignalMessageAssembleResp
	41, // [41:42] is the sub-list for method output_type
	40, // [40:41] is the sub-list for method input_type
	40, // [40:40] is the sub-list for extension type_name
	40, // [40:40] is the sub-list for extension extendee
	0,  // [0:40] is the sub-list for field type_name
}

func init() { file_proto_rtc_proto_init() }
func file_proto_rtc_proto_init() {
	if File_proto_rtc_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_proto_rtc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CommonResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MsgData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupMemberFullInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ParticipantMetaData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PublicUserInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetJoinTokenReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetJoinTokenResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OfflinePushInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InvitationInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalInviteReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalInviteReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalInviteInGroupReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalInviteInGroupReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalCancelReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalCancelReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalAcceptReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalAcceptReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalHungUpReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalHungUpReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalRejectReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalRejectReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalMessageAssembleReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_proto_rtc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalMessageAssembleResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_proto_rtc_proto_msgTypes[9].OneofWrappers = []interface{}{
		(*SignalReq_Invite)(nil),
		(*SignalReq_InviteInGroup)(nil),
		(*SignalReq_Cancel)(nil),
		(*SignalReq_Accept)(nil),
		(*SignalReq_HungUp)(nil),
		(*SignalReq_Reject)(nil),
	}
	file_proto_rtc_proto_msgTypes[10].OneofWrappers = []interface{}{
		(*SignalResp_Invite)(nil),
		(*SignalResp_InviteInGroup)(nil),
		(*SignalResp_Cancel)(nil),
		(*SignalResp_Accept)(nil),
		(*SignalResp_HungUp)(nil),
		(*SignalResp_Reject)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_proto_rtc_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   27,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_proto_rtc_proto_goTypes,
		DependencyIndexes: file_proto_rtc_proto_depIdxs,
		MessageInfos:      file_proto_rtc_proto_msgTypes,
	}.Build()
	File_proto_rtc_proto = out.File
	file_proto_rtc_proto_rawDesc = nil
	file_proto_rtc_proto_goTypes = nil
	file_proto_rtc_proto_depIdxs = nil
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// RtcServiceClient is the client API for RtcService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type RtcServiceClient interface {
	SignalMessageAssemble(ctx context.Context, in *SignalMessageAssembleReq, opts ...grpc.CallOption) (*SignalMessageAssembleResp, error)
}

type rtcServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewRtcServiceClient(cc grpc.ClientConnInterface) RtcServiceClient {
	return &rtcServiceClient{cc}
}

func (c *rtcServiceClient) SignalMessageAssemble(ctx context.Context, in *SignalMessageAssembleReq, opts ...grpc.CallOption) (*SignalMessageAssembleResp, error) {
	out := new(SignalMessageAssembleResp)
	err := c.cc.Invoke(ctx, "/proto.RtcService/SignalMessageAssemble", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// RtcServiceServer is the server API for RtcService service.
type RtcServiceServer interface {
	SignalMessageAssemble(context.Context, *SignalMessageAssembleReq) (*SignalMessageAssembleResp, error)
}

// UnimplementedRtcServiceServer can be embedded to have forward compatible implementations.
type UnimplementedRtcServiceServer struct {
}

func (*UnimplementedRtcServiceServer) SignalMessageAssemble(context.Context, *SignalMessageAssembleReq) (*SignalMessageAssembleResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SignalMessageAssemble not implemented")
}

func RegisterRtcServiceServer(s *grpc.Server, srv RtcServiceServer) {
	s.RegisterService(&_RtcService_serviceDesc, srv)
}

func _RtcService_SignalMessageAssemble_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SignalMessageAssembleReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RtcServiceServer).SignalMessageAssemble(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/proto.RtcService/SignalMessageAssemble",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RtcServiceServer).SignalMessageAssemble(ctx, req.(*SignalMessageAssembleReq))
	}
	return interceptor(ctx, in, info, handler)
}

var _RtcService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "proto.RtcService",
	HandlerType: (*RtcServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "SignalMessageAssemble",
			Handler:    _RtcService_SignalMessageAssemble_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "proto/rtc.proto",
}