// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 // protoc v3.10.1 // source: api/approval/approval.proto package approval import ( _ "github.com/mwitkow/go-proto-validators" 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 CommonResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *CommonResponse) Reset() { *x = CommonResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommonResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommonResponse) ProtoMessage() {} func (x *CommonResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 CommonResponse.ProtoReflect.Descriptor instead. func (*CommonResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{0} } type ChangeBundlePayRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` Status uint64 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` } func (x *ChangeBundlePayRequest) Reset() { *x = ChangeBundlePayRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChangeBundlePayRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChangeBundlePayRequest) ProtoMessage() {} func (x *ChangeBundlePayRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 ChangeBundlePayRequest.ProtoReflect.Descriptor instead. func (*ChangeBundlePayRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{1} } func (x *ChangeBundlePayRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *ChangeBundlePayRequest) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *ChangeBundlePayRequest) GetStatus() uint64 { if x != nil { return x.Status } return 0 } type IsExistPayRightRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` UserId uint64 `protobuf:"varint,2,opt,name=UserId,json=userId,proto3" json:"UserId,omitempty"` ShowUid string `protobuf:"bytes,3,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` } func (x *IsExistPayRightRequest) Reset() { *x = IsExistPayRightRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IsExistPayRightRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*IsExistPayRightRequest) ProtoMessage() {} func (x *IsExistPayRightRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 IsExistPayRightRequest.ProtoReflect.Descriptor instead. func (*IsExistPayRightRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{2} } func (x *IsExistPayRightRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *IsExistPayRightRequest) GetUserId() uint64 { if x != nil { return x.UserId } return 0 } func (x *IsExistPayRightRequest) GetShowUid() string { if x != nil { return x.ShowUid } return "" } type IsExistPayRightResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsPass bool `protobuf:"varint,1,opt,name=IsPass,json=isPass,proto3" json:"IsPass,omitempty"` } func (x *IsExistPayRightResponse) Reset() { *x = IsExistPayRightResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IsExistPayRightResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*IsExistPayRightResponse) ProtoMessage() {} func (x *IsExistPayRightResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 IsExistPayRightResponse.ProtoReflect.Descriptor instead. func (*IsExistPayRightResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{3} } func (x *IsExistPayRightResponse) GetIsPass() bool { if x != nil { return x.IsPass } return false } type KeyInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ApprovalKey string `protobuf:"bytes,1,opt,name=ApprovalKey,json=approvalKey,proto3" json:"ApprovalKey,omitempty"` ApprovalName string `protobuf:"bytes,2,opt,name=ApprovalName,json=approvalName,proto3" json:"ApprovalName,omitempty"` ApprovalType string `protobuf:"bytes,3,opt,name=ApprovalType,json=approvalType,proto3" json:"ApprovalType,omitempty"` ApprovalValue string `protobuf:"bytes,4,opt,name=ApprovalValue,json=approvalValue,proto3" json:"ApprovalValue,omitempty"` ApprovalMark bool `protobuf:"varint,5,opt,name=ApprovalMark,json=approvalMark,proto3" json:"ApprovalMark,omitempty"` } func (x *KeyInfo) Reset() { *x = KeyInfo{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *KeyInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*KeyInfo) ProtoMessage() {} func (x *KeyInfo) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 KeyInfo.ProtoReflect.Descriptor instead. func (*KeyInfo) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{4} } func (x *KeyInfo) GetApprovalKey() string { if x != nil { return x.ApprovalKey } return "" } func (x *KeyInfo) GetApprovalName() string { if x != nil { return x.ApprovalName } return "" } func (x *KeyInfo) GetApprovalType() string { if x != nil { return x.ApprovalType } return "" } func (x *KeyInfo) GetApprovalValue() string { if x != nil { return x.ApprovalValue } return "" } func (x *KeyInfo) GetApprovalMark() bool { if x != nil { return x.ApprovalMark } return false } type UpdateEhApplyIDRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` ApplyId string `protobuf:"bytes,3,opt,name=ApplyId,json=applyId,proto3" json:"ApplyId,omitempty"` } func (x *UpdateEhApplyIDRequest) Reset() { *x = UpdateEhApplyIDRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateEhApplyIDRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateEhApplyIDRequest) ProtoMessage() {} func (x *UpdateEhApplyIDRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 UpdateEhApplyIDRequest.ProtoReflect.Descriptor instead. func (*UpdateEhApplyIDRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{5} } func (x *UpdateEhApplyIDRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *UpdateEhApplyIDRequest) GetApprovalID() uint64 { if x != nil { return x.ApprovalID } return 0 } func (x *UpdateEhApplyIDRequest) GetApplyId() string { if x != nil { return x.ApplyId } return "" } type UpdateEhApplyIDResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *UpdateEhApplyIDResponse) Reset() { *x = UpdateEhApplyIDResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateEhApplyIDResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateEhApplyIDResponse) ProtoMessage() {} func (x *UpdateEhApplyIDResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 UpdateEhApplyIDResponse.ProtoReflect.Descriptor instead. func (*UpdateEhApplyIDResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{6} } type UsedNumByUserRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` SubmitterID uint64 `protobuf:"varint,2,opt,name=SubmitterID,json=submitterID,proto3" json:"SubmitterID,omitempty"` } func (x *UsedNumByUserRequest) Reset() { *x = UsedNumByUserRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UsedNumByUserRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UsedNumByUserRequest) ProtoMessage() {} func (x *UsedNumByUserRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 UsedNumByUserRequest.ProtoReflect.Descriptor instead. func (*UsedNumByUserRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{7} } func (x *UsedNumByUserRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *UsedNumByUserRequest) GetSubmitterID() uint64 { if x != nil { return x.SubmitterID } return 0 } type UsedNumByUserResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Total uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` } func (x *UsedNumByUserResponse) Reset() { *x = UsedNumByUserResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UsedNumByUserResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*UsedNumByUserResponse) ProtoMessage() {} func (x *UsedNumByUserResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 UsedNumByUserResponse.ProtoReflect.Descriptor instead. func (*UsedNumByUserResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{8} } func (x *UsedNumByUserResponse) GetTotal() uint64 { if x != nil { return x.Total } return 0 } type NowLevelByInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,proto3" json:"ApprovalID,omitempty"` } func (x *NowLevelByInfoRequest) Reset() { *x = NowLevelByInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NowLevelByInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*NowLevelByInfoRequest) ProtoMessage() {} func (x *NowLevelByInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 NowLevelByInfoRequest.ProtoReflect.Descriptor instead. func (*NowLevelByInfoRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{9} } func (x *NowLevelByInfoRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *NowLevelByInfoRequest) GetApprovalID() uint64 { if x != nil { return x.ApprovalID } return 0 } type WorkFlowResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` Reply string `protobuf:"bytes,3,opt,name=Reply,proto3" json:"Reply,omitempty"` Status uint64 `protobuf:"varint,5,opt,name=Status,json=status,proto3" json:"Status,omitempty"` UserID uint64 `protobuf:"varint,7,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` } func (x *WorkFlowResponse) Reset() { *x = WorkFlowResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkFlowResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkFlowResponse) ProtoMessage() {} func (x *WorkFlowResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 WorkFlowResponse.ProtoReflect.Descriptor instead. func (*WorkFlowResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{10} } func (x *WorkFlowResponse) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *WorkFlowResponse) GetReply() string { if x != nil { return x.Reply } return "" } func (x *WorkFlowResponse) GetStatus() uint64 { if x != nil { return x.Status } return 0 } func (x *WorkFlowResponse) GetUserID() uint64 { if x != nil { return x.UserID } return 0 } type CommonRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` Page uint64 `protobuf:"varint,2,opt,name=Page,proto3" json:"Page,omitempty"` PageSize uint64 `protobuf:"varint,3,opt,name=PageSize,json=pageSize,proto3" json:"PageSize,omitempty"` GroupId uint64 `protobuf:"varint,4,opt,name=GroupId,json=groupId,proto3" json:"GroupId,omitempty"` } func (x *CommonRequest) Reset() { *x = CommonRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommonRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommonRequest) ProtoMessage() {} func (x *CommonRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 CommonRequest.ProtoReflect.Descriptor instead. func (*CommonRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{11} } func (x *CommonRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *CommonRequest) GetPage() uint64 { if x != nil { return x.Page } return 0 } func (x *CommonRequest) GetPageSize() uint64 { if x != nil { return x.PageSize } return 0 } func (x *CommonRequest) GetGroupId() uint64 { if x != nil { return x.GroupId } return 0 } type CreateTypeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` Title string `protobuf:"bytes,3,opt,name=Title,json=title,proto3" json:"Title,omitempty"` Remark string `protobuf:"bytes,5,opt,name=Remark,json=remark,proto3" json:"Remark,omitempty"` KeyWord string `protobuf:"bytes,6,opt,name=KeyWord,json=keyWord,proto3" json:"KeyWord,omitempty"` KeyInfos []*KeyInfo `protobuf:"bytes,7,rep,name=KeyInfos,json=keyInfos,proto3" json:"KeyInfos,omitempty"` IsCustom uint64 `protobuf:"varint,8,opt,name=IsCustom,json=isCustom,proto3" json:"IsCustom,omitempty"` GroupId uint64 `protobuf:"varint,9,opt,name=GroupId,json=groupId,proto3" json:"GroupId,omitempty"` GroupName string `protobuf:"bytes,10,opt,name=GroupName,json=groupName,proto3" json:"GroupName,omitempty"` } func (x *CreateTypeRequest) Reset() { *x = CreateTypeRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateTypeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateTypeRequest) ProtoMessage() {} func (x *CreateTypeRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 CreateTypeRequest.ProtoReflect.Descriptor instead. func (*CreateTypeRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{12} } func (x *CreateTypeRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *CreateTypeRequest) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *CreateTypeRequest) GetTitle() string { if x != nil { return x.Title } return "" } func (x *CreateTypeRequest) GetRemark() string { if x != nil { return x.Remark } return "" } func (x *CreateTypeRequest) GetKeyWord() string { if x != nil { return x.KeyWord } return "" } func (x *CreateTypeRequest) GetKeyInfos() []*KeyInfo { if x != nil { return x.KeyInfos } return nil } func (x *CreateTypeRequest) GetIsCustom() uint64 { if x != nil { return x.IsCustom } return 0 } func (x *CreateTypeRequest) GetGroupId() uint64 { if x != nil { return x.GroupId } return 0 } func (x *CreateTypeRequest) GetGroupName() string { if x != nil { return x.GroupName } return "" } type TypeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` Domain string `protobuf:"bytes,2,opt,name=Domain,proto3" json:"Domain,omitempty"` Keyword string `protobuf:"bytes,3,opt,name=Keyword,proto3" json:"Keyword,omitempty"` } func (x *TypeResponse) Reset() { *x = TypeResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TypeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*TypeResponse) ProtoMessage() {} func (x *TypeResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 TypeResponse.ProtoReflect.Descriptor instead. func (*TypeResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{13} } func (x *TypeResponse) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *TypeResponse) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *TypeResponse) GetKeyword() string { if x != nil { return x.Keyword } return "" } type AllTypeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data []*CreateTypeRequest `protobuf:"bytes,1,rep,name=Data,proto3" json:"Data,omitempty"` Count uint64 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` } func (x *AllTypeResponse) Reset() { *x = AllTypeResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AllTypeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*AllTypeResponse) ProtoMessage() {} func (x *AllTypeResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 AllTypeResponse.ProtoReflect.Descriptor instead. func (*AllTypeResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{14} } func (x *AllTypeResponse) GetData() []*CreateTypeRequest { if x != nil { return x.Data } return nil } func (x *AllTypeResponse) GetCount() uint64 { if x != nil { return x.Count } return 0 } type CreateTypeGroupRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` Title string `protobuf:"bytes,3,opt,name=Title,json=title,proto3" json:"Title,omitempty"` List []*CreateTypeRequest `protobuf:"bytes,4,rep,name=List,json=list,proto3" json:"List,omitempty"` } func (x *CreateTypeGroupRequest) Reset() { *x = CreateTypeGroupRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateTypeGroupRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateTypeGroupRequest) ProtoMessage() {} func (x *CreateTypeGroupRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 CreateTypeGroupRequest.ProtoReflect.Descriptor instead. func (*CreateTypeGroupRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{15} } func (x *CreateTypeGroupRequest) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *CreateTypeGroupRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *CreateTypeGroupRequest) GetTitle() string { if x != nil { return x.Title } return "" } func (x *CreateTypeGroupRequest) GetList() []*CreateTypeRequest { if x != nil { return x.List } return nil } type AllGroupResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data []*CreateTypeGroupRequest `protobuf:"bytes,1,rep,name=Data,proto3" json:"Data,omitempty"` Count uint64 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` } func (x *AllGroupResponse) Reset() { *x = AllGroupResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AllGroupResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*AllGroupResponse) ProtoMessage() {} func (x *AllGroupResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 AllGroupResponse.ProtoReflect.Descriptor instead. func (*AllGroupResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{16} } func (x *AllGroupResponse) GetData() []*CreateTypeGroupRequest { if x != nil { return x.Data } return nil } func (x *AllGroupResponse) GetCount() uint64 { if x != nil { return x.Count } return 0 } type StatusRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` Reply string `protobuf:"bytes,3,opt,name=Reply,proto3" json:"Reply,omitempty"` WorkFlowId uint64 `protobuf:"varint,4,opt,name=WorkFlowId,json=workFlowId,proto3" json:"WorkFlowId,omitempty"` Status uint64 `protobuf:"varint,5,opt,name=Status,json=status,proto3" json:"Status,omitempty"` Level uint64 `protobuf:"varint,6,opt,name=Level,json=level,proto3" json:"Level,omitempty"` Title string `protobuf:"bytes,7,opt,name=Title,json=title,proto3" json:"Title,omitempty"` UserId uint64 `protobuf:"varint,8,opt,name=UserId,json=userId,proto3" json:"UserId,omitempty"` LeaveBalance string `protobuf:"bytes,9,opt,name=LeaveBalance,json=leaveBalance,proto3" json:"LeaveBalance,omitempty"` } func (x *StatusRequest) Reset() { *x = StatusRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StatusRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StatusRequest) ProtoMessage() {} func (x *StatusRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 StatusRequest.ProtoReflect.Descriptor instead. func (*StatusRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{17} } func (x *StatusRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *StatusRequest) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *StatusRequest) GetReply() string { if x != nil { return x.Reply } return "" } func (x *StatusRequest) GetWorkFlowId() uint64 { if x != nil { return x.WorkFlowId } return 0 } func (x *StatusRequest) GetStatus() uint64 { if x != nil { return x.Status } return 0 } func (x *StatusRequest) GetLevel() uint64 { if x != nil { return x.Level } return 0 } func (x *StatusRequest) GetTitle() string { if x != nil { return x.Title } return "" } func (x *StatusRequest) GetUserId() uint64 { if x != nil { return x.UserId } return 0 } func (x *StatusRequest) GetLeaveBalance() string { if x != nil { return x.LeaveBalance } return "" } type StatusResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *StatusResponse) Reset() { *x = StatusResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StatusResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StatusResponse) ProtoMessage() {} func (x *StatusResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 StatusResponse.ProtoReflect.Descriptor instead. func (*StatusResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{18} } type ListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` PageSize uint64 `protobuf:"varint,2,opt,name=PageSize,proto3" json:"PageSize,omitempty"` // Page uint64 `protobuf:"varint,3,opt,name=Page,proto3" json:"Page,omitempty"` // Status uint64 `protobuf:"varint,4,opt,name=Status,json=status,proto3" json:"Status,omitempty"` //0待审批 1-审批成功 2-拒绝 4-是所有 Type string `protobuf:"bytes,5,opt,name=Type,json=type,proto3" json:"Type,omitempty"` //类型 UserID uint64 `protobuf:"varint,6,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` // ApprovedBossId uint64 `protobuf:"varint,7,opt,name=ApprovedBossId,json=approvedBossId,proto3" json:"ApprovedBossId,omitempty"` // } func (x *ListRequest) Reset() { *x = ListRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListRequest) ProtoMessage() {} func (x *ListRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 ListRequest.ProtoReflect.Descriptor instead. func (*ListRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{19} } func (x *ListRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *ListRequest) GetPageSize() uint64 { if x != nil { return x.PageSize } return 0 } func (x *ListRequest) GetPage() uint64 { if x != nil { return x.Page } return 0 } func (x *ListRequest) GetStatus() uint64 { if x != nil { return x.Status } return 0 } func (x *ListRequest) GetType() string { if x != nil { return x.Type } return "" } func (x *ListRequest) GetUserID() uint64 { if x != nil { return x.UserID } return 0 } func (x *ListRequest) GetApprovedBossId() uint64 { if x != nil { return x.ApprovedBossId } return 0 } type ListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Count uint64 `protobuf:"varint,1,opt,name=Count,json=count,proto3" json:"Count,omitempty"` Data []*CreateRequest `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` } func (x *ListResponse) Reset() { *x = ListResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListResponse) ProtoMessage() {} func (x *ListResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 ListResponse.ProtoReflect.Descriptor instead. func (*ListResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{20} } func (x *ListResponse) GetCount() uint64 { if x != nil { return x.Count } return 0 } func (x *ListResponse) GetData() []*CreateRequest { if x != nil { return x.Data } return nil } type ViewedRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` ID uint64 `protobuf:"varint,2,opt,name=ID,proto3" json:"ID,omitempty"` UserID uint64 `protobuf:"varint,3,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` } func (x *ViewedRequest) Reset() { *x = ViewedRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ViewedRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ViewedRequest) ProtoMessage() {} func (x *ViewedRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 ViewedRequest.ProtoReflect.Descriptor instead. func (*ViewedRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{21} } func (x *ViewedRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *ViewedRequest) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *ViewedRequest) GetUserID() uint64 { if x != nil { return x.UserID } return 0 } type InformationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Domain string `protobuf:"bytes,1,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` UserID uint64 `protobuf:"varint,2,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` Type string `protobuf:"bytes,3,opt,name=Type,json=type,proto3" json:"Type,omitempty"` } func (x *InformationRequest) Reset() { *x = InformationRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InformationRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*InformationRequest) ProtoMessage() {} func (x *InformationRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 InformationRequest.ProtoReflect.Descriptor instead. func (*InformationRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{22} } func (x *InformationRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *InformationRequest) GetUserID() uint64 { if x != nil { return x.UserID } return 0 } func (x *InformationRequest) GetType() string { if x != nil { return x.Type } return "" } type Information struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Total uint64 `protobuf:"varint,1,opt,name=Total,json=total,proto3" json:"Total,omitempty"` // 已提交的审批 (总量) DoingTotal uint64 `protobuf:"varint,2,opt,name=DoingTotal,json=doingTotal,proto3" json:"DoingTotal,omitempty"` // 正在审批数量 SuccessTotal uint64 `protobuf:"varint,3,opt,name=SuccessTotal,json=successTotal,proto3" json:"SuccessTotal,omitempty"` // 审批完成数量 FailTotal uint64 `protobuf:"varint,4,opt,name=FailTotal,json=failTotal,proto3" json:"FailTotal,omitempty"` // 审批未通过 } func (x *Information) Reset() { *x = Information{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Information) String() string { return protoimpl.X.MessageStringOf(x) } func (*Information) ProtoMessage() {} func (x *Information) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 Information.ProtoReflect.Descriptor instead. func (*Information) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{23} } func (x *Information) GetTotal() uint64 { if x != nil { return x.Total } return 0 } func (x *Information) GetDoingTotal() uint64 { if x != nil { return x.DoingTotal } return 0 } func (x *Information) GetSuccessTotal() uint64 { if x != nil { return x.SuccessTotal } return 0 } func (x *Information) GetFailTotal() uint64 { if x != nil { return x.FailTotal } return 0 } type InformationResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MySubmitInfo *Information `protobuf:"bytes,1,opt,name=MySubmitInfo,json=mySubmitInfo,proto3" json:"MySubmitInfo,omitempty"` // 我提交的; SubmitMeInfo *Information `protobuf:"bytes,2,opt,name=SubmitMeInfo,json=submitMeInfo,proto3" json:"SubmitMeInfo,omitempty"` // 提交给我的; DomainInfo *Information `protobuf:"bytes,3,opt,name=DomainInfo,json=domainInfo,proto3" json:"DomainInfo,omitempty"` // 大盘数据; } func (x *InformationResponse) Reset() { *x = InformationResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InformationResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*InformationResponse) ProtoMessage() {} func (x *InformationResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 InformationResponse.ProtoReflect.Descriptor instead. func (*InformationResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{24} } func (x *InformationResponse) GetMySubmitInfo() *Information { if x != nil { return x.MySubmitInfo } return nil } func (x *InformationResponse) GetSubmitMeInfo() *Information { if x != nil { return x.SubmitMeInfo } return nil } func (x *InformationResponse) GetDomainInfo() *Information { if x != nil { return x.DomainInfo } return nil } type Bundle struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` ReturnAt string `protobuf:"bytes,2,opt,name=ReturnAt,json=returnAt,proto3" json:"ReturnAt,omitempty"` ReceivedAt string `protobuf:"bytes,3,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` ApplicationsNum uint64 `protobuf:"varint,4,opt,name=ApplicationsNum,json=applicationsNum,proto3" json:"ApplicationsNum,omitempty"` } func (x *Bundle) Reset() { *x = Bundle{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Bundle) String() string { return protoimpl.X.MessageStringOf(x) } func (*Bundle) ProtoMessage() {} func (x *Bundle) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_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 Bundle.ProtoReflect.Descriptor instead. func (*Bundle) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{25} } func (x *Bundle) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *Bundle) GetReturnAt() string { if x != nil { return x.ReturnAt } return "" } func (x *Bundle) GetReceivedAt() string { if x != nil { return x.ReceivedAt } return "" } func (x *Bundle) GetApplicationsNum() uint64 { if x != nil { return x.ApplicationsNum } return 0 } type Show struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` ArtistNum uint64 `protobuf:"varint,2,opt,name=ArtistNum,json=artistNum,proto3" json:"ArtistNum,omitempty"` ShowAt string `protobuf:"bytes,3,opt,name=ShowAt,proto3" json:"ShowAt,omitempty"` } func (x *Show) Reset() { *x = Show{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Show) String() string { return protoimpl.X.MessageStringOf(x) } func (*Show) ProtoMessage() {} func (x *Show) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Show.ProtoReflect.Descriptor instead. func (*Show) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{26} } func (x *Show) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *Show) GetArtistNum() uint64 { if x != nil { return x.ArtistNum } return 0 } func (x *Show) GetShowAt() string { if x != nil { return x.ShowAt } return "" } type ApprovalWork struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` WorkID uint64 `protobuf:"varint,2,opt,name=WorkID,proto3" json:"WorkID,omitempty"` ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,proto3" json:"ApprovalID,omitempty"` ArtworkID uint64 `protobuf:"varint,4,opt,name=ArtworkID,json=artworkID,proto3" json:"ArtworkID,omitempty"` ArtworkName string `protobuf:"bytes,5,opt,name=ArtworkName,json=artworkName,proto3" json:"ArtworkName,omitempty"` ArtistName string `protobuf:"bytes,6,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` ArtworkCover string `protobuf:"bytes,7,opt,name=ArtworkCover,json=artworkCover,proto3" json:"ArtworkCover,omitempty"` ArtworkNumber uint64 `protobuf:"varint,8,opt,name=ArtworkNumber,json=artworkNumber,proto3" json:"ArtworkNumber,omitempty"` ArtistUID string `protobuf:"bytes,9,opt,name=ArtistUID,json=artistUID,proto3" json:"ArtistUID,omitempty"` ShowSeq string `protobuf:"bytes,10,opt,name=ShowSeq,json=showSeq,proto3" json:"ShowSeq,omitempty"` } func (x *ApprovalWork) Reset() { *x = ApprovalWork{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApprovalWork) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApprovalWork) ProtoMessage() {} func (x *ApprovalWork) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApprovalWork.ProtoReflect.Descriptor instead. func (*ApprovalWork) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{27} } func (x *ApprovalWork) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *ApprovalWork) GetWorkID() uint64 { if x != nil { return x.WorkID } return 0 } func (x *ApprovalWork) GetApprovalID() uint64 { if x != nil { return x.ApprovalID } return 0 } func (x *ApprovalWork) GetArtworkID() uint64 { if x != nil { return x.ArtworkID } return 0 } func (x *ApprovalWork) GetArtworkName() string { if x != nil { return x.ArtworkName } return "" } func (x *ApprovalWork) GetArtistName() string { if x != nil { return x.ArtistName } return "" } func (x *ApprovalWork) GetArtworkCover() string { if x != nil { return x.ArtworkCover } return "" } func (x *ApprovalWork) GetArtworkNumber() uint64 { if x != nil { return x.ArtworkNumber } return 0 } func (x *ApprovalWork) GetArtistUID() string { if x != nil { return x.ArtistUID } return "" } func (x *ApprovalWork) GetShowSeq() string { if x != nil { return x.ShowSeq } return "" } type Work struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` ReturnAt string `protobuf:"bytes,2,opt,name=ReturnAt,json=returnAt,proto3" json:"ReturnAt,omitempty"` ReceivedAt string `protobuf:"bytes,3,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` ApprovalWorks []*ApprovalWork `protobuf:"bytes,4,rep,name=ApprovalWorks,json=approvalWorks,proto3" json:"ApprovalWorks,omitempty"` ArtistUID string `protobuf:"bytes,5,opt,name=ArtistUID,json=artistUID,proto3" json:"ArtistUID,omitempty"` } func (x *Work) Reset() { *x = Work{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Work) String() string { return protoimpl.X.MessageStringOf(x) } func (*Work) ProtoMessage() {} func (x *Work) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Work.ProtoReflect.Descriptor instead. func (*Work) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{28} } func (x *Work) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *Work) GetReturnAt() string { if x != nil { return x.ReturnAt } return "" } func (x *Work) GetReceivedAt() string { if x != nil { return x.ReceivedAt } return "" } func (x *Work) GetApprovalWorks() []*ApprovalWork { if x != nil { return x.ApprovalWorks } return nil } func (x *Work) GetArtistUID() string { if x != nil { return x.ArtistUID } return "" } type ApprovalExhibition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` ExhibitionID uint64 `protobuf:"varint,2,opt,name=ExhibitionID,json=exhibitionID,proto3" json:"ExhibitionID,omitempty"` ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` PackageName string `protobuf:"bytes,4,opt,name=PackageName,json=packageName,proto3" json:"PackageName,omitempty"` PackageID string `protobuf:"bytes,5,opt,name=PackageID,json=packageID,proto3" json:"PackageID,omitempty"` PackageSize uint64 `protobuf:"varint,6,opt,name=PackageSize,json=packageSize,proto3" json:"PackageSize,omitempty"` PackageNumber string `protobuf:"bytes,7,opt,name=PackageNumber,json=packageNumber,proto3" json:"PackageNumber,omitempty"` Address string `protobuf:"bytes,8,opt,name=Address,json=address,proto3" json:"Address,omitempty"` ShowDate string `protobuf:"bytes,9,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` Artworks []*Artwork `protobuf:"bytes,10,rep,name=Artworks,json=artworks,proto3" json:"Artworks,omitempty"` ArtExhibitionDetail *ArtExhibitionDetail `protobuf:"bytes,11,opt,name=ArtExhibitionDetail,json=artExhibitionDetail,proto3" json:"ArtExhibitionDetail,omitempty"` TotalPrice int64 `protobuf:"varint,12,opt,name=TotalPrice,json=totalPrice,proto3" json:"TotalPrice,omitempty"` } func (x *ApprovalExhibition) Reset() { *x = ApprovalExhibition{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApprovalExhibition) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApprovalExhibition) ProtoMessage() {} func (x *ApprovalExhibition) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApprovalExhibition.ProtoReflect.Descriptor instead. func (*ApprovalExhibition) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{29} } func (x *ApprovalExhibition) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *ApprovalExhibition) GetExhibitionID() uint64 { if x != nil { return x.ExhibitionID } return 0 } func (x *ApprovalExhibition) GetApprovalID() uint64 { if x != nil { return x.ApprovalID } return 0 } func (x *ApprovalExhibition) GetPackageName() string { if x != nil { return x.PackageName } return "" } func (x *ApprovalExhibition) GetPackageID() string { if x != nil { return x.PackageID } return "" } func (x *ApprovalExhibition) GetPackageSize() uint64 { if x != nil { return x.PackageSize } return 0 } func (x *ApprovalExhibition) GetPackageNumber() string { if x != nil { return x.PackageNumber } return "" } func (x *ApprovalExhibition) GetAddress() string { if x != nil { return x.Address } return "" } func (x *ApprovalExhibition) GetShowDate() string { if x != nil { return x.ShowDate } return "" } func (x *ApprovalExhibition) GetArtworks() []*Artwork { if x != nil { return x.Artworks } return nil } func (x *ApprovalExhibition) GetArtExhibitionDetail() *ArtExhibitionDetail { if x != nil { return x.ArtExhibitionDetail } return nil } func (x *ApprovalExhibition) GetTotalPrice() int64 { if x != nil { return x.TotalPrice } return 0 } type Exhibition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` ReceivedAt string `protobuf:"bytes,2,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` Address string `protobuf:"bytes,3,opt,name=Address,json=address,proto3" json:"Address,omitempty"` PidApprovalID uint64 `protobuf:"varint,4,opt,name=PidApprovalID,json=pidApprovalID,proto3" json:"PidApprovalID,omitempty"` ApprovalExhibitions []*ApprovalExhibition `protobuf:"bytes,5,rep,name=ApprovalExhibitions,json=approvalExhibitions,proto3" json:"ApprovalExhibitions,omitempty"` Num uint64 `protobuf:"varint,6,opt,name=Num,json=num,proto3" json:"Num,omitempty"` ApplyID string `protobuf:"bytes,7,opt,name=ApplyID,json=applyID,proto3" json:"ApplyID,omitempty"` } func (x *Exhibition) Reset() { *x = Exhibition{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Exhibition) String() string { return protoimpl.X.MessageStringOf(x) } func (*Exhibition) ProtoMessage() {} func (x *Exhibition) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Exhibition.ProtoReflect.Descriptor instead. func (*Exhibition) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{30} } func (x *Exhibition) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *Exhibition) GetReceivedAt() string { if x != nil { return x.ReceivedAt } return "" } func (x *Exhibition) GetAddress() string { if x != nil { return x.Address } return "" } func (x *Exhibition) GetPidApprovalID() uint64 { if x != nil { return x.PidApprovalID } return 0 } func (x *Exhibition) GetApprovalExhibitions() []*ApprovalExhibition { if x != nil { return x.ApprovalExhibitions } return nil } func (x *Exhibition) GetNum() uint64 { if x != nil { return x.Num } return 0 } func (x *Exhibition) GetApplyID() string { if x != nil { return x.ApplyID } return "" } type Artwork struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ArtworkPriceUID string `protobuf:"bytes,1,opt,name=ArtworkPriceUID,proto3" json:"ArtworkPriceUID,omitempty"` ShowUID string `protobuf:"bytes,2,opt,name=ShowUID,proto3" json:"ShowUID,omitempty"` ArtworkUID string `protobuf:"bytes,3,opt,name=ArtworkUID,proto3" json:"ArtworkUID,omitempty"` ArtworkName string `protobuf:"bytes,4,opt,name=ArtworkName,proto3" json:"ArtworkName,omitempty"` ArtistName string `protobuf:"bytes,5,opt,name=ArtistName,proto3" json:"ArtistName,omitempty"` Length uint64 `protobuf:"varint,6,opt,name=Length,proto3" json:"Length,omitempty"` Width uint64 `protobuf:"varint,7,opt,name=Width,proto3" json:"Width,omitempty"` Ruler uint64 `protobuf:"varint,8,opt,name=Ruler,proto3" json:"Ruler,omitempty"` SmallPic string `protobuf:"bytes,9,opt,name=SmallPic,proto3" json:"SmallPic,omitempty"` SaleAddress string `protobuf:"bytes,10,opt,name=SaleAddress,proto3" json:"SaleAddress,omitempty"` Reward string `protobuf:"bytes,11,opt,name=Reward,proto3" json:"Reward,omitempty"` Tfnum string `protobuf:"bytes,12,opt,name=Tfnum,proto3" json:"Tfnum,omitempty"` SaleAddressID string `protobuf:"bytes,13,opt,name=SaleAddressID,proto3" json:"SaleAddressID,omitempty"` } func (x *Artwork) Reset() { *x = Artwork{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Artwork) String() string { return protoimpl.X.MessageStringOf(x) } func (*Artwork) ProtoMessage() {} func (x *Artwork) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Artwork.ProtoReflect.Descriptor instead. func (*Artwork) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{31} } func (x *Artwork) GetArtworkPriceUID() string { if x != nil { return x.ArtworkPriceUID } return "" } func (x *Artwork) GetShowUID() string { if x != nil { return x.ShowUID } return "" } func (x *Artwork) GetArtworkUID() string { if x != nil { return x.ArtworkUID } return "" } func (x *Artwork) GetArtworkName() string { if x != nil { return x.ArtworkName } return "" } func (x *Artwork) GetArtistName() string { if x != nil { return x.ArtistName } return "" } func (x *Artwork) GetLength() uint64 { if x != nil { return x.Length } return 0 } func (x *Artwork) GetWidth() uint64 { if x != nil { return x.Width } return 0 } func (x *Artwork) GetRuler() uint64 { if x != nil { return x.Ruler } return 0 } func (x *Artwork) GetSmallPic() string { if x != nil { return x.SmallPic } return "" } func (x *Artwork) GetSaleAddress() string { if x != nil { return x.SaleAddress } return "" } func (x *Artwork) GetReward() string { if x != nil { return x.Reward } return "" } func (x *Artwork) GetTfnum() string { if x != nil { return x.Tfnum } return "" } func (x *Artwork) GetSaleAddressID() string { if x != nil { return x.SaleAddressID } return "" } type ArtExhibitionDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ShowUID string `protobuf:"bytes,1,opt,name=ShowUID,proto3" json:"ShowUID,omitempty"` ShowSeq string `protobuf:"bytes,2,opt,name=ShowSeq,proto3" json:"ShowSeq,omitempty"` ShowName string `protobuf:"bytes,3,opt,name=ShowName,proto3" json:"ShowName,omitempty"` ArtistName string `protobuf:"bytes,4,opt,name=ArtistName,proto3" json:"ArtistName,omitempty"` ArtistUID string `protobuf:"bytes,5,opt,name=ArtistUID,proto3" json:"ArtistUID,omitempty"` ArtworkNum uint64 `protobuf:"varint,6,opt,name=ArtworkNum,proto3" json:"ArtworkNum,omitempty"` Ruler uint64 `protobuf:"varint,7,opt,name=Ruler,proto3" json:"Ruler,omitempty"` Price uint64 `protobuf:"varint,8,opt,name=Price,proto3" json:"Price,omitempty"` Reward uint64 `protobuf:"varint,9,opt,name=Reward,proto3" json:"Reward,omitempty"` CreateTime string `protobuf:"bytes,10,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` Operator string `protobuf:"bytes,11,opt,name=Operator,proto3" json:"Operator,omitempty"` IsShow uint64 `protobuf:"varint,12,opt,name=IsShow,proto3" json:"IsShow,omitempty"` ShowTime string `protobuf:"bytes,13,opt,name=ShowTime,proto3" json:"ShowTime,omitempty"` Address string `protobuf:"bytes,14,opt,name=Address,proto3" json:"Address,omitempty"` Agent string `protobuf:"bytes,15,opt,name=Agent,proto3" json:"Agent,omitempty"` } func (x *ArtExhibitionDetail) Reset() { *x = ArtExhibitionDetail{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ArtExhibitionDetail) String() string { return protoimpl.X.MessageStringOf(x) } func (*ArtExhibitionDetail) ProtoMessage() {} func (x *ArtExhibitionDetail) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ArtExhibitionDetail.ProtoReflect.Descriptor instead. func (*ArtExhibitionDetail) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{32} } func (x *ArtExhibitionDetail) GetShowUID() string { if x != nil { return x.ShowUID } return "" } func (x *ArtExhibitionDetail) GetShowSeq() string { if x != nil { return x.ShowSeq } return "" } func (x *ArtExhibitionDetail) GetShowName() string { if x != nil { return x.ShowName } return "" } func (x *ArtExhibitionDetail) GetArtistName() string { if x != nil { return x.ArtistName } return "" } func (x *ArtExhibitionDetail) GetArtistUID() string { if x != nil { return x.ArtistUID } return "" } func (x *ArtExhibitionDetail) GetArtworkNum() uint64 { if x != nil { return x.ArtworkNum } return 0 } func (x *ArtExhibitionDetail) GetRuler() uint64 { if x != nil { return x.Ruler } return 0 } func (x *ArtExhibitionDetail) GetPrice() uint64 { if x != nil { return x.Price } return 0 } func (x *ArtExhibitionDetail) GetReward() uint64 { if x != nil { return x.Reward } return 0 } func (x *ArtExhibitionDetail) GetCreateTime() string { if x != nil { return x.CreateTime } return "" } func (x *ArtExhibitionDetail) GetOperator() string { if x != nil { return x.Operator } return "" } func (x *ArtExhibitionDetail) GetIsShow() uint64 { if x != nil { return x.IsShow } return 0 } func (x *ArtExhibitionDetail) GetShowTime() string { if x != nil { return x.ShowTime } return "" } func (x *ArtExhibitionDetail) GetAddress() string { if x != nil { return x.Address } return "" } func (x *ArtExhibitionDetail) GetAgent() string { if x != nil { return x.Agent } return "" } type BundlePayPrice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ShowUid string `protobuf:"bytes,1,opt,name=ShowUid,json=showUid,proto3" json:"ShowUid,omitempty"` ApprovalID uint64 `protobuf:"varint,2,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` ShowName string `protobuf:"bytes,3,opt,name=ShowName,json=showName,proto3" json:"ShowName,omitempty"` ReceivedAt string `protobuf:"bytes,4,opt,name=ReceivedAt,json=receivedAt,proto3" json:"ReceivedAt,omitempty"` ShowDate string `protobuf:"bytes,5,opt,name=ShowDate,json=showDate,proto3" json:"ShowDate,omitempty"` ShowLowPrice string `protobuf:"bytes,6,opt,name=ShowLowPrice,json=showLowPrice,proto3" json:"ShowLowPrice,omitempty"` ArtworkNum uint64 `protobuf:"varint,7,opt,name=ArtworkNum,json=artworkNum,proto3" json:"ArtworkNum,omitempty"` ArtworkSize string `protobuf:"bytes,8,opt,name=ArtworkSize,json=artworkSize,proto3" json:"ArtworkSize,omitempty"` ShowAddress string `protobuf:"bytes,9,opt,name=ShowAddress,json=showAddress,proto3" json:"ShowAddress,omitempty"` ID uint64 `protobuf:"varint,10,opt,name=ID,proto3" json:"ID,omitempty"` Status uint64 `protobuf:"varint,11,opt,name=Status,json=status,proto3" json:"Status,omitempty"` ArtistName string `protobuf:"bytes,12,opt,name=ArtistName,json=artistName,proto3" json:"ArtistName,omitempty"` Rollback int32 `protobuf:"varint,13,opt,name=Rollback,json=rollback,proto3" json:"Rollback,omitempty"` } func (x *BundlePayPrice) Reset() { *x = BundlePayPrice{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BundlePayPrice) String() string { return protoimpl.X.MessageStringOf(x) } func (*BundlePayPrice) ProtoMessage() {} func (x *BundlePayPrice) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BundlePayPrice.ProtoReflect.Descriptor instead. func (*BundlePayPrice) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{33} } func (x *BundlePayPrice) GetShowUid() string { if x != nil { return x.ShowUid } return "" } func (x *BundlePayPrice) GetApprovalID() uint64 { if x != nil { return x.ApprovalID } return 0 } func (x *BundlePayPrice) GetShowName() string { if x != nil { return x.ShowName } return "" } func (x *BundlePayPrice) GetReceivedAt() string { if x != nil { return x.ReceivedAt } return "" } func (x *BundlePayPrice) GetShowDate() string { if x != nil { return x.ShowDate } return "" } func (x *BundlePayPrice) GetShowLowPrice() string { if x != nil { return x.ShowLowPrice } return "" } func (x *BundlePayPrice) GetArtworkNum() uint64 { if x != nil { return x.ArtworkNum } return 0 } func (x *BundlePayPrice) GetArtworkSize() string { if x != nil { return x.ArtworkSize } return "" } func (x *BundlePayPrice) GetShowAddress() string { if x != nil { return x.ShowAddress } return "" } func (x *BundlePayPrice) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *BundlePayPrice) GetStatus() uint64 { if x != nil { return x.Status } return 0 } func (x *BundlePayPrice) GetArtistName() string { if x != nil { return x.ArtistName } return "" } func (x *BundlePayPrice) GetRollback() int32 { if x != nil { return x.Rollback } return 0 } type CreateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` Status uint64 `protobuf:"varint,3,opt,name=Status,json=status,proto3" json:"Status,omitempty"` Type string `protobuf:"bytes,4,opt,name=Type,json=type,proto3" json:"Type,omitempty"` SubmitterID uint64 `protobuf:"varint,7,opt,name=SubmitterID,json=submitterID,proto3" json:"SubmitterID,omitempty"` //审批人 SubmitterName string `protobuf:"bytes,8,opt,name=SubmitterName,json=submitterName,proto3" json:"SubmitterName,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,9,rep,name=CopyUsers,json=copyName,proto3" json:"CopyUsers,omitempty"` //抄送人 Content string `protobuf:"bytes,10,opt,name=Content,json=content,proto3" json:"Content,omitempty"` //申请内容 Reply string `protobuf:"bytes,11,opt,name=Reply,json=reply,proto3" json:"Reply,omitempty"` //回复 CanView bool `protobuf:"varint,12,opt,name=CanView,json=canView,proto3" json:"CanView,omitempty"` //是否可以阅读 Work *Work `protobuf:"bytes,13,opt,name=Work,json=work,proto3" json:"Work,omitempty"` Show *Show `protobuf:"bytes,14,opt,name=Show,json=show,proto3" json:"Show,omitempty"` Exhibition *Exhibition `protobuf:"bytes,15,opt,name=Exhibition,json=exhibition,proto3" json:"Exhibition,omitempty"` Bundle *Bundle `protobuf:"bytes,16,opt,name=Bundle,json=bundle,proto3" json:"Bundle,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,17,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` //审批的人 CanApproval bool `protobuf:"varint,18,opt,name=CanApproval,json=canApproval,proto3" json:"CanApproval,omitempty"` //审批的人 WorkFlows []*WorkFlow `protobuf:"bytes,19,rep,name=WorkFlows,json=workFlows,proto3" json:"WorkFlows,omitempty"` //审批的人 AllStatus uint64 `protobuf:"varint,20,opt,name=AllStatus,json=allStatus,proto3" json:"AllStatus,omitempty"` //状态 0 1 2 3已阅读 4-待阅读 NowUserId uint64 `protobuf:"varint,21,opt,name=NowUserId,json=nowUserId,proto3" json:"NowUserId,omitempty"` NowUserName string `protobuf:"bytes,22,opt,name=NowUserName,json=nowUserName,proto3" json:"NowUserName,omitempty"` Level uint64 `protobuf:"varint,23,opt,name=Level,json=level,proto3" json:"Level,omitempty"` NowLevel uint64 `protobuf:"varint,24,opt,name=NowLevel,json=nowLevel,proto3" json:"NowLevel,omitempty"` CreatedAt string `protobuf:"bytes,25,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` CustomizeInfo []*KeyInfo `protobuf:"bytes,26,rep,name=CustomizeInfo,json=customizeInfo,proto3" json:"CustomizeInfo,omitempty"` IsCustom uint64 `protobuf:"varint,27,opt,name=IsCustom,json=isCustom,proto3" json:"IsCustom,omitempty"` TypeName string `protobuf:"bytes,28,opt,name=TypeName,json=typeName,proto3" json:"TypeName,omitempty"` GroupName string `protobuf:"bytes,29,opt,name=GroupName,json=groupName,proto3" json:"GroupName,omitempty"` BundlePayPrice *BundlePayPrice `protobuf:"bytes,30,opt,name=BundlePayPrice,json=bundlePayPrice,proto3" json:"BundlePayPrice,omitempty"` ApprovalOA *ApprovalOA `protobuf:"bytes,31,opt,name=ApprovalOA,json=approvalOA,proto3" json:"ApprovalOA,omitempty"` FinancialForm *FinancialForm `protobuf:"bytes,32,opt,name=FinancialForm,json=financialForm,proto3" json:"FinancialForm,omitempty"` } func (x *CreateRequest) Reset() { *x = CreateRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateRequest) ProtoMessage() {} func (x *CreateRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreateRequest.ProtoReflect.Descriptor instead. func (*CreateRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{34} } func (x *CreateRequest) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *CreateRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *CreateRequest) GetStatus() uint64 { if x != nil { return x.Status } return 0 } func (x *CreateRequest) GetType() string { if x != nil { return x.Type } return "" } func (x *CreateRequest) GetSubmitterID() uint64 { if x != nil { return x.SubmitterID } return 0 } func (x *CreateRequest) GetSubmitterName() string { if x != nil { return x.SubmitterName } return "" } func (x *CreateRequest) GetCopyUsers() []*CopyUser { if x != nil { return x.CopyUsers } return nil } func (x *CreateRequest) GetContent() string { if x != nil { return x.Content } return "" } func (x *CreateRequest) GetReply() string { if x != nil { return x.Reply } return "" } func (x *CreateRequest) GetCanView() bool { if x != nil { return x.CanView } return false } func (x *CreateRequest) GetWork() *Work { if x != nil { return x.Work } return nil } func (x *CreateRequest) GetShow() *Show { if x != nil { return x.Show } return nil } func (x *CreateRequest) GetExhibition() *Exhibition { if x != nil { return x.Exhibition } return nil } func (x *CreateRequest) GetBundle() *Bundle { if x != nil { return x.Bundle } return nil } func (x *CreateRequest) GetApprovalUsers() []*ApprovalUser { if x != nil { return x.ApprovalUsers } return nil } func (x *CreateRequest) GetCanApproval() bool { if x != nil { return x.CanApproval } return false } func (x *CreateRequest) GetWorkFlows() []*WorkFlow { if x != nil { return x.WorkFlows } return nil } func (x *CreateRequest) GetAllStatus() uint64 { if x != nil { return x.AllStatus } return 0 } func (x *CreateRequest) GetNowUserId() uint64 { if x != nil { return x.NowUserId } return 0 } func (x *CreateRequest) GetNowUserName() string { if x != nil { return x.NowUserName } return "" } func (x *CreateRequest) GetLevel() uint64 { if x != nil { return x.Level } return 0 } func (x *CreateRequest) GetNowLevel() uint64 { if x != nil { return x.NowLevel } return 0 } func (x *CreateRequest) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } func (x *CreateRequest) GetCustomizeInfo() []*KeyInfo { if x != nil { return x.CustomizeInfo } return nil } func (x *CreateRequest) GetIsCustom() uint64 { if x != nil { return x.IsCustom } return 0 } func (x *CreateRequest) GetTypeName() string { if x != nil { return x.TypeName } return "" } func (x *CreateRequest) GetGroupName() string { if x != nil { return x.GroupName } return "" } func (x *CreateRequest) GetBundlePayPrice() *BundlePayPrice { if x != nil { return x.BundlePayPrice } return nil } func (x *CreateRequest) GetApprovalOA() *ApprovalOA { if x != nil { return x.ApprovalOA } return nil } func (x *CreateRequest) GetFinancialForm() *FinancialForm { if x != nil { return x.FinancialForm } return nil } type WorkFlow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` UserID uint64 `protobuf:"varint,3,opt,name=UserID,json=userID,proto3" json:"UserID,omitempty"` Name string `protobuf:"bytes,4,opt,name=Name,json=name,proto3" json:"Name,omitempty"` Level uint64 `protobuf:"varint,5,opt,name=Level,json=level,proto3" json:"Level,omitempty"` Status uint64 `protobuf:"varint,6,opt,name=Status,json=status,proto3" json:"Status,omitempty"` Reply string `protobuf:"bytes,7,opt,name=Reply,json=reply,proto3" json:"Reply,omitempty"` OperatedAt string `protobuf:"bytes,8,opt,name=OperatedAt,json=operatedAt,proto3" json:"OperatedAt,omitempty"` } func (x *WorkFlow) Reset() { *x = WorkFlow{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkFlow) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkFlow) ProtoMessage() {} func (x *WorkFlow) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkFlow.ProtoReflect.Descriptor instead. func (*WorkFlow) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{35} } func (x *WorkFlow) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *WorkFlow) GetUserID() uint64 { if x != nil { return x.UserID } return 0 } func (x *WorkFlow) GetName() string { if x != nil { return x.Name } return "" } func (x *WorkFlow) GetLevel() uint64 { if x != nil { return x.Level } return 0 } func (x *WorkFlow) GetStatus() uint64 { if x != nil { return x.Status } return 0 } func (x *WorkFlow) GetReply() string { if x != nil { return x.Reply } return "" } func (x *WorkFlow) GetOperatedAt() string { if x != nil { return x.OperatedAt } return "" } type DetailRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` UserId uint64 `protobuf:"varint,3,opt,name=UserId,json=userId,proto3" json:"UserId,omitempty"` } func (x *DetailRequest) Reset() { *x = DetailRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DetailRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DetailRequest) ProtoMessage() {} func (x *DetailRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DetailRequest.ProtoReflect.Descriptor instead. func (*DetailRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{36} } func (x *DetailRequest) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *DetailRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *DetailRequest) GetUserId() uint64 { if x != nil { return x.UserId } return 0 } type RemoveRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IDs []uint64 `protobuf:"varint,1,rep,packed,name=IDs,proto3" json:"IDs,omitempty"` Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` } func (x *RemoveRequest) Reset() { *x = RemoveRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RemoveRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*RemoveRequest) ProtoMessage() {} func (x *RemoveRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RemoveRequest.ProtoReflect.Descriptor instead. func (*RemoveRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{37} } func (x *RemoveRequest) GetIDs() []uint64 { if x != nil { return x.IDs } return nil } func (x *RemoveRequest) GetDomain() string { if x != nil { return x.Domain } return "" } type ApprovalResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` } func (x *ApprovalResponse) Reset() { *x = ApprovalResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApprovalResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApprovalResponse) ProtoMessage() {} func (x *ApprovalResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApprovalResponse.ProtoReflect.Descriptor instead. func (*ApprovalResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{38} } func (x *ApprovalResponse) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *ApprovalResponse) GetSuccess() bool { if x != nil { return x.Success } return false } type RemoveResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` } func (x *RemoveResponse) Reset() { *x = RemoveResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RemoveResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*RemoveResponse) ProtoMessage() {} func (x *RemoveResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RemoveResponse.ProtoReflect.Descriptor instead. func (*RemoveResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{39} } func (x *RemoveResponse) GetSuccess() bool { if x != nil { return x.Success } return false } type ApprovalExhibitionRemove struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Success bool `protobuf:"varint,1,opt,name=Success,json=success,proto3" json:"Success,omitempty"` } func (x *ApprovalExhibitionRemove) Reset() { *x = ApprovalExhibitionRemove{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApprovalExhibitionRemove) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApprovalExhibitionRemove) ProtoMessage() {} func (x *ApprovalExhibitionRemove) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApprovalExhibitionRemove.ProtoReflect.Descriptor instead. func (*ApprovalExhibitionRemove) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{40} } func (x *ApprovalExhibitionRemove) GetSuccess() bool { if x != nil { return x.Success } return false } type ApprovalExhibitionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` ApprovalID uint64 `protobuf:"varint,5,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` ExhibitionID uint64 `protobuf:"varint,6,opt,name=ExhibitionID,json=exhibitionID,proto3" json:"ExhibitionID,omitempty"` ExhibitionName string `protobuf:"bytes,7,opt,name=ExhibitionName,json=exhibitionName,proto3" json:"ExhibitionName,omitempty"` ArtworkID uint64 `protobuf:"varint,8,opt,name=ArtworkID,json=artworkID,proto3" json:"ArtworkID,omitempty"` ExhibitionSize string `protobuf:"bytes,9,opt,name=ExhibitionSize,json=exhibitionSize,proto3" json:"ExhibitionSize,omitempty"` ExhibitionNumber string `protobuf:"bytes,10,opt,name=ExhibitionNumber,json=exhibitionNumber,proto3" json:"ExhibitionNumber,omitempty"` } func (x *ApprovalExhibitionRequest) Reset() { *x = ApprovalExhibitionRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApprovalExhibitionRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApprovalExhibitionRequest) ProtoMessage() {} func (x *ApprovalExhibitionRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApprovalExhibitionRequest.ProtoReflect.Descriptor instead. func (*ApprovalExhibitionRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{41} } func (x *ApprovalExhibitionRequest) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *ApprovalExhibitionRequest) GetDeletedAt() uint64 { if x != nil { return x.DeletedAt } return 0 } func (x *ApprovalExhibitionRequest) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } func (x *ApprovalExhibitionRequest) GetUpdatedAt() string { if x != nil { return x.UpdatedAt } return "" } func (x *ApprovalExhibitionRequest) GetApprovalID() uint64 { if x != nil { return x.ApprovalID } return 0 } func (x *ApprovalExhibitionRequest) GetExhibitionID() uint64 { if x != nil { return x.ExhibitionID } return 0 } func (x *ApprovalExhibitionRequest) GetExhibitionName() string { if x != nil { return x.ExhibitionName } return "" } func (x *ApprovalExhibitionRequest) GetArtworkID() uint64 { if x != nil { return x.ArtworkID } return 0 } func (x *ApprovalExhibitionRequest) GetExhibitionSize() string { if x != nil { return x.ExhibitionSize } return "" } func (x *ApprovalExhibitionRequest) GetExhibitionNumber() string { if x != nil { return x.ExhibitionNumber } return "" } type ApprovalExhibitionDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` } func (x *ApprovalExhibitionDetail) Reset() { *x = ApprovalExhibitionDetail{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApprovalExhibitionDetail) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApprovalExhibitionDetail) ProtoMessage() {} func (x *ApprovalExhibitionDetail) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApprovalExhibitionDetail.ProtoReflect.Descriptor instead. func (*ApprovalExhibitionDetail) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{42} } func (x *ApprovalExhibitionDetail) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *ApprovalExhibitionDetail) GetDomain() string { if x != nil { return x.Domain } return "" } type CopyUser struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name,json=name,proto3" json:"Name,omitempty"` IsViewed bool `protobuf:"varint,3,opt,name=IsViewed,json=isViewed,proto3" json:"IsViewed,omitempty"` } func (x *CopyUser) Reset() { *x = CopyUser{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CopyUser) String() string { return protoimpl.X.MessageStringOf(x) } func (*CopyUser) ProtoMessage() {} func (x *CopyUser) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CopyUser.ProtoReflect.Descriptor instead. func (*CopyUser) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{43} } func (x *CopyUser) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *CopyUser) GetName() string { if x != nil { return x.Name } return "" } func (x *CopyUser) GetIsViewed() bool { if x != nil { return x.IsViewed } return false } type ApprovalUser struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name,json=name,proto3" json:"Name,omitempty"` Level string `protobuf:"bytes,3,opt,name=Level,proto3" json:"Level,omitempty"` } func (x *ApprovalUser) Reset() { *x = ApprovalUser{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApprovalUser) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApprovalUser) ProtoMessage() {} func (x *ApprovalUser) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApprovalUser.ProtoReflect.Descriptor instead. func (*ApprovalUser) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{44} } func (x *ApprovalUser) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *ApprovalUser) GetName() string { if x != nil { return x.Name } return "" } func (x *ApprovalUser) GetLevel() string { if x != nil { return x.Level } return "" } type SettingRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` KeyWord string `protobuf:"bytes,5,opt,name=KeyWord,json=keyWord,proto3" json:"KeyWord,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,6,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,9,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` Domain string `protobuf:"bytes,10,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` CustomizeInfo []*KeyInfo `protobuf:"bytes,11,rep,name=CustomizeInfo,json=customizeInfo,proto3" json:"CustomizeInfo,omitempty"` IsCustom uint64 `protobuf:"varint,12,opt,name=IsCustom,json=isCustom,proto3" json:"IsCustom,omitempty"` } func (x *SettingRequest) Reset() { *x = SettingRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SettingRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SettingRequest) ProtoMessage() {} func (x *SettingRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SettingRequest.ProtoReflect.Descriptor instead. func (*SettingRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{45} } func (x *SettingRequest) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *SettingRequest) GetDeletedAt() uint64 { if x != nil { return x.DeletedAt } return 0 } func (x *SettingRequest) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } func (x *SettingRequest) GetUpdatedAt() string { if x != nil { return x.UpdatedAt } return "" } func (x *SettingRequest) GetKeyWord() string { if x != nil { return x.KeyWord } return "" } func (x *SettingRequest) GetCopyUsers() []*CopyUser { if x != nil { return x.CopyUsers } return nil } func (x *SettingRequest) GetApprovalUsers() []*ApprovalUser { if x != nil { return x.ApprovalUsers } return nil } func (x *SettingRequest) GetDomain() string { if x != nil { return x.Domain } return "" } func (x *SettingRequest) GetCustomizeInfo() []*KeyInfo { if x != nil { return x.CustomizeInfo } return nil } func (x *SettingRequest) GetIsCustom() uint64 { if x != nil { return x.IsCustom } return 0 } type DetailSettingRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields KeyWord string `protobuf:"bytes,1,opt,name=KeyWord,json=keyWord,proto3" json:"KeyWord,omitempty"` Domain string `protobuf:"bytes,2,opt,name=Domain,json=domain,proto3" json:"Domain,omitempty"` } func (x *DetailSettingRequest) Reset() { *x = DetailSettingRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DetailSettingRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DetailSettingRequest) ProtoMessage() {} func (x *DetailSettingRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DetailSettingRequest.ProtoReflect.Descriptor instead. func (*DetailSettingRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{46} } func (x *DetailSettingRequest) GetKeyWord() string { if x != nil { return x.KeyWord } return "" } func (x *DetailSettingRequest) GetDomain() string { if x != nil { return x.Domain } return "" } type SettingResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` Success bool `protobuf:"varint,2,opt,name=Success,json=success,proto3" json:"Success,omitempty"` } func (x *SettingResponse) Reset() { *x = SettingResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SettingResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SettingResponse) ProtoMessage() {} func (x *SettingResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SettingResponse.ProtoReflect.Descriptor instead. func (*SettingResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{47} } func (x *SettingResponse) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *SettingResponse) GetSuccess() bool { if x != nil { return x.Success } return false } type ApplyTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Date string `protobuf:"bytes,1,opt,name=Date,json=date,proto3" json:"Date,omitempty"` Hour string `protobuf:"bytes,2,opt,name=Hour,json=hour,proto3" json:"Hour,omitempty"` M string `protobuf:"bytes,3,opt,name=M,json=m,proto3" json:"M,omitempty"` } func (x *ApplyTime) Reset() { *x = ApplyTime{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyTime) ProtoMessage() {} func (x *ApplyTime) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApplyTime.ProtoReflect.Descriptor instead. func (*ApplyTime) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{48} } func (x *ApplyTime) GetDate() string { if x != nil { return x.Date } return "" } func (x *ApplyTime) GetHour() string { if x != nil { return x.Hour } return "" } func (x *ApplyTime) GetM() string { if x != nil { return x.M } return "" } type ApprovalOA struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` ApprovalID uint64 `protobuf:"varint,5,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` LeaveApply *LeaveApply `protobuf:"bytes,6,opt,name=LeaveApply,json=leaveApply,proto3" json:"LeaveApply,omitempty"` OutWork *OutWorkApply `protobuf:"bytes,7,opt,name=OutWork,json=outWork,proto3" json:"OutWork,omitempty"` MakeUp *MakeUpApply `protobuf:"bytes,8,opt,name=MakeUp,json=makeUp,proto3" json:"MakeUp,omitempty"` Turnover *TurnoverApply `protobuf:"bytes,9,opt,name=Turnover,json=turnover,proto3" json:"Turnover,omitempty"` OverTime *OverTimeApply `protobuf:"bytes,10,opt,name=OverTime,json=overTime,proto3" json:"OverTime,omitempty"` Leave *Leave `protobuf:"bytes,11,opt,name=Leave,json=leave,proto3" json:"Leave,omitempty"` } func (x *ApprovalOA) Reset() { *x = ApprovalOA{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApprovalOA) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApprovalOA) ProtoMessage() {} func (x *ApprovalOA) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApprovalOA.ProtoReflect.Descriptor instead. func (*ApprovalOA) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{49} } func (x *ApprovalOA) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *ApprovalOA) GetDeletedAt() uint64 { if x != nil { return x.DeletedAt } return 0 } func (x *ApprovalOA) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } func (x *ApprovalOA) GetUpdatedAt() string { if x != nil { return x.UpdatedAt } return "" } func (x *ApprovalOA) GetApprovalID() uint64 { if x != nil { return x.ApprovalID } return 0 } func (x *ApprovalOA) GetLeaveApply() *LeaveApply { if x != nil { return x.LeaveApply } return nil } func (x *ApprovalOA) GetOutWork() *OutWorkApply { if x != nil { return x.OutWork } return nil } func (x *ApprovalOA) GetMakeUp() *MakeUpApply { if x != nil { return x.MakeUp } return nil } func (x *ApprovalOA) GetTurnover() *TurnoverApply { if x != nil { return x.Turnover } return nil } func (x *ApprovalOA) GetOverTime() *OverTimeApply { if x != nil { return x.OverTime } return nil } func (x *ApprovalOA) GetLeave() *Leave { if x != nil { return x.Leave } return nil } type LeaveApply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` Reason string `protobuf:"bytes,10,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` VerifyFile []string `protobuf:"bytes,11,rep,name=VerifyFile,json=verifyFile,proto3" json:"VerifyFile,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,12,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,13,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` LeaveBalance float32 `protobuf:"fixed32,14,opt,name=LeaveBalance,json=leaveBalance,proto3" json:"LeaveBalance,omitempty"` } func (x *LeaveApply) Reset() { *x = LeaveApply{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LeaveApply) String() string { return protoimpl.X.MessageStringOf(x) } func (*LeaveApply) ProtoMessage() {} func (x *LeaveApply) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LeaveApply.ProtoReflect.Descriptor instead. func (*LeaveApply) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{50} } func (x *LeaveApply) GetUUID() string { if x != nil { return x.UUID } return "" } func (x *LeaveApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } return 0 } func (x *LeaveApply) GetStaffNum() string { if x != nil { return x.StaffNum } return "" } func (x *LeaveApply) GetStaffName() string { if x != nil { return x.StaffName } return "" } func (x *LeaveApply) GetDepartmentUID() string { if x != nil { return x.DepartmentUID } return "" } func (x *LeaveApply) GetApplyType() string { if x != nil { return x.ApplyType } return "" } func (x *LeaveApply) GetActionTime() string { if x != nil { return x.ActionTime } return "" } func (x *LeaveApply) GetApprovalID() string { if x != nil { return x.ApprovalID } return "" } func (x *LeaveApply) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *LeaveApply) GetReason() string { if x != nil { return x.Reason } return "" } func (x *LeaveApply) GetVerifyFile() []string { if x != nil { return x.VerifyFile } return nil } func (x *LeaveApply) GetCopyUsers() []*CopyUser { if x != nil { return x.CopyUsers } return nil } func (x *LeaveApply) GetApprovalUsers() []*ApprovalUser { if x != nil { return x.ApprovalUsers } return nil } func (x *LeaveApply) GetLeaveBalance() float32 { if x != nil { return x.LeaveBalance } return 0 } type OutWorkApply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` OutWorkAddress string `protobuf:"bytes,14,opt,name=OutWorkAddress,json=outWorkAddress,proto3" json:"OutWorkAddress,omitempty"` Vehicle string `protobuf:"bytes,15,opt,name=Vehicle,json=vehicle,proto3" json:"Vehicle,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,16,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,17,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` } func (x *OutWorkApply) Reset() { *x = OutWorkApply{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OutWorkApply) String() string { return protoimpl.X.MessageStringOf(x) } func (*OutWorkApply) ProtoMessage() {} func (x *OutWorkApply) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use OutWorkApply.ProtoReflect.Descriptor instead. func (*OutWorkApply) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{51} } func (x *OutWorkApply) GetUUID() string { if x != nil { return x.UUID } return "" } func (x *OutWorkApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } return 0 } func (x *OutWorkApply) GetStaffNum() string { if x != nil { return x.StaffNum } return "" } func (x *OutWorkApply) GetStaffName() string { if x != nil { return x.StaffName } return "" } func (x *OutWorkApply) GetDepartmentUID() string { if x != nil { return x.DepartmentUID } return "" } func (x *OutWorkApply) GetApplyType() string { if x != nil { return x.ApplyType } return "" } func (x *OutWorkApply) GetActionTime() string { if x != nil { return x.ActionTime } return "" } func (x *OutWorkApply) GetApprovalID() string { if x != nil { return x.ApprovalID } return "" } func (x *OutWorkApply) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *OutWorkApply) GetApplyTimes() []*ApplyTime { if x != nil { return x.ApplyTimes } return nil } func (x *OutWorkApply) GetReason() string { if x != nil { return x.Reason } return "" } func (x *OutWorkApply) GetHours() float32 { if x != nil { return x.Hours } return 0 } func (x *OutWorkApply) GetOutWorkAddress() string { if x != nil { return x.OutWorkAddress } return "" } func (x *OutWorkApply) GetVehicle() string { if x != nil { return x.Vehicle } return "" } func (x *OutWorkApply) GetCopyUsers() []*CopyUser { if x != nil { return x.CopyUsers } return nil } func (x *OutWorkApply) GetApprovalUsers() []*ApprovalUser { if x != nil { return x.ApprovalUsers } return nil } type MakeUpApply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,13,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,14,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` } func (x *MakeUpApply) Reset() { *x = MakeUpApply{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MakeUpApply) String() string { return protoimpl.X.MessageStringOf(x) } func (*MakeUpApply) ProtoMessage() {} func (x *MakeUpApply) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MakeUpApply.ProtoReflect.Descriptor instead. func (*MakeUpApply) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{52} } func (x *MakeUpApply) GetUUID() string { if x != nil { return x.UUID } return "" } func (x *MakeUpApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } return 0 } func (x *MakeUpApply) GetStaffNum() string { if x != nil { return x.StaffNum } return "" } func (x *MakeUpApply) GetStaffName() string { if x != nil { return x.StaffName } return "" } func (x *MakeUpApply) GetDepartmentUID() string { if x != nil { return x.DepartmentUID } return "" } func (x *MakeUpApply) GetApplyType() string { if x != nil { return x.ApplyType } return "" } func (x *MakeUpApply) GetActionTime() string { if x != nil { return x.ActionTime } return "" } func (x *MakeUpApply) GetApprovalID() string { if x != nil { return x.ApprovalID } return "" } func (x *MakeUpApply) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *MakeUpApply) GetApplyTimes() []*ApplyTime { if x != nil { return x.ApplyTimes } return nil } func (x *MakeUpApply) GetReason() string { if x != nil { return x.Reason } return "" } func (x *MakeUpApply) GetCopyUsers() []*CopyUser { if x != nil { return x.CopyUsers } return nil } func (x *MakeUpApply) GetApprovalUsers() []*ApprovalUser { if x != nil { return x.ApprovalUsers } return nil } type TurnoverApply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` HandoverUID uint64 `protobuf:"varint,10,opt,name=HandoverUID,json=handoverUID,proto3" json:"HandoverUID,omitempty"` HandoverName string `protobuf:"bytes,11,opt,name=HandoverName,json=handoverName,proto3" json:"HandoverName,omitempty"` ApplyTimes []*ApplyTime `protobuf:"bytes,12,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,13,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,14,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,15,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` } func (x *TurnoverApply) Reset() { *x = TurnoverApply{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TurnoverApply) String() string { return protoimpl.X.MessageStringOf(x) } func (*TurnoverApply) ProtoMessage() {} func (x *TurnoverApply) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TurnoverApply.ProtoReflect.Descriptor instead. func (*TurnoverApply) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{53} } func (x *TurnoverApply) GetUUID() string { if x != nil { return x.UUID } return "" } func (x *TurnoverApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } return 0 } func (x *TurnoverApply) GetStaffNum() string { if x != nil { return x.StaffNum } return "" } func (x *TurnoverApply) GetStaffName() string { if x != nil { return x.StaffName } return "" } func (x *TurnoverApply) GetDepartmentUID() string { if x != nil { return x.DepartmentUID } return "" } func (x *TurnoverApply) GetApplyType() string { if x != nil { return x.ApplyType } return "" } func (x *TurnoverApply) GetActionTime() string { if x != nil { return x.ActionTime } return "" } func (x *TurnoverApply) GetApprovalID() string { if x != nil { return x.ApprovalID } return "" } func (x *TurnoverApply) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *TurnoverApply) GetHandoverUID() uint64 { if x != nil { return x.HandoverUID } return 0 } func (x *TurnoverApply) GetHandoverName() string { if x != nil { return x.HandoverName } return "" } func (x *TurnoverApply) GetApplyTimes() []*ApplyTime { if x != nil { return x.ApplyTimes } return nil } func (x *TurnoverApply) GetReason() string { if x != nil { return x.Reason } return "" } func (x *TurnoverApply) GetCopyUsers() []*CopyUser { if x != nil { return x.CopyUsers } return nil } func (x *TurnoverApply) GetApprovalUsers() []*ApprovalUser { if x != nil { return x.ApprovalUsers } return nil } type OverTimeApply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,14,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,15,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` } func (x *OverTimeApply) Reset() { *x = OverTimeApply{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OverTimeApply) String() string { return protoimpl.X.MessageStringOf(x) } func (*OverTimeApply) ProtoMessage() {} func (x *OverTimeApply) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use OverTimeApply.ProtoReflect.Descriptor instead. func (*OverTimeApply) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{54} } func (x *OverTimeApply) GetUUID() string { if x != nil { return x.UUID } return "" } func (x *OverTimeApply) GetStaffUID() uint64 { if x != nil { return x.StaffUID } return 0 } func (x *OverTimeApply) GetStaffNum() string { if x != nil { return x.StaffNum } return "" } func (x *OverTimeApply) GetStaffName() string { if x != nil { return x.StaffName } return "" } func (x *OverTimeApply) GetDepartmentUID() string { if x != nil { return x.DepartmentUID } return "" } func (x *OverTimeApply) GetApplyType() string { if x != nil { return x.ApplyType } return "" } func (x *OverTimeApply) GetActionTime() string { if x != nil { return x.ActionTime } return "" } func (x *OverTimeApply) GetApprovalID() string { if x != nil { return x.ApprovalID } return "" } func (x *OverTimeApply) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *OverTimeApply) GetApplyTimes() []*ApplyTime { if x != nil { return x.ApplyTimes } return nil } func (x *OverTimeApply) GetReason() string { if x != nil { return x.Reason } return "" } func (x *OverTimeApply) GetHours() float32 { if x != nil { return x.Hours } return 0 } func (x *OverTimeApply) GetCopyUsers() []*CopyUser { if x != nil { return x.CopyUsers } return nil } func (x *OverTimeApply) GetApprovalUsers() []*ApprovalUser { if x != nil { return x.ApprovalUsers } return nil } type Leave struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` StaffUID uint64 `protobuf:"varint,2,opt,name=StaffUID,json=staffUID,proto3" json:"StaffUID,omitempty"` StaffNum string `protobuf:"bytes,3,opt,name=StaffNum,json=staffNum,proto3" json:"StaffNum,omitempty"` StaffName string `protobuf:"bytes,4,opt,name=StaffName,json=staffName,proto3" json:"StaffName,omitempty"` DepartmentUID string `protobuf:"bytes,5,opt,name=DepartmentUID,json=departmentUID,proto3" json:"DepartmentUID,omitempty"` ApplyType string `protobuf:"bytes,6,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` ActionTime string `protobuf:"bytes,7,opt,name=ActionTime,json=actionTime,proto3" json:"ActionTime,omitempty"` ApprovalID string `protobuf:"bytes,8,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` Status int32 `protobuf:"varint,9,opt,name=Status,json=status,proto3" json:"Status,omitempty"` ApplyTimes []*ApplyTime `protobuf:"bytes,10,rep,name=ApplyTimes,json=applyTimes,proto3" json:"ApplyTimes,omitempty"` Reason string `protobuf:"bytes,12,opt,name=Reason,json=reason,proto3" json:"Reason,omitempty"` Hours float32 `protobuf:"fixed32,13,opt,name=Hours,json=hours,proto3" json:"Hours,omitempty"` Days float32 `protobuf:"fixed32,14,opt,name=Days,json=days,proto3" json:"Days,omitempty"` CopyUsers []*CopyUser `protobuf:"bytes,15,rep,name=CopyUsers,json=copyUsers,proto3" json:"CopyUsers,omitempty"` ApprovalUsers []*ApprovalUser `protobuf:"bytes,16,rep,name=ApprovalUsers,json=approvalUsers,proto3" json:"ApprovalUsers,omitempty"` } func (x *Leave) Reset() { *x = Leave{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Leave) String() string { return protoimpl.X.MessageStringOf(x) } func (*Leave) ProtoMessage() {} func (x *Leave) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Leave.ProtoReflect.Descriptor instead. func (*Leave) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{55} } func (x *Leave) GetUUID() string { if x != nil { return x.UUID } return "" } func (x *Leave) GetStaffUID() uint64 { if x != nil { return x.StaffUID } return 0 } func (x *Leave) GetStaffNum() string { if x != nil { return x.StaffNum } return "" } func (x *Leave) GetStaffName() string { if x != nil { return x.StaffName } return "" } func (x *Leave) GetDepartmentUID() string { if x != nil { return x.DepartmentUID } return "" } func (x *Leave) GetApplyType() string { if x != nil { return x.ApplyType } return "" } func (x *Leave) GetActionTime() string { if x != nil { return x.ActionTime } return "" } func (x *Leave) GetApprovalID() string { if x != nil { return x.ApprovalID } return "" } func (x *Leave) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *Leave) GetApplyTimes() []*ApplyTime { if x != nil { return x.ApplyTimes } return nil } func (x *Leave) GetReason() string { if x != nil { return x.Reason } return "" } func (x *Leave) GetHours() float32 { if x != nil { return x.Hours } return 0 } func (x *Leave) GetDays() float32 { if x != nil { return x.Days } return 0 } func (x *Leave) GetCopyUsers() []*CopyUser { if x != nil { return x.CopyUsers } return nil } func (x *Leave) GetApprovalUsers() []*ApprovalUser { if x != nil { return x.ApprovalUsers } return nil } type UpdateApprovalOAUUIDReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UUID string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` ApplyType string `protobuf:"bytes,2,opt,name=ApplyType,json=applyType,proto3" json:"ApplyType,omitempty"` ApprovalID uint64 `protobuf:"varint,3,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` } func (x *UpdateApprovalOAUUIDReq) Reset() { *x = UpdateApprovalOAUUIDReq{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateApprovalOAUUIDReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateApprovalOAUUIDReq) ProtoMessage() {} func (x *UpdateApprovalOAUUIDReq) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateApprovalOAUUIDReq.ProtoReflect.Descriptor instead. func (*UpdateApprovalOAUUIDReq) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{56} } func (x *UpdateApprovalOAUUIDReq) GetUUID() string { if x != nil { return x.UUID } return "" } func (x *UpdateApprovalOAUUIDReq) GetApplyType() string { if x != nil { return x.ApplyType } return "" } func (x *UpdateApprovalOAUUIDReq) GetApprovalID() uint64 { if x != nil { return x.ApprovalID } return 0 } type UpdateApprovalOAUUIDResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Msg string `protobuf:"bytes,1,opt,name=Msg,json=msg,proto3" json:"Msg,omitempty"` } func (x *UpdateApprovalOAUUIDResponse) Reset() { *x = UpdateApprovalOAUUIDResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateApprovalOAUUIDResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateApprovalOAUUIDResponse) ProtoMessage() {} func (x *UpdateApprovalOAUUIDResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateApprovalOAUUIDResponse.ProtoReflect.Descriptor instead. func (*UpdateApprovalOAUUIDResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{57} } func (x *UpdateApprovalOAUUIDResponse) GetMsg() string { if x != nil { return x.Msg } return "" } // 财务报表审批 type GetNameRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SettingType string `protobuf:"bytes,1,opt,name=SettingType,json=settingType,proto3" json:"SettingType,omitempty"` } func (x *GetNameRequest) Reset() { *x = GetNameRequest{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetNameRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetNameRequest) ProtoMessage() {} func (x *GetNameRequest) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetNameRequest.ProtoReflect.Descriptor instead. func (*GetNameRequest) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{58} } func (x *GetNameRequest) GetSettingType() string { if x != nil { return x.SettingType } return "" } type GetNameResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name []string `protobuf:"bytes,1,rep,name=Name,json=name,proto3" json:"Name,omitempty"` } func (x *GetNameResponse) Reset() { *x = GetNameResponse{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetNameResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetNameResponse) ProtoMessage() {} func (x *GetNameResponse) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetNameResponse.ProtoReflect.Descriptor instead. func (*GetNameResponse) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{59} } func (x *GetNameResponse) GetName() []string { if x != nil { return x.Name } return nil } type FinancialForm struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` DeletedAt uint64 `protobuf:"varint,2,opt,name=DeletedAt,json=deletedAt,proto3" json:"DeletedAt,omitempty"` CreatedAt string `protobuf:"bytes,3,opt,name=CreatedAt,json=createdAt,proto3" json:"CreatedAt,omitempty"` UpdatedAt string `protobuf:"bytes,4,opt,name=UpdatedAt,json=updatedAt,proto3" json:"UpdatedAt,omitempty"` ApprovalID uint64 `protobuf:"varint,5,opt,name=ApprovalID,json=approvalID,proto3" json:"ApprovalID,omitempty"` PaymentCompany string `protobuf:"bytes,6,opt,name=PaymentCompany,json=paymentCompany,proto3" json:"PaymentCompany,omitempty"` TransactionDepartment string `protobuf:"bytes,7,opt,name=TransactionDepartment,json=transactionDepartment,proto3" json:"TransactionDepartment,omitempty"` Payee string `protobuf:"bytes,8,opt,name=Payee,json=payee,proto3" json:"Payee,omitempty"` BeneficiaryBank string `protobuf:"bytes,9,opt,name=BeneficiaryBank,json=beneficiaryBank,proto3" json:"BeneficiaryBank,omitempty"` BankNo string `protobuf:"bytes,10,opt,name=BankNo,json=bankNo,proto3" json:"BankNo,omitempty"` CostInfo []*CostInfo `protobuf:"bytes,11,rep,name=CostInfo,json=costInfo,proto3" json:"CostInfo,omitempty"` PaymentMethod string `protobuf:"bytes,12,opt,name=PaymentMethod,json=paymentMethod,proto3" json:"PaymentMethod,omitempty"` InvoiceInfo []*InvoiceInfo `protobuf:"bytes,13,rep,name=InvoiceInfo,json=invoiceInfo,proto3" json:"InvoiceInfo,omitempty"` } func (x *FinancialForm) Reset() { *x = FinancialForm{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FinancialForm) String() string { return protoimpl.X.MessageStringOf(x) } func (*FinancialForm) ProtoMessage() {} func (x *FinancialForm) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FinancialForm.ProtoReflect.Descriptor instead. func (*FinancialForm) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{60} } func (x *FinancialForm) GetID() uint64 { if x != nil { return x.ID } return 0 } func (x *FinancialForm) GetDeletedAt() uint64 { if x != nil { return x.DeletedAt } return 0 } func (x *FinancialForm) GetCreatedAt() string { if x != nil { return x.CreatedAt } return "" } func (x *FinancialForm) GetUpdatedAt() string { if x != nil { return x.UpdatedAt } return "" } func (x *FinancialForm) GetApprovalID() uint64 { if x != nil { return x.ApprovalID } return 0 } func (x *FinancialForm) GetPaymentCompany() string { if x != nil { return x.PaymentCompany } return "" } func (x *FinancialForm) GetTransactionDepartment() string { if x != nil { return x.TransactionDepartment } return "" } func (x *FinancialForm) GetPayee() string { if x != nil { return x.Payee } return "" } func (x *FinancialForm) GetBeneficiaryBank() string { if x != nil { return x.BeneficiaryBank } return "" } func (x *FinancialForm) GetBankNo() string { if x != nil { return x.BankNo } return "" } func (x *FinancialForm) GetCostInfo() []*CostInfo { if x != nil { return x.CostInfo } return nil } func (x *FinancialForm) GetPaymentMethod() string { if x != nil { return x.PaymentMethod } return "" } func (x *FinancialForm) GetInvoiceInfo() []*InvoiceInfo { if x != nil { return x.InvoiceInfo } return nil } type CostInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Description string `protobuf:"bytes,1,opt,name=Description,json=description,proto3" json:"Description,omitempty"` UnitPrice string `protobuf:"bytes,2,opt,name=UnitPrice,json=unitPrice,proto3" json:"UnitPrice,omitempty"` CostUnit string `protobuf:"bytes,3,opt,name=CostUnit,json=costUnit,proto3" json:"CostUnit,omitempty"` CostNum int64 `protobuf:"varint,4,opt,name=CostNum,json=costNum,proto3" json:"CostNum,omitempty"` TotalPrice string `protobuf:"bytes,5,opt,name=TotalPrice,json=totalPrice,proto3" json:"TotalPrice,omitempty"` UsedDepartment string `protobuf:"bytes,6,opt,name=UsedDepartment,json=usedDepartment,proto3" json:"UsedDepartment,omitempty"` } func (x *CostInfo) Reset() { *x = CostInfo{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CostInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CostInfo) ProtoMessage() {} func (x *CostInfo) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CostInfo.ProtoReflect.Descriptor instead. func (*CostInfo) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{61} } func (x *CostInfo) GetDescription() string { if x != nil { return x.Description } return "" } func (x *CostInfo) GetUnitPrice() string { if x != nil { return x.UnitPrice } return "" } func (x *CostInfo) GetCostUnit() string { if x != nil { return x.CostUnit } return "" } func (x *CostInfo) GetCostNum() int64 { if x != nil { return x.CostNum } return 0 } func (x *CostInfo) GetTotalPrice() string { if x != nil { return x.TotalPrice } return "" } func (x *CostInfo) GetUsedDepartment() string { if x != nil { return x.UsedDepartment } return "" } type InvoiceInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields InvoiceDate string `protobuf:"bytes,1,opt,name=InvoiceDate,json=invoiceDate,proto3" json:"InvoiceDate,omitempty"` InvoiceNo string `protobuf:"bytes,2,opt,name=InvoiceNo,json=invoiceNo,proto3" json:"InvoiceNo,omitempty"` InvoiceProvider string `protobuf:"bytes,3,opt,name=InvoiceProvider,json=invoiceProvider,proto3" json:"InvoiceProvider,omitempty"` Amount string `protobuf:"bytes,4,opt,name=Amount,json=amount,proto3" json:"Amount,omitempty"` UseTo string `protobuf:"bytes,5,opt,name=UseTo,json=useTo,proto3" json:"UseTo,omitempty"` Applicant string `protobuf:"bytes,6,opt,name=Applicant,json=applicant,proto3" json:"Applicant,omitempty"` PaymentMethod string `protobuf:"bytes,7,opt,name=PaymentMethod,json=paymentMethod,proto3" json:"PaymentMethod,omitempty"` PaymentObj string `protobuf:"bytes,8,opt,name=PaymentObj,json=paymentObj,proto3" json:"PaymentObj,omitempty"` InvoiceType string `protobuf:"bytes,9,opt,name=InvoiceType,json=invoiceType,proto3" json:"InvoiceType,omitempty"` Notes string `protobuf:"bytes,10,opt,name=Notes,json=notes,proto3" json:"Notes,omitempty"` } func (x *InvoiceInfo) Reset() { *x = InvoiceInfo{} if protoimpl.UnsafeEnabled { mi := &file_api_approval_approval_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InvoiceInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*InvoiceInfo) ProtoMessage() {} func (x *InvoiceInfo) ProtoReflect() protoreflect.Message { mi := &file_api_approval_approval_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InvoiceInfo.ProtoReflect.Descriptor instead. func (*InvoiceInfo) Descriptor() ([]byte, []int) { return file_api_approval_approval_proto_rawDescGZIP(), []int{62} } func (x *InvoiceInfo) GetInvoiceDate() string { if x != nil { return x.InvoiceDate } return "" } func (x *InvoiceInfo) GetInvoiceNo() string { if x != nil { return x.InvoiceNo } return "" } func (x *InvoiceInfo) GetInvoiceProvider() string { if x != nil { return x.InvoiceProvider } return "" } func (x *InvoiceInfo) GetAmount() string { if x != nil { return x.Amount } return "" } func (x *InvoiceInfo) GetUseTo() string { if x != nil { return x.UseTo } return "" } func (x *InvoiceInfo) GetApplicant() string { if x != nil { return x.Applicant } return "" } func (x *InvoiceInfo) GetPaymentMethod() string { if x != nil { return x.PaymentMethod } return "" } func (x *InvoiceInfo) GetPaymentObj() string { if x != nil { return x.PaymentObj } return "" } func (x *InvoiceInfo) GetInvoiceType() string { if x != nil { return x.InvoiceType } return "" } func (x *InvoiceInfo) GetNotes() string { if x != nil { return x.Notes } return "" } var File_api_approval_approval_proto protoreflect.FileDescriptor var file_api_approval_approval_proto_rawDesc = []byte{ 0x0a, 0x1b, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x1a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x77, 0x69, 0x74, 0x6b, 0x6f, 0x77, 0x2f, 0x67, 0x6f, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x40, 0x76, 0x30, 0x2e, 0x33, 0x2e, 0x32, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x10, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x62, 0x0a, 0x16, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x17, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x50, 0x61, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x50, 0x61, 0x73, 0x73, 0x22, 0xbd, 0x01, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x22, 0x6a, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x4f, 0x0a, 0x15, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, 0x68, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x71, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x86, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x2d, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x0c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x58, 0x0a, 0x0f, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x5e, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0f, 0xe2, 0xdf, 0x1f, 0x0b, 0x10, 0x00, 0x18, 0x04, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x38, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x50, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x6f, 0x73, 0x73, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x6f, 0x73, 0x73, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x58, 0x0a, 0x12, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x6f, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x6f, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x61, 0x69, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x61, 0x69, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xc2, 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x0a, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7e, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x75, 0x6d, 0x22, 0x4c, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x74, 0x22, 0xb8, 0x02, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x22, 0xae, 0x01, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x22, 0xc6, 0x03, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x4f, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x13, 0x61, 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x69, 0x64, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x70, 0x69, 0x64, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x4e, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x22, 0x85, 0x03, 0x0a, 0x07, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x50, 0x69, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x66, 0x6e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x66, 0x6e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x61, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x44, 0x22, 0xa7, 0x03, 0x0a, 0x13, 0x41, 0x72, 0x74, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x49, 0x73, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x03, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x68, 0x6f, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x22, 0xf2, 0x08, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x31, 0x58, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xe2, 0xdf, 0x1f, 0x09, 0x2a, 0x05, 0x37, 0x30, 0x30, 0x30, 0x39, 0x58, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6f, 0x70, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x22, 0x0a, 0x04, 0x53, 0x68, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x77, 0x12, 0x34, 0x0a, 0x0a, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x3d, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4f, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3c, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x4a, 0x0a, 0x08, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf1, 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x48, 0x0a, 0x14, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3b, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x0c, 0x0a, 0x01, 0x4d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x6d, 0x22, 0xbe, 0x03, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x30, 0x0a, 0x07, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x2d, 0x0a, 0x06, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x06, 0x6d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xa9, 0x04, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x4d, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x98, 0x04, 0x0a, 0x0d, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0xf4, 0x03, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x6b, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x22, 0x30, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x32, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xde, 0x03, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x69, 0x61, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x79, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x42, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x63, 0x69, 0x61, 0x72, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x54, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x62, 0x6a, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x32, 0xd6, 0x0d, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x68, 0x69, 0x62, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4d, 0x79, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x77, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x49, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x50, 0x61, 0x79, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x4f, 0x41, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_api_approval_approval_proto_rawDescOnce sync.Once file_api_approval_approval_proto_rawDescData = file_api_approval_approval_proto_rawDesc ) func file_api_approval_approval_proto_rawDescGZIP() []byte { file_api_approval_approval_proto_rawDescOnce.Do(func() { file_api_approval_approval_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_approval_approval_proto_rawDescData) }) return file_api_approval_approval_proto_rawDescData } var file_api_approval_approval_proto_msgTypes = make([]protoimpl.MessageInfo, 63) var file_api_approval_approval_proto_goTypes = []interface{}{ (*CommonResponse)(nil), // 0: approval.CommonResponse (*ChangeBundlePayRequest)(nil), // 1: approval.ChangeBundlePayRequest (*IsExistPayRightRequest)(nil), // 2: approval.IsExistPayRightRequest (*IsExistPayRightResponse)(nil), // 3: approval.IsExistPayRightResponse (*KeyInfo)(nil), // 4: approval.KeyInfo (*UpdateEhApplyIDRequest)(nil), // 5: approval.UpdateEhApplyIDRequest (*UpdateEhApplyIDResponse)(nil), // 6: approval.UpdateEhApplyIDResponse (*UsedNumByUserRequest)(nil), // 7: approval.UsedNumByUserRequest (*UsedNumByUserResponse)(nil), // 8: approval.UsedNumByUserResponse (*NowLevelByInfoRequest)(nil), // 9: approval.NowLevelByInfoRequest (*WorkFlowResponse)(nil), // 10: approval.WorkFlowResponse (*CommonRequest)(nil), // 11: approval.CommonRequest (*CreateTypeRequest)(nil), // 12: approval.CreateTypeRequest (*TypeResponse)(nil), // 13: approval.TypeResponse (*AllTypeResponse)(nil), // 14: approval.AllTypeResponse (*CreateTypeGroupRequest)(nil), // 15: approval.CreateTypeGroupRequest (*AllGroupResponse)(nil), // 16: approval.AllGroupResponse (*StatusRequest)(nil), // 17: approval.StatusRequest (*StatusResponse)(nil), // 18: approval.StatusResponse (*ListRequest)(nil), // 19: approval.ListRequest (*ListResponse)(nil), // 20: approval.ListResponse (*ViewedRequest)(nil), // 21: approval.ViewedRequest (*InformationRequest)(nil), // 22: approval.InformationRequest (*Information)(nil), // 23: approval.Information (*InformationResponse)(nil), // 24: approval.InformationResponse (*Bundle)(nil), // 25: approval.Bundle (*Show)(nil), // 26: approval.Show (*ApprovalWork)(nil), // 27: approval.ApprovalWork (*Work)(nil), // 28: approval.Work (*ApprovalExhibition)(nil), // 29: approval.ApprovalExhibition (*Exhibition)(nil), // 30: approval.Exhibition (*Artwork)(nil), // 31: approval.Artwork (*ArtExhibitionDetail)(nil), // 32: approval.ArtExhibitionDetail (*BundlePayPrice)(nil), // 33: approval.BundlePayPrice (*CreateRequest)(nil), // 34: approval.CreateRequest (*WorkFlow)(nil), // 35: approval.WorkFlow (*DetailRequest)(nil), // 36: approval.DetailRequest (*RemoveRequest)(nil), // 37: approval.RemoveRequest (*ApprovalResponse)(nil), // 38: approval.ApprovalResponse (*RemoveResponse)(nil), // 39: approval.RemoveResponse (*ApprovalExhibitionRemove)(nil), // 40: approval.ApprovalExhibitionRemove (*ApprovalExhibitionRequest)(nil), // 41: approval.ApprovalExhibitionRequest (*ApprovalExhibitionDetail)(nil), // 42: approval.ApprovalExhibitionDetail (*CopyUser)(nil), // 43: approval.CopyUser (*ApprovalUser)(nil), // 44: approval.ApprovalUser (*SettingRequest)(nil), // 45: approval.SettingRequest (*DetailSettingRequest)(nil), // 46: approval.DetailSettingRequest (*SettingResponse)(nil), // 47: approval.SettingResponse (*ApplyTime)(nil), // 48: approval.ApplyTime (*ApprovalOA)(nil), // 49: approval.ApprovalOA (*LeaveApply)(nil), // 50: approval.LeaveApply (*OutWorkApply)(nil), // 51: approval.OutWorkApply (*MakeUpApply)(nil), // 52: approval.MakeUpApply (*TurnoverApply)(nil), // 53: approval.TurnoverApply (*OverTimeApply)(nil), // 54: approval.OverTimeApply (*Leave)(nil), // 55: approval.Leave (*UpdateApprovalOAUUIDReq)(nil), // 56: approval.UpdateApprovalOAUUIDReq (*UpdateApprovalOAUUIDResponse)(nil), // 57: approval.UpdateApprovalOAUUIDResponse (*GetNameRequest)(nil), // 58: approval.GetNameRequest (*GetNameResponse)(nil), // 59: approval.GetNameResponse (*FinancialForm)(nil), // 60: approval.FinancialForm (*CostInfo)(nil), // 61: approval.CostInfo (*InvoiceInfo)(nil), // 62: approval.InvoiceInfo } var file_api_approval_approval_proto_depIdxs = []int32{ 4, // 0: approval.CreateTypeRequest.KeyInfos:type_name -> approval.KeyInfo 12, // 1: approval.AllTypeResponse.Data:type_name -> approval.CreateTypeRequest 12, // 2: approval.CreateTypeGroupRequest.List:type_name -> approval.CreateTypeRequest 15, // 3: approval.AllGroupResponse.Data:type_name -> approval.CreateTypeGroupRequest 34, // 4: approval.ListResponse.data:type_name -> approval.CreateRequest 23, // 5: approval.InformationResponse.MySubmitInfo:type_name -> approval.Information 23, // 6: approval.InformationResponse.SubmitMeInfo:type_name -> approval.Information 23, // 7: approval.InformationResponse.DomainInfo:type_name -> approval.Information 27, // 8: approval.Work.ApprovalWorks:type_name -> approval.ApprovalWork 31, // 9: approval.ApprovalExhibition.Artworks:type_name -> approval.Artwork 32, // 10: approval.ApprovalExhibition.ArtExhibitionDetail:type_name -> approval.ArtExhibitionDetail 29, // 11: approval.Exhibition.ApprovalExhibitions:type_name -> approval.ApprovalExhibition 43, // 12: approval.CreateRequest.CopyUsers:type_name -> approval.CopyUser 28, // 13: approval.CreateRequest.Work:type_name -> approval.Work 26, // 14: approval.CreateRequest.Show:type_name -> approval.Show 30, // 15: approval.CreateRequest.Exhibition:type_name -> approval.Exhibition 25, // 16: approval.CreateRequest.Bundle:type_name -> approval.Bundle 44, // 17: approval.CreateRequest.ApprovalUsers:type_name -> approval.ApprovalUser 35, // 18: approval.CreateRequest.WorkFlows:type_name -> approval.WorkFlow 4, // 19: approval.CreateRequest.CustomizeInfo:type_name -> approval.KeyInfo 33, // 20: approval.CreateRequest.BundlePayPrice:type_name -> approval.BundlePayPrice 49, // 21: approval.CreateRequest.ApprovalOA:type_name -> approval.ApprovalOA 60, // 22: approval.CreateRequest.FinancialForm:type_name -> approval.FinancialForm 43, // 23: approval.SettingRequest.CopyUsers:type_name -> approval.CopyUser 44, // 24: approval.SettingRequest.ApprovalUsers:type_name -> approval.ApprovalUser 4, // 25: approval.SettingRequest.CustomizeInfo:type_name -> approval.KeyInfo 50, // 26: approval.ApprovalOA.LeaveApply:type_name -> approval.LeaveApply 51, // 27: approval.ApprovalOA.OutWork:type_name -> approval.OutWorkApply 52, // 28: approval.ApprovalOA.MakeUp:type_name -> approval.MakeUpApply 53, // 29: approval.ApprovalOA.Turnover:type_name -> approval.TurnoverApply 54, // 30: approval.ApprovalOA.OverTime:type_name -> approval.OverTimeApply 55, // 31: approval.ApprovalOA.Leave:type_name -> approval.Leave 43, // 32: approval.LeaveApply.CopyUsers:type_name -> approval.CopyUser 44, // 33: approval.LeaveApply.ApprovalUsers:type_name -> approval.ApprovalUser 48, // 34: approval.OutWorkApply.ApplyTimes:type_name -> approval.ApplyTime 43, // 35: approval.OutWorkApply.CopyUsers:type_name -> approval.CopyUser 44, // 36: approval.OutWorkApply.ApprovalUsers:type_name -> approval.ApprovalUser 48, // 37: approval.MakeUpApply.ApplyTimes:type_name -> approval.ApplyTime 43, // 38: approval.MakeUpApply.CopyUsers:type_name -> approval.CopyUser 44, // 39: approval.MakeUpApply.ApprovalUsers:type_name -> approval.ApprovalUser 48, // 40: approval.TurnoverApply.ApplyTimes:type_name -> approval.ApplyTime 43, // 41: approval.TurnoverApply.CopyUsers:type_name -> approval.CopyUser 44, // 42: approval.TurnoverApply.ApprovalUsers:type_name -> approval.ApprovalUser 48, // 43: approval.OverTimeApply.ApplyTimes:type_name -> approval.ApplyTime 43, // 44: approval.OverTimeApply.CopyUsers:type_name -> approval.CopyUser 44, // 45: approval.OverTimeApply.ApprovalUsers:type_name -> approval.ApprovalUser 48, // 46: approval.Leave.ApplyTimes:type_name -> approval.ApplyTime 43, // 47: approval.Leave.CopyUsers:type_name -> approval.CopyUser 44, // 48: approval.Leave.ApprovalUsers:type_name -> approval.ApprovalUser 61, // 49: approval.FinancialForm.CostInfo:type_name -> approval.CostInfo 62, // 50: approval.FinancialForm.InvoiceInfo:type_name -> approval.InvoiceInfo 34, // 51: approval.Approval.Create:input_type -> approval.CreateRequest 7, // 52: approval.Approval.UsedNumByUser:input_type -> approval.UsedNumByUserRequest 5, // 53: approval.Approval.UpdateExhibitionApplyID:input_type -> approval.UpdateEhApplyIDRequest 36, // 54: approval.Approval.Detail:input_type -> approval.DetailRequest 34, // 55: approval.Approval.Update:input_type -> approval.CreateRequest 37, // 56: approval.Approval.Remove:input_type -> approval.RemoveRequest 19, // 57: approval.Approval.MyWork:input_type -> approval.ListRequest 19, // 58: approval.Approval.MySubmit:input_type -> approval.ListRequest 9, // 59: approval.Approval.NowLevelByInfo:input_type -> approval.NowLevelByInfoRequest 22, // 60: approval.Approval.Information:input_type -> approval.InformationRequest 21, // 61: approval.Approval.Viewed:input_type -> approval.ViewedRequest 17, // 62: approval.Approval.SetStatus:input_type -> approval.StatusRequest 46, // 63: approval.Approval.DetailSetting:input_type -> approval.DetailSettingRequest 45, // 64: approval.Approval.UpdateSetting:input_type -> approval.SettingRequest 2, // 65: approval.Approval.IsExistPayRight:input_type -> approval.IsExistPayRightRequest 1, // 66: approval.Approval.ChangeBundlePay:input_type -> approval.ChangeBundlePayRequest 12, // 67: approval.Approval.CreateType:input_type -> approval.CreateTypeRequest 13, // 68: approval.Approval.DetailType:input_type -> approval.TypeResponse 12, // 69: approval.Approval.UpdateType:input_type -> approval.CreateTypeRequest 11, // 70: approval.Approval.AllType:input_type -> approval.CommonRequest 37, // 71: approval.Approval.RemoveType:input_type -> approval.RemoveRequest 11, // 72: approval.Approval.AllGroup:input_type -> approval.CommonRequest 58, // 73: approval.Approval.GetName:input_type -> approval.GetNameRequest 56, // 74: approval.Approval.UpdateApprovalOAUUID:input_type -> approval.UpdateApprovalOAUUIDReq 38, // 75: approval.Approval.Create:output_type -> approval.ApprovalResponse 8, // 76: approval.Approval.UsedNumByUser:output_type -> approval.UsedNumByUserResponse 6, // 77: approval.Approval.UpdateExhibitionApplyID:output_type -> approval.UpdateEhApplyIDResponse 34, // 78: approval.Approval.Detail:output_type -> approval.CreateRequest 38, // 79: approval.Approval.Update:output_type -> approval.ApprovalResponse 39, // 80: approval.Approval.Remove:output_type -> approval.RemoveResponse 20, // 81: approval.Approval.MyWork:output_type -> approval.ListResponse 20, // 82: approval.Approval.MySubmit:output_type -> approval.ListResponse 10, // 83: approval.Approval.NowLevelByInfo:output_type -> approval.WorkFlowResponse 24, // 84: approval.Approval.Information:output_type -> approval.InformationResponse 38, // 85: approval.Approval.Viewed:output_type -> approval.ApprovalResponse 18, // 86: approval.Approval.SetStatus:output_type -> approval.StatusResponse 45, // 87: approval.Approval.DetailSetting:output_type -> approval.SettingRequest 47, // 88: approval.Approval.UpdateSetting:output_type -> approval.SettingResponse 3, // 89: approval.Approval.IsExistPayRight:output_type -> approval.IsExistPayRightResponse 0, // 90: approval.Approval.ChangeBundlePay:output_type -> approval.CommonResponse 13, // 91: approval.Approval.CreateType:output_type -> approval.TypeResponse 12, // 92: approval.Approval.DetailType:output_type -> approval.CreateTypeRequest 13, // 93: approval.Approval.UpdateType:output_type -> approval.TypeResponse 14, // 94: approval.Approval.AllType:output_type -> approval.AllTypeResponse 18, // 95: approval.Approval.RemoveType:output_type -> approval.StatusResponse 16, // 96: approval.Approval.AllGroup:output_type -> approval.AllGroupResponse 59, // 97: approval.Approval.GetName:output_type -> approval.GetNameResponse 57, // 98: approval.Approval.UpdateApprovalOAUUID:output_type -> approval.UpdateApprovalOAUUIDResponse 75, // [75:99] is the sub-list for method output_type 51, // [51:75] is the sub-list for method input_type 51, // [51:51] is the sub-list for extension type_name 51, // [51:51] is the sub-list for extension extendee 0, // [0:51] is the sub-list for field type_name } func init() { file_api_approval_approval_proto_init() } func file_api_approval_approval_proto_init() { if File_api_approval_approval_proto != nil { return } if !protoimpl.UnsafeEnabled { file_api_approval_approval_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChangeBundlePayRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsExistPayRightRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsExistPayRightResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KeyInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateEhApplyIDRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateEhApplyIDResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UsedNumByUserRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UsedNumByUserResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NowLevelByInfoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkFlowResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateTypeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TypeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AllTypeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateTypeGroupRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AllGroupResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatusRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatusResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ViewedRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InformationRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Information); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InformationResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bundle); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Show); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalWork); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Work); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalExhibition); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Exhibition); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Artwork); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArtExhibitionDetail); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BundlePayPrice); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkFlow); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DetailRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalExhibitionRemove); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalExhibitionRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalExhibitionDetail); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CopyUser); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalUser); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SettingRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DetailSettingRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SettingResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApprovalOA); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LeaveApply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OutWorkApply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MakeUpApply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TurnoverApply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OverTimeApply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Leave); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateApprovalOAUUIDReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateApprovalOAUUIDResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetNameRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetNameResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinancialForm); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CostInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_api_approval_approval_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InvoiceInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_approval_approval_proto_rawDesc, NumEnums: 0, NumMessages: 63, NumExtensions: 0, NumServices: 1, }, GoTypes: file_api_approval_approval_proto_goTypes, DependencyIndexes: file_api_approval_approval_proto_depIdxs, MessageInfos: file_api_approval_approval_proto_msgTypes, }.Build() File_api_approval_approval_proto = out.File file_api_approval_approval_proto_rawDesc = nil file_api_approval_approval_proto_goTypes = nil file_api_approval_approval_proto_depIdxs = nil }