// 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"` //
	SubmitterName  string `protobuf:"bytes,8,opt,name=SubmitterName,json=submitterName,proto3" json:"SubmitterName,omitempty"`     // 提交人姓名
	OrderBy        string `protobuf:"bytes,9,opt,name=OrderBy,json=orderBy,proto3" json:"OrderBy,omitempty"`                       // 排序方式   asc
	StartTime      string `protobuf:"bytes,10,opt,name=StartTime,json=startTime,proto3" json:"StartTime,omitempty"`                // 提交时间
	EndTime        string `protobuf:"bytes,11,opt,name=EndTime,json=endTime,proto3" json:"EndTime,omitempty"`
	ApprovalStatus uint64 `protobuf:"varint,12,opt,name=ApprovalStatus,json=approvalStatus,proto3" json:"ApprovalStatus,omitempty"` // 审批状态  1 待审批 2 审批通过 3 审批未通过   4 未阅  5 已阅
}

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
}

func (x *ListRequest) GetSubmitterName() string {
	if x != nil {
		return x.SubmitterName
	}
	return ""
}

func (x *ListRequest) GetOrderBy() string {
	if x != nil {
		return x.OrderBy
	}
	return ""
}

func (x *ListRequest) GetStartTime() string {
	if x != nil {
		return x.StartTime
	}
	return ""
}

func (x *ListRequest) GetEndTime() string {
	if x != nil {
		return x.EndTime
	}
	return ""
}

func (x *ListRequest) GetApprovalStatus() uint64 {
	if x != nil {
		return x.ApprovalStatus
	}
	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"`
	OperationTimes int32  `protobuf:"varint,14,opt,name=OperationTimes,json=operationTimes,proto3" json:"OperationTimes,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
}

func (x *BundlePayPrice) GetOperationTimes() int32 {
	if x != nil {
		return x.OperationTimes
	}
	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, 0xf0, 0x02, 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, 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, 0x18, 0x0a, 0x07, 0x4f, 0x72,
	0x64, 0x65, 0x72, 0x42, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64,
	0x65, 0x72, 0x42, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d,
	0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e,
	0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 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,
	0xb6, 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,
	0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 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
}