//
//     Copyright 2022 The Dragonfly Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.1
// 	protoc        v3.21.6
// source: pkg/apis/scheduler/v2/scheduler.proto

package scheduler

import (
	v2 "d7y.io/api/v2/pkg/apis/common/v2"
	v21 "d7y.io/api/v2/pkg/apis/errordetails/v2"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	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)
)

// RegisterPeerRequest represents peer registered request of AnnouncePeerRequest.
type RegisterPeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Download information.
	Download *v2.Download `protobuf:"bytes,1,opt,name=download,proto3" json:"download,omitempty"`
}

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

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

func (*RegisterPeerRequest) ProtoMessage() {}

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

func (x *RegisterPeerRequest) GetDownload() *v2.Download {
	if x != nil {
		return x.Download
	}
	return nil
}

// DownloadPeerStartedRequest represents peer download started request of AnnouncePeerRequest.
type DownloadPeerStartedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DownloadPeerStartedRequest) ProtoMessage() {}

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

// DownloadPeerBackToSourceStartedRequest represents peer download back-to-source started request of AnnouncePeerRequest.
type DownloadPeerBackToSourceStartedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The description of the back-to-source reason.
	Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*DownloadPeerBackToSourceStartedRequest) ProtoMessage() {}

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

func (x *DownloadPeerBackToSourceStartedRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// ReschedulePeerRequest represents reschedule request of AnnouncePeerRequest.
type ReschedulePeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Candidate parent ids.
	CandidateParents []*v2.Peer `protobuf:"bytes,1,rep,name=candidate_parents,json=candidateParents,proto3" json:"candidate_parents,omitempty"`
	// The description of the reschedule reason.
	Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*ReschedulePeerRequest) ProtoMessage() {}

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

func (x *ReschedulePeerRequest) GetCandidateParents() []*v2.Peer {
	if x != nil {
		return x.CandidateParents
	}
	return nil
}

func (x *ReschedulePeerRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// DownloadPeerFinishedRequest represents peer download finished request of AnnouncePeerRequest.
type DownloadPeerFinishedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DownloadPeerFinishedRequest) ProtoMessage() {}

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

// DownloadPeerBackToSourceFinishedRequest represents peer download back-to-source finished request of AnnouncePeerRequest.
type DownloadPeerBackToSourceFinishedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DownloadPeerBackToSourceFinishedRequest) ProtoMessage() {}

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

// DownloadPeerFailedRequest represents peer download failed request of AnnouncePeerRequest.
type DownloadPeerFailedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The description of the download failed.
	Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*DownloadPeerFailedRequest) ProtoMessage() {}

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

func (x *DownloadPeerFailedRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// DownloadPeerBackToSourceFailedRequest represents peer download back-to-source failed request of AnnouncePeerRequest.
type DownloadPeerBackToSourceFailedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The description of the download back-to-source failed.
	Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*DownloadPeerBackToSourceFailedRequest) ProtoMessage() {}

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

func (x *DownloadPeerBackToSourceFailedRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// DownloadPieceFinishedRequest represents piece download finished request of AnnouncePeerRequest.
type DownloadPieceFinishedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Piece info.
	Piece *v2.Piece `protobuf:"bytes,1,opt,name=piece,proto3" json:"piece,omitempty"`
}

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

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

func (*DownloadPieceFinishedRequest) ProtoMessage() {}

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

func (x *DownloadPieceFinishedRequest) GetPiece() *v2.Piece {
	if x != nil {
		return x.Piece
	}
	return nil
}

// DownloadPieceBackToSourceFinishedRequest represents piece download back-to-source finished request of AnnouncePeerRequest.
type DownloadPieceBackToSourceFinishedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Piece info.
	Piece *v2.Piece `protobuf:"bytes,1,opt,name=piece,proto3" json:"piece,omitempty"`
}

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

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

func (*DownloadPieceBackToSourceFinishedRequest) ProtoMessage() {}

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

func (x *DownloadPieceBackToSourceFinishedRequest) GetPiece() *v2.Piece {
	if x != nil {
		return x.Piece
	}
	return nil
}

// DownloadPieceFailedRequest downloads piece failed request of AnnouncePeerRequest.
type DownloadPieceFailedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Piece number.
	PieceNumber *uint32 `protobuf:"varint,1,opt,name=piece_number,json=pieceNumber,proto3,oneof" json:"piece_number,omitempty"`
	// Parent id.
	ParentId string `protobuf:"bytes,2,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
	// Temporary indicates whether the error is temporary.
	Temporary bool `protobuf:"varint,3,opt,name=temporary,proto3" json:"temporary,omitempty"`
}

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

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

func (*DownloadPieceFailedRequest) ProtoMessage() {}

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

func (x *DownloadPieceFailedRequest) GetPieceNumber() uint32 {
	if x != nil && x.PieceNumber != nil {
		return *x.PieceNumber
	}
	return 0
}

func (x *DownloadPieceFailedRequest) GetParentId() string {
	if x != nil {
		return x.ParentId
	}
	return ""
}

func (x *DownloadPieceFailedRequest) GetTemporary() bool {
	if x != nil {
		return x.Temporary
	}
	return false
}

// DownloadPieceBackToSourceFailedRequest downloads piece back-to-source failed request of AnnouncePeerRequest.
type DownloadPieceBackToSourceFailedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Piece number.
	PieceNumber *uint32 `protobuf:"varint,1,opt,name=piece_number,json=pieceNumber,proto3,oneof" json:"piece_number,omitempty"`
	// Types that are assignable to Response:
	//
	//	*DownloadPieceBackToSourceFailedRequest_Backend
	//	*DownloadPieceBackToSourceFailedRequest_Unknown
	Response isDownloadPieceBackToSourceFailedRequest_Response `protobuf_oneof:"response"`
}

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

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

func (*DownloadPieceBackToSourceFailedRequest) ProtoMessage() {}

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

func (x *DownloadPieceBackToSourceFailedRequest) GetPieceNumber() uint32 {
	if x != nil && x.PieceNumber != nil {
		return *x.PieceNumber
	}
	return 0
}

func (m *DownloadPieceBackToSourceFailedRequest) GetResponse() isDownloadPieceBackToSourceFailedRequest_Response {
	if m != nil {
		return m.Response
	}
	return nil
}

func (x *DownloadPieceBackToSourceFailedRequest) GetBackend() *v21.Backend {
	if x, ok := x.GetResponse().(*DownloadPieceBackToSourceFailedRequest_Backend); ok {
		return x.Backend
	}
	return nil
}

func (x *DownloadPieceBackToSourceFailedRequest) GetUnknown() *v21.Unknown {
	if x, ok := x.GetResponse().(*DownloadPieceBackToSourceFailedRequest_Unknown); ok {
		return x.Unknown
	}
	return nil
}

type isDownloadPieceBackToSourceFailedRequest_Response interface {
	isDownloadPieceBackToSourceFailedRequest_Response()
}

type DownloadPieceBackToSourceFailedRequest_Backend struct {
	Backend *v21.Backend `protobuf:"bytes,2,opt,name=backend,proto3,oneof"`
}

type DownloadPieceBackToSourceFailedRequest_Unknown struct {
	Unknown *v21.Unknown `protobuf:"bytes,3,opt,name=unknown,proto3,oneof"`
}

func (*DownloadPieceBackToSourceFailedRequest_Backend) isDownloadPieceBackToSourceFailedRequest_Response() {
}

func (*DownloadPieceBackToSourceFailedRequest_Unknown) isDownloadPieceBackToSourceFailedRequest_Response() {
}

// AnnouncePeerRequest represents request of AnnouncePeer.
type AnnouncePeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
	// Types that are assignable to Request:
	//
	//	*AnnouncePeerRequest_RegisterPeerRequest
	//	*AnnouncePeerRequest_DownloadPeerStartedRequest
	//	*AnnouncePeerRequest_DownloadPeerBackToSourceStartedRequest
	//	*AnnouncePeerRequest_ReschedulePeerRequest
	//	*AnnouncePeerRequest_DownloadPeerFinishedRequest
	//	*AnnouncePeerRequest_DownloadPeerBackToSourceFinishedRequest
	//	*AnnouncePeerRequest_DownloadPeerFailedRequest
	//	*AnnouncePeerRequest_DownloadPeerBackToSourceFailedRequest
	//	*AnnouncePeerRequest_DownloadPieceFinishedRequest
	//	*AnnouncePeerRequest_DownloadPieceBackToSourceFinishedRequest
	//	*AnnouncePeerRequest_DownloadPieceFailedRequest
	//	*AnnouncePeerRequest_DownloadPieceBackToSourceFailedRequest
	Request isAnnouncePeerRequest_Request `protobuf_oneof:"request"`
}

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

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

func (*AnnouncePeerRequest) ProtoMessage() {}

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

func (x *AnnouncePeerRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *AnnouncePeerRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

func (m *AnnouncePeerRequest) GetRequest() isAnnouncePeerRequest_Request {
	if m != nil {
		return m.Request
	}
	return nil
}

func (x *AnnouncePeerRequest) GetRegisterPeerRequest() *RegisterPeerRequest {
	if x, ok := x.GetRequest().(*AnnouncePeerRequest_RegisterPeerRequest); ok {
		return x.RegisterPeerRequest
	}
	return nil
}

func (x *AnnouncePeerRequest) GetDownloadPeerStartedRequest() *DownloadPeerStartedRequest {
	if x, ok := x.GetRequest().(*AnnouncePeerRequest_DownloadPeerStartedRequest); ok {
		return x.DownloadPeerStartedRequest
	}
	return nil
}

func (x *AnnouncePeerRequest) GetDownloadPeerBackToSourceStartedRequest() *DownloadPeerBackToSourceStartedRequest {
	if x, ok := x.GetRequest().(*AnnouncePeerRequest_DownloadPeerBackToSourceStartedRequest); ok {
		return x.DownloadPeerBackToSourceStartedRequest
	}
	return nil
}

func (x *AnnouncePeerRequest) GetReschedulePeerRequest() *ReschedulePeerRequest {
	if x, ok := x.GetRequest().(*AnnouncePeerRequest_ReschedulePeerRequest); ok {
		return x.ReschedulePeerRequest
	}
	return nil
}

func (x *AnnouncePeerRequest) GetDownloadPeerFinishedRequest() *DownloadPeerFinishedRequest {
	if x, ok := x.GetRequest().(*AnnouncePeerRequest_DownloadPeerFinishedRequest); ok {
		return x.DownloadPeerFinishedRequest
	}
	return nil
}

func (x *AnnouncePeerRequest) GetDownloadPeerBackToSourceFinishedRequest() *DownloadPeerBackToSourceFinishedRequest {
	if x, ok := x.GetRequest().(*AnnouncePeerRequest_DownloadPeerBackToSourceFinishedRequest); ok {
		return x.DownloadPeerBackToSourceFinishedRequest
	}
	return nil
}

func (x *AnnouncePeerRequest) GetDownloadPeerFailedRequest() *DownloadPeerFailedRequest {
	if x, ok := x.GetRequest().(*AnnouncePeerRequest_DownloadPeerFailedRequest); ok {
		return x.DownloadPeerFailedRequest
	}
	return nil
}

func (x *AnnouncePeerRequest) GetDownloadPeerBackToSourceFailedRequest() *DownloadPeerBackToSourceFailedRequest {
	if x, ok := x.GetRequest().(*AnnouncePeerRequest_DownloadPeerBackToSourceFailedRequest); ok {
		return x.DownloadPeerBackToSourceFailedRequest
	}
	return nil
}

func (x *AnnouncePeerRequest) GetDownloadPieceFinishedRequest() *DownloadPieceFinishedRequest {
	if x, ok := x.GetRequest().(*AnnouncePeerRequest_DownloadPieceFinishedRequest); ok {
		return x.DownloadPieceFinishedRequest
	}
	return nil
}

func (x *AnnouncePeerRequest) GetDownloadPieceBackToSourceFinishedRequest() *DownloadPieceBackToSourceFinishedRequest {
	if x, ok := x.GetRequest().(*AnnouncePeerRequest_DownloadPieceBackToSourceFinishedRequest); ok {
		return x.DownloadPieceBackToSourceFinishedRequest
	}
	return nil
}

func (x *AnnouncePeerRequest) GetDownloadPieceFailedRequest() *DownloadPieceFailedRequest {
	if x, ok := x.GetRequest().(*AnnouncePeerRequest_DownloadPieceFailedRequest); ok {
		return x.DownloadPieceFailedRequest
	}
	return nil
}

func (x *AnnouncePeerRequest) GetDownloadPieceBackToSourceFailedRequest() *DownloadPieceBackToSourceFailedRequest {
	if x, ok := x.GetRequest().(*AnnouncePeerRequest_DownloadPieceBackToSourceFailedRequest); ok {
		return x.DownloadPieceBackToSourceFailedRequest
	}
	return nil
}

type isAnnouncePeerRequest_Request interface {
	isAnnouncePeerRequest_Request()
}

type AnnouncePeerRequest_RegisterPeerRequest struct {
	RegisterPeerRequest *RegisterPeerRequest `protobuf:"bytes,4,opt,name=register_peer_request,json=registerPeerRequest,proto3,oneof"`
}

type AnnouncePeerRequest_DownloadPeerStartedRequest struct {
	DownloadPeerStartedRequest *DownloadPeerStartedRequest `protobuf:"bytes,5,opt,name=download_peer_started_request,json=downloadPeerStartedRequest,proto3,oneof"`
}

type AnnouncePeerRequest_DownloadPeerBackToSourceStartedRequest struct {
	DownloadPeerBackToSourceStartedRequest *DownloadPeerBackToSourceStartedRequest `protobuf:"bytes,6,opt,name=download_peer_back_to_source_started_request,json=downloadPeerBackToSourceStartedRequest,proto3,oneof"`
}

type AnnouncePeerRequest_ReschedulePeerRequest struct {
	ReschedulePeerRequest *ReschedulePeerRequest `protobuf:"bytes,7,opt,name=reschedule_peer_request,json=reschedulePeerRequest,proto3,oneof"`
}

type AnnouncePeerRequest_DownloadPeerFinishedRequest struct {
	DownloadPeerFinishedRequest *DownloadPeerFinishedRequest `protobuf:"bytes,8,opt,name=download_peer_finished_request,json=downloadPeerFinishedRequest,proto3,oneof"`
}

type AnnouncePeerRequest_DownloadPeerBackToSourceFinishedRequest struct {
	DownloadPeerBackToSourceFinishedRequest *DownloadPeerBackToSourceFinishedRequest `protobuf:"bytes,9,opt,name=download_peer_back_to_source_finished_request,json=downloadPeerBackToSourceFinishedRequest,proto3,oneof"`
}

type AnnouncePeerRequest_DownloadPeerFailedRequest struct {
	DownloadPeerFailedRequest *DownloadPeerFailedRequest `protobuf:"bytes,10,opt,name=download_peer_failed_request,json=downloadPeerFailedRequest,proto3,oneof"`
}

type AnnouncePeerRequest_DownloadPeerBackToSourceFailedRequest struct {
	DownloadPeerBackToSourceFailedRequest *DownloadPeerBackToSourceFailedRequest `protobuf:"bytes,11,opt,name=download_peer_back_to_source_failed_request,json=downloadPeerBackToSourceFailedRequest,proto3,oneof"`
}

type AnnouncePeerRequest_DownloadPieceFinishedRequest struct {
	DownloadPieceFinishedRequest *DownloadPieceFinishedRequest `protobuf:"bytes,12,opt,name=download_piece_finished_request,json=downloadPieceFinishedRequest,proto3,oneof"`
}

type AnnouncePeerRequest_DownloadPieceBackToSourceFinishedRequest struct {
	DownloadPieceBackToSourceFinishedRequest *DownloadPieceBackToSourceFinishedRequest `protobuf:"bytes,13,opt,name=download_piece_back_to_source_finished_request,json=downloadPieceBackToSourceFinishedRequest,proto3,oneof"`
}

type AnnouncePeerRequest_DownloadPieceFailedRequest struct {
	DownloadPieceFailedRequest *DownloadPieceFailedRequest `protobuf:"bytes,14,opt,name=download_piece_failed_request,json=downloadPieceFailedRequest,proto3,oneof"`
}

type AnnouncePeerRequest_DownloadPieceBackToSourceFailedRequest struct {
	DownloadPieceBackToSourceFailedRequest *DownloadPieceBackToSourceFailedRequest `protobuf:"bytes,15,opt,name=download_piece_back_to_source_failed_request,json=downloadPieceBackToSourceFailedRequest,proto3,oneof"`
}

func (*AnnouncePeerRequest_RegisterPeerRequest) isAnnouncePeerRequest_Request() {}

func (*AnnouncePeerRequest_DownloadPeerStartedRequest) isAnnouncePeerRequest_Request() {}

func (*AnnouncePeerRequest_DownloadPeerBackToSourceStartedRequest) isAnnouncePeerRequest_Request() {}

func (*AnnouncePeerRequest_ReschedulePeerRequest) isAnnouncePeerRequest_Request() {}

func (*AnnouncePeerRequest_DownloadPeerFinishedRequest) isAnnouncePeerRequest_Request() {}

func (*AnnouncePeerRequest_DownloadPeerBackToSourceFinishedRequest) isAnnouncePeerRequest_Request() {}

func (*AnnouncePeerRequest_DownloadPeerFailedRequest) isAnnouncePeerRequest_Request() {}

func (*AnnouncePeerRequest_DownloadPeerBackToSourceFailedRequest) isAnnouncePeerRequest_Request() {}

func (*AnnouncePeerRequest_DownloadPieceFinishedRequest) isAnnouncePeerRequest_Request() {}

func (*AnnouncePeerRequest_DownloadPieceBackToSourceFinishedRequest) isAnnouncePeerRequest_Request() {
}

func (*AnnouncePeerRequest_DownloadPieceFailedRequest) isAnnouncePeerRequest_Request() {}

func (*AnnouncePeerRequest_DownloadPieceBackToSourceFailedRequest) isAnnouncePeerRequest_Request() {}

// EmptyTaskResponse represents empty task response of AnnouncePeerResponse.
type EmptyTaskResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*EmptyTaskResponse) ProtoMessage() {}

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

// NormalTaskResponse represents normal task response of AnnouncePeerResponse.
type NormalTaskResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Candidate parents.
	CandidateParents []*v2.Peer `protobuf:"bytes,1,rep,name=candidate_parents,json=candidateParents,proto3" json:"candidate_parents,omitempty"`
}

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

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

func (*NormalTaskResponse) ProtoMessage() {}

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

func (x *NormalTaskResponse) GetCandidateParents() []*v2.Peer {
	if x != nil {
		return x.CandidateParents
	}
	return nil
}

// NeedBackToSourceResponse represents need back-to-source response of AnnouncePeerResponse.
type NeedBackToSourceResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The description of the back-to-source reason.
	Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*NeedBackToSourceResponse) ProtoMessage() {}

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

func (x *NeedBackToSourceResponse) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// AnnouncePeerResponse represents response of AnnouncePeer.
type AnnouncePeerResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Response:
	//
	//	*AnnouncePeerResponse_EmptyTaskResponse
	//	*AnnouncePeerResponse_NormalTaskResponse
	//	*AnnouncePeerResponse_NeedBackToSourceResponse
	Response isAnnouncePeerResponse_Response `protobuf_oneof:"response"`
}

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

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

func (*AnnouncePeerResponse) ProtoMessage() {}

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

func (m *AnnouncePeerResponse) GetResponse() isAnnouncePeerResponse_Response {
	if m != nil {
		return m.Response
	}
	return nil
}

func (x *AnnouncePeerResponse) GetEmptyTaskResponse() *EmptyTaskResponse {
	if x, ok := x.GetResponse().(*AnnouncePeerResponse_EmptyTaskResponse); ok {
		return x.EmptyTaskResponse
	}
	return nil
}

func (x *AnnouncePeerResponse) GetNormalTaskResponse() *NormalTaskResponse {
	if x, ok := x.GetResponse().(*AnnouncePeerResponse_NormalTaskResponse); ok {
		return x.NormalTaskResponse
	}
	return nil
}

func (x *AnnouncePeerResponse) GetNeedBackToSourceResponse() *NeedBackToSourceResponse {
	if x, ok := x.GetResponse().(*AnnouncePeerResponse_NeedBackToSourceResponse); ok {
		return x.NeedBackToSourceResponse
	}
	return nil
}

type isAnnouncePeerResponse_Response interface {
	isAnnouncePeerResponse_Response()
}

type AnnouncePeerResponse_EmptyTaskResponse struct {
	EmptyTaskResponse *EmptyTaskResponse `protobuf:"bytes,1,opt,name=empty_task_response,json=emptyTaskResponse,proto3,oneof"`
}

type AnnouncePeerResponse_NormalTaskResponse struct {
	NormalTaskResponse *NormalTaskResponse `protobuf:"bytes,2,opt,name=normal_task_response,json=normalTaskResponse,proto3,oneof"`
}

type AnnouncePeerResponse_NeedBackToSourceResponse struct {
	NeedBackToSourceResponse *NeedBackToSourceResponse `protobuf:"bytes,3,opt,name=need_back_to_source_response,json=needBackToSourceResponse,proto3,oneof"`
}

func (*AnnouncePeerResponse_EmptyTaskResponse) isAnnouncePeerResponse_Response() {}

func (*AnnouncePeerResponse_NormalTaskResponse) isAnnouncePeerResponse_Response() {}

func (*AnnouncePeerResponse_NeedBackToSourceResponse) isAnnouncePeerResponse_Response() {}

// StatPeerRequest represents request of StatPeer.
type StatPeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
}

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

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

func (*StatPeerRequest) ProtoMessage() {}

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

func (x *StatPeerRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *StatPeerRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

// DeletePeerRequest represents request of DeletePeer.
type DeletePeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
}

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

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

func (*DeletePeerRequest) ProtoMessage() {}

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

func (x *DeletePeerRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *DeletePeerRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

// StatTaskRequest represents request of StatTask.
type StatTaskRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
}

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

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

func (*StatTaskRequest) ProtoMessage() {}

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

func (x *StatTaskRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *StatTaskRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

// DeleteTaskRequest represents request of DeleteTask.
type DeleteTaskRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
}

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

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

func (*DeleteTaskRequest) ProtoMessage() {}

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

func (x *DeleteTaskRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *DeleteTaskRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

// AnnounceHostRequest represents request of AnnounceHost.
type AnnounceHostRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host info.
	Host *v2.Host `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
	// The interval between dfdaemon announces to scheduler.
	Interval *durationpb.Duration `protobuf:"bytes,2,opt,name=interval,proto3,oneof" json:"interval,omitempty"`
}

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

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

func (*AnnounceHostRequest) ProtoMessage() {}

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

func (x *AnnounceHostRequest) GetHost() *v2.Host {
	if x != nil {
		return x.Host
	}
	return nil
}

func (x *AnnounceHostRequest) GetInterval() *durationpb.Duration {
	if x != nil {
		return x.Interval
	}
	return nil
}

// ListHostsRequest represents request of ListHosts.
type ListHostsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Type to filter hosts.
	Type *uint32 `protobuf:"varint,1,opt,name=type,proto3,oneof" json:"type,omitempty"`
}

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

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

func (*ListHostsRequest) ProtoMessage() {}

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

func (x *ListHostsRequest) GetType() uint32 {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return 0
}

// ListHostsResponse represents response of ListHosts.
type ListHostsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Hosts info.
	Hosts []*v2.Host `protobuf:"bytes,1,rep,name=hosts,proto3" json:"hosts,omitempty"`
}

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

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

func (*ListHostsResponse) ProtoMessage() {}

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

func (x *ListHostsResponse) GetHosts() []*v2.Host {
	if x != nil {
		return x.Hosts
	}
	return nil
}

// DeleteHostRequest represents request of DeleteHost.
type DeleteHostRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
}

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

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

func (*DeleteHostRequest) ProtoMessage() {}

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

func (x *DeleteHostRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

// RegisterCachePeerRequest represents cache peer registered request of AnnounceCachePeerRequest.
type RegisterCachePeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Download url.
	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	// Digest of the task digest, for example blake3:xxx or sha256:yyy.
	Digest *string `protobuf:"bytes,2,opt,name=digest,proto3,oneof" json:"digest,omitempty"`
	// Range is url range of request. If protocol is http, range
	// will set in request header. If protocol is others, range
	// will set in range field.
	Range *v2.Range `protobuf:"bytes,3,opt,name=range,proto3,oneof" json:"range,omitempty"`
	// Task type.
	Type v2.TaskType `protobuf:"varint,4,opt,name=type,proto3,enum=common.v2.TaskType" json:"type,omitempty"`
	// URL tag identifies different task for same url.
	Tag *string `protobuf:"bytes,5,opt,name=tag,proto3,oneof" json:"tag,omitempty"`
	// Application of task.
	Application *string `protobuf:"bytes,6,opt,name=application,proto3,oneof" json:"application,omitempty"`
	// Peer priority.
	Priority v2.Priority `protobuf:"varint,7,opt,name=priority,proto3,enum=common.v2.Priority" json:"priority,omitempty"`
	// Filtered query params to generate the task id.
	// When filter is ["Signature", "Expires", "ns"], for example:
	// http://example.com/xyz?Expires=e1&Signature=s1&ns=docker.io and http://example.com/xyz?Expires=e2&Signature=s2&ns=docker.io
	// will generate the same task id.
	// Default value includes the filtered query params of s3, gcs, oss, obs, cos.
	FilteredQueryParams []string `protobuf:"bytes,8,rep,name=filtered_query_params,json=filteredQueryParams,proto3" json:"filtered_query_params,omitempty"`
	// Task request headers.
	RequestHeader map[string]string `protobuf:"bytes,9,rep,name=request_header,json=requestHeader,proto3" json:"request_header,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Piece Length is the piece length(bytes) for downloading file. The value needs to
	// be greater than 4MiB (4,194,304 bytes) and less than 64MiB (67,108,864 bytes),
	// for example: 4194304(4mib), 8388608(8mib). If the piece length is not specified,
	// the piece length will be calculated according to the file size.
	PieceLength *uint64 `protobuf:"varint,10,opt,name=piece_length,json=pieceLength,proto3,oneof" json:"piece_length,omitempty"`
	// File path to be downloaded. If output_path is set, the downloaded file will be saved to the specified path.
	// Dfdaemon will try to create hard link to the output path before starting the download. If hard link creation fails,
	// it will copy the file to the output path after the download is completed.
	// For more details refer to https://github.com/dragonflyoss/design/blob/main/systems-analysis/file-download-workflow-with-hard-link/README.md.
	OutputPath *string `protobuf:"bytes,11,opt,name=output_path,json=outputPath,proto3,oneof" json:"output_path,omitempty"`
	// Download timeout.
	Timeout *durationpb.Duration `protobuf:"bytes,12,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"`
	// Dfdaemon cannot download the task from the source if disable_back_to_source is true.
	DisableBackToSource bool `protobuf:"varint,13,opt,name=disable_back_to_source,json=disableBackToSource,proto3" json:"disable_back_to_source,omitempty"`
	// Scheduler needs to schedule the task downloads from the source if need_back_to_source is true.
	NeedBackToSource bool `protobuf:"varint,14,opt,name=need_back_to_source,json=needBackToSource,proto3" json:"need_back_to_source,omitempty"`
	// certificate_chain is the client certs with DER format for the backend client to download back-to-source.
	CertificateChain [][]byte `protobuf:"bytes,15,rep,name=certificate_chain,json=certificateChain,proto3" json:"certificate_chain,omitempty"`
	// Prefetch pre-downloads all pieces of the task when the download task request is a range request.
	Prefetch bool `protobuf:"varint,16,opt,name=prefetch,proto3" json:"prefetch,omitempty"`
	// Object storage protocol information.
	ObjectStorage *v2.ObjectStorage `protobuf:"bytes,17,opt,name=object_storage,json=objectStorage,proto3,oneof" json:"object_storage,omitempty"`
	// HDFS protocol information.
	Hdfs *v2.HDFS `protobuf:"bytes,18,opt,name=hdfs,proto3,oneof" json:"hdfs,omitempty"`
	// is_prefetch is the flag to indicate whether the request is a prefetch request.
	IsPrefetch bool `protobuf:"varint,19,opt,name=is_prefetch,json=isPrefetch,proto3" json:"is_prefetch,omitempty"`
	// need_piece_content is the flag to indicate whether the response needs to return piece content.
	NeedPieceContent bool `protobuf:"varint,20,opt,name=need_piece_content,json=needPieceContent,proto3" json:"need_piece_content,omitempty"`
	// content_for_calculating_task_id is the content used to calculate the task id.
	// If content_for_calculating_task_id is set, use its value to calculate the task ID.
	// Otherwise, calculate the task ID based on url, piece_length, tag, application, and filtered_query_params.
	ContentForCalculatingTaskId *string `protobuf:"bytes,21,opt,name=content_for_calculating_task_id,json=contentForCalculatingTaskId,proto3,oneof" json:"content_for_calculating_task_id,omitempty"`
	// remote_ip represents the IP address of the client initiating the download request.
	// For proxy requests, it is set to the IP address of the request source.
	// For dfget requests, it is set to the IP address of the dfget.
	RemoteIp *string `protobuf:"bytes,22,opt,name=remote_ip,json=remoteIp,proto3,oneof" json:"remote_ip,omitempty"`
	// concurrent_piece_count is the number of pieces that can be downloaded concurrently.
	ConcurrentPieceCount *uint32 `protobuf:"varint,23,opt,name=concurrent_piece_count,json=concurrentPieceCount,proto3,oneof" json:"concurrent_piece_count,omitempty"`
	// Actual piece length by calculating based on the piece_length field and content length.
	ActualPieceLength *uint64 `protobuf:"varint,24,opt,name=actual_piece_length,json=actualPieceLength,proto3,oneof" json:"actual_piece_length,omitempty"`
	// Actual content length by getting from the backend.
	ActualContentLength *uint64 `protobuf:"varint,25,opt,name=actual_content_length,json=actualContentLength,proto3,oneof" json:"actual_content_length,omitempty"`
	// Actual piece count by calculating.
	ActualPieceCount *uint64 `protobuf:"varint,26,opt,name=actual_piece_count,json=actualPieceCount,proto3,oneof" json:"actual_piece_count,omitempty"`
}

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

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

func (*RegisterCachePeerRequest) ProtoMessage() {}

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

func (x *RegisterCachePeerRequest) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *RegisterCachePeerRequest) GetDigest() string {
	if x != nil && x.Digest != nil {
		return *x.Digest
	}
	return ""
}

func (x *RegisterCachePeerRequest) GetRange() *v2.Range {
	if x != nil {
		return x.Range
	}
	return nil
}

func (x *RegisterCachePeerRequest) GetType() v2.TaskType {
	if x != nil {
		return x.Type
	}
	return v2.TaskType(0)
}

func (x *RegisterCachePeerRequest) GetTag() string {
	if x != nil && x.Tag != nil {
		return *x.Tag
	}
	return ""
}

func (x *RegisterCachePeerRequest) GetApplication() string {
	if x != nil && x.Application != nil {
		return *x.Application
	}
	return ""
}

func (x *RegisterCachePeerRequest) GetPriority() v2.Priority {
	if x != nil {
		return x.Priority
	}
	return v2.Priority(0)
}

func (x *RegisterCachePeerRequest) GetFilteredQueryParams() []string {
	if x != nil {
		return x.FilteredQueryParams
	}
	return nil
}

func (x *RegisterCachePeerRequest) GetRequestHeader() map[string]string {
	if x != nil {
		return x.RequestHeader
	}
	return nil
}

func (x *RegisterCachePeerRequest) GetPieceLength() uint64 {
	if x != nil && x.PieceLength != nil {
		return *x.PieceLength
	}
	return 0
}

func (x *RegisterCachePeerRequest) GetOutputPath() string {
	if x != nil && x.OutputPath != nil {
		return *x.OutputPath
	}
	return ""
}

func (x *RegisterCachePeerRequest) GetTimeout() *durationpb.Duration {
	if x != nil {
		return x.Timeout
	}
	return nil
}

func (x *RegisterCachePeerRequest) GetDisableBackToSource() bool {
	if x != nil {
		return x.DisableBackToSource
	}
	return false
}

func (x *RegisterCachePeerRequest) GetNeedBackToSource() bool {
	if x != nil {
		return x.NeedBackToSource
	}
	return false
}

func (x *RegisterCachePeerRequest) GetCertificateChain() [][]byte {
	if x != nil {
		return x.CertificateChain
	}
	return nil
}

func (x *RegisterCachePeerRequest) GetPrefetch() bool {
	if x != nil {
		return x.Prefetch
	}
	return false
}

func (x *RegisterCachePeerRequest) GetObjectStorage() *v2.ObjectStorage {
	if x != nil {
		return x.ObjectStorage
	}
	return nil
}

func (x *RegisterCachePeerRequest) GetHdfs() *v2.HDFS {
	if x != nil {
		return x.Hdfs
	}
	return nil
}

func (x *RegisterCachePeerRequest) GetIsPrefetch() bool {
	if x != nil {
		return x.IsPrefetch
	}
	return false
}

func (x *RegisterCachePeerRequest) GetNeedPieceContent() bool {
	if x != nil {
		return x.NeedPieceContent
	}
	return false
}

func (x *RegisterCachePeerRequest) GetContentForCalculatingTaskId() string {
	if x != nil && x.ContentForCalculatingTaskId != nil {
		return *x.ContentForCalculatingTaskId
	}
	return ""
}

func (x *RegisterCachePeerRequest) GetRemoteIp() string {
	if x != nil && x.RemoteIp != nil {
		return *x.RemoteIp
	}
	return ""
}

func (x *RegisterCachePeerRequest) GetConcurrentPieceCount() uint32 {
	if x != nil && x.ConcurrentPieceCount != nil {
		return *x.ConcurrentPieceCount
	}
	return 0
}

func (x *RegisterCachePeerRequest) GetActualPieceLength() uint64 {
	if x != nil && x.ActualPieceLength != nil {
		return *x.ActualPieceLength
	}
	return 0
}

func (x *RegisterCachePeerRequest) GetActualContentLength() uint64 {
	if x != nil && x.ActualContentLength != nil {
		return *x.ActualContentLength
	}
	return 0
}

func (x *RegisterCachePeerRequest) GetActualPieceCount() uint64 {
	if x != nil && x.ActualPieceCount != nil {
		return *x.ActualPieceCount
	}
	return 0
}

// DownloadCachePeerStartedRequest represents cache peer download started request of AnnounceCachePeerRequest.
type DownloadCachePeerStartedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DownloadCachePeerStartedRequest) ProtoMessage() {}

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

// DownloadCachePeerBackToSourceStartedRequest represents cache peer download back-to-source started request of AnnounceCachePeerRequest.
type DownloadCachePeerBackToSourceStartedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The description of the back-to-source reason.
	Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*DownloadCachePeerBackToSourceStartedRequest) ProtoMessage() {}

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

func (x *DownloadCachePeerBackToSourceStartedRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// RescheduleCachePeerRequest represents reschedule request of AnnounceCachePeerRequest.
type RescheduleCachePeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Candidate parent ids.
	CandidateParents []*v2.CachePeer `protobuf:"bytes,1,rep,name=candidate_parents,json=candidateParents,proto3" json:"candidate_parents,omitempty"`
	// The description of the reschedule reason.
	Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*RescheduleCachePeerRequest) ProtoMessage() {}

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

func (x *RescheduleCachePeerRequest) GetCandidateParents() []*v2.CachePeer {
	if x != nil {
		return x.CandidateParents
	}
	return nil
}

func (x *RescheduleCachePeerRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// DownloadCachePeerFinishedRequest represents cache peer download finished request of AnnounceCachePeerRequest.
type DownloadCachePeerFinishedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DownloadCachePeerFinishedRequest) ProtoMessage() {}

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

// DownloadCachePeerBackToSourceFinishedRequest represents cache peer download back-to-source finished request of AnnounceCachePeerRequest.
type DownloadCachePeerBackToSourceFinishedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DownloadCachePeerBackToSourceFinishedRequest) ProtoMessage() {}

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

// DownloadCachePeerFailedRequest represents cache peer download failed request of AnnounceCachePeerRequest.
type DownloadCachePeerFailedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The description of the download failed.
	Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*DownloadCachePeerFailedRequest) ProtoMessage() {}

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

func (x *DownloadCachePeerFailedRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// DownloadCachePeerBackToSourceFailedRequest represents cache peer download back-to-source failed request of AnnounceCachePeerRequest.
type DownloadCachePeerBackToSourceFailedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The description of the download back-to-source failed.
	Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*DownloadCachePeerBackToSourceFailedRequest) ProtoMessage() {}

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

func (x *DownloadCachePeerBackToSourceFailedRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// AnnounceCachePeerRequest represents request of AnnounceCachePeer.
type AnnounceCachePeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
	// Types that are assignable to Request:
	//
	//	*AnnounceCachePeerRequest_RegisterCachePeerRequest
	//	*AnnounceCachePeerRequest_DownloadCachePeerStartedRequest
	//	*AnnounceCachePeerRequest_DownloadCachePeerBackToSourceStartedRequest
	//	*AnnounceCachePeerRequest_RescheduleCachePeerRequest
	//	*AnnounceCachePeerRequest_DownloadCachePeerFinishedRequest
	//	*AnnounceCachePeerRequest_DownloadCachePeerBackToSourceFinishedRequest
	//	*AnnounceCachePeerRequest_DownloadCachePeerFailedRequest
	//	*AnnounceCachePeerRequest_DownloadCachePeerBackToSourceFailedRequest
	//	*AnnounceCachePeerRequest_DownloadPieceFinishedRequest
	//	*AnnounceCachePeerRequest_DownloadPieceBackToSourceFinishedRequest
	//	*AnnounceCachePeerRequest_DownloadPieceFailedRequest
	//	*AnnounceCachePeerRequest_DownloadPieceBackToSourceFailedRequest
	Request isAnnounceCachePeerRequest_Request `protobuf_oneof:"request"`
}

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

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

func (*AnnounceCachePeerRequest) ProtoMessage() {}

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

func (x *AnnounceCachePeerRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *AnnounceCachePeerRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

func (m *AnnounceCachePeerRequest) GetRequest() isAnnounceCachePeerRequest_Request {
	if m != nil {
		return m.Request
	}
	return nil
}

func (x *AnnounceCachePeerRequest) GetRegisterCachePeerRequest() *RegisterCachePeerRequest {
	if x, ok := x.GetRequest().(*AnnounceCachePeerRequest_RegisterCachePeerRequest); ok {
		return x.RegisterCachePeerRequest
	}
	return nil
}

func (x *AnnounceCachePeerRequest) GetDownloadCachePeerStartedRequest() *DownloadCachePeerStartedRequest {
	if x, ok := x.GetRequest().(*AnnounceCachePeerRequest_DownloadCachePeerStartedRequest); ok {
		return x.DownloadCachePeerStartedRequest
	}
	return nil
}

func (x *AnnounceCachePeerRequest) GetDownloadCachePeerBackToSourceStartedRequest() *DownloadCachePeerBackToSourceStartedRequest {
	if x, ok := x.GetRequest().(*AnnounceCachePeerRequest_DownloadCachePeerBackToSourceStartedRequest); ok {
		return x.DownloadCachePeerBackToSourceStartedRequest
	}
	return nil
}

func (x *AnnounceCachePeerRequest) GetRescheduleCachePeerRequest() *RescheduleCachePeerRequest {
	if x, ok := x.GetRequest().(*AnnounceCachePeerRequest_RescheduleCachePeerRequest); ok {
		return x.RescheduleCachePeerRequest
	}
	return nil
}

func (x *AnnounceCachePeerRequest) GetDownloadCachePeerFinishedRequest() *DownloadCachePeerFinishedRequest {
	if x, ok := x.GetRequest().(*AnnounceCachePeerRequest_DownloadCachePeerFinishedRequest); ok {
		return x.DownloadCachePeerFinishedRequest
	}
	return nil
}

func (x *AnnounceCachePeerRequest) GetDownloadCachePeerBackToSourceFinishedRequest() *DownloadCachePeerBackToSourceFinishedRequest {
	if x, ok := x.GetRequest().(*AnnounceCachePeerRequest_DownloadCachePeerBackToSourceFinishedRequest); ok {
		return x.DownloadCachePeerBackToSourceFinishedRequest
	}
	return nil
}

func (x *AnnounceCachePeerRequest) GetDownloadCachePeerFailedRequest() *DownloadCachePeerFailedRequest {
	if x, ok := x.GetRequest().(*AnnounceCachePeerRequest_DownloadCachePeerFailedRequest); ok {
		return x.DownloadCachePeerFailedRequest
	}
	return nil
}

func (x *AnnounceCachePeerRequest) GetDownloadCachePeerBackToSourceFailedRequest() *DownloadCachePeerBackToSourceFailedRequest {
	if x, ok := x.GetRequest().(*AnnounceCachePeerRequest_DownloadCachePeerBackToSourceFailedRequest); ok {
		return x.DownloadCachePeerBackToSourceFailedRequest
	}
	return nil
}

func (x *AnnounceCachePeerRequest) GetDownloadPieceFinishedRequest() *DownloadPieceFinishedRequest {
	if x, ok := x.GetRequest().(*AnnounceCachePeerRequest_DownloadPieceFinishedRequest); ok {
		return x.DownloadPieceFinishedRequest
	}
	return nil
}

func (x *AnnounceCachePeerRequest) GetDownloadPieceBackToSourceFinishedRequest() *DownloadPieceBackToSourceFinishedRequest {
	if x, ok := x.GetRequest().(*AnnounceCachePeerRequest_DownloadPieceBackToSourceFinishedRequest); ok {
		return x.DownloadPieceBackToSourceFinishedRequest
	}
	return nil
}

func (x *AnnounceCachePeerRequest) GetDownloadPieceFailedRequest() *DownloadPieceFailedRequest {
	if x, ok := x.GetRequest().(*AnnounceCachePeerRequest_DownloadPieceFailedRequest); ok {
		return x.DownloadPieceFailedRequest
	}
	return nil
}

func (x *AnnounceCachePeerRequest) GetDownloadPieceBackToSourceFailedRequest() *DownloadPieceBackToSourceFailedRequest {
	if x, ok := x.GetRequest().(*AnnounceCachePeerRequest_DownloadPieceBackToSourceFailedRequest); ok {
		return x.DownloadPieceBackToSourceFailedRequest
	}
	return nil
}

type isAnnounceCachePeerRequest_Request interface {
	isAnnounceCachePeerRequest_Request()
}

type AnnounceCachePeerRequest_RegisterCachePeerRequest struct {
	RegisterCachePeerRequest *RegisterCachePeerRequest `protobuf:"bytes,4,opt,name=register_cache_peer_request,json=registerCachePeerRequest,proto3,oneof"`
}

type AnnounceCachePeerRequest_DownloadCachePeerStartedRequest struct {
	DownloadCachePeerStartedRequest *DownloadCachePeerStartedRequest `protobuf:"bytes,5,opt,name=download_cache_peer_started_request,json=downloadCachePeerStartedRequest,proto3,oneof"`
}

type AnnounceCachePeerRequest_DownloadCachePeerBackToSourceStartedRequest struct {
	DownloadCachePeerBackToSourceStartedRequest *DownloadCachePeerBackToSourceStartedRequest `protobuf:"bytes,6,opt,name=download_cache_peer_back_to_source_started_request,json=downloadCachePeerBackToSourceStartedRequest,proto3,oneof"`
}

type AnnounceCachePeerRequest_RescheduleCachePeerRequest struct {
	RescheduleCachePeerRequest *RescheduleCachePeerRequest `protobuf:"bytes,7,opt,name=reschedule_cache_peer_request,json=rescheduleCachePeerRequest,proto3,oneof"`
}

type AnnounceCachePeerRequest_DownloadCachePeerFinishedRequest struct {
	DownloadCachePeerFinishedRequest *DownloadCachePeerFinishedRequest `protobuf:"bytes,8,opt,name=download_cache_peer_finished_request,json=downloadCachePeerFinishedRequest,proto3,oneof"`
}

type AnnounceCachePeerRequest_DownloadCachePeerBackToSourceFinishedRequest struct {
	DownloadCachePeerBackToSourceFinishedRequest *DownloadCachePeerBackToSourceFinishedRequest `protobuf:"bytes,9,opt,name=download_cache_peer_back_to_source_finished_request,json=downloadCachePeerBackToSourceFinishedRequest,proto3,oneof"`
}

type AnnounceCachePeerRequest_DownloadCachePeerFailedRequest struct {
	DownloadCachePeerFailedRequest *DownloadCachePeerFailedRequest `protobuf:"bytes,10,opt,name=download_cache_peer_failed_request,json=downloadCachePeerFailedRequest,proto3,oneof"`
}

type AnnounceCachePeerRequest_DownloadCachePeerBackToSourceFailedRequest struct {
	DownloadCachePeerBackToSourceFailedRequest *DownloadCachePeerBackToSourceFailedRequest `protobuf:"bytes,11,opt,name=download_cache_peer_back_to_source_failed_request,json=downloadCachePeerBackToSourceFailedRequest,proto3,oneof"`
}

type AnnounceCachePeerRequest_DownloadPieceFinishedRequest struct {
	DownloadPieceFinishedRequest *DownloadPieceFinishedRequest `protobuf:"bytes,12,opt,name=download_piece_finished_request,json=downloadPieceFinishedRequest,proto3,oneof"`
}

type AnnounceCachePeerRequest_DownloadPieceBackToSourceFinishedRequest struct {
	DownloadPieceBackToSourceFinishedRequest *DownloadPieceBackToSourceFinishedRequest `protobuf:"bytes,13,opt,name=download_piece_back_to_source_finished_request,json=downloadPieceBackToSourceFinishedRequest,proto3,oneof"`
}

type AnnounceCachePeerRequest_DownloadPieceFailedRequest struct {
	DownloadPieceFailedRequest *DownloadPieceFailedRequest `protobuf:"bytes,14,opt,name=download_piece_failed_request,json=downloadPieceFailedRequest,proto3,oneof"`
}

type AnnounceCachePeerRequest_DownloadPieceBackToSourceFailedRequest struct {
	DownloadPieceBackToSourceFailedRequest *DownloadPieceBackToSourceFailedRequest `protobuf:"bytes,15,opt,name=download_piece_back_to_source_failed_request,json=downloadPieceBackToSourceFailedRequest,proto3,oneof"`
}

func (*AnnounceCachePeerRequest_RegisterCachePeerRequest) isAnnounceCachePeerRequest_Request() {}

func (*AnnounceCachePeerRequest_DownloadCachePeerStartedRequest) isAnnounceCachePeerRequest_Request() {
}

func (*AnnounceCachePeerRequest_DownloadCachePeerBackToSourceStartedRequest) isAnnounceCachePeerRequest_Request() {
}

func (*AnnounceCachePeerRequest_RescheduleCachePeerRequest) isAnnounceCachePeerRequest_Request() {}

func (*AnnounceCachePeerRequest_DownloadCachePeerFinishedRequest) isAnnounceCachePeerRequest_Request() {
}

func (*AnnounceCachePeerRequest_DownloadCachePeerBackToSourceFinishedRequest) isAnnounceCachePeerRequest_Request() {
}

func (*AnnounceCachePeerRequest_DownloadCachePeerFailedRequest) isAnnounceCachePeerRequest_Request() {
}

func (*AnnounceCachePeerRequest_DownloadCachePeerBackToSourceFailedRequest) isAnnounceCachePeerRequest_Request() {
}

func (*AnnounceCachePeerRequest_DownloadPieceFinishedRequest) isAnnounceCachePeerRequest_Request() {}

func (*AnnounceCachePeerRequest_DownloadPieceBackToSourceFinishedRequest) isAnnounceCachePeerRequest_Request() {
}

func (*AnnounceCachePeerRequest_DownloadPieceFailedRequest) isAnnounceCachePeerRequest_Request() {}

func (*AnnounceCachePeerRequest_DownloadPieceBackToSourceFailedRequest) isAnnounceCachePeerRequest_Request() {
}

// EmptyCacheTaskResponse represents empty cache task response of AnnounceCachePeerResponse.
type EmptyCacheTaskResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*EmptyCacheTaskResponse) ProtoMessage() {}

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

// NormalCacheTaskResponse represents normal cache task response of AnnounceCachePeerResponse.
type NormalCacheTaskResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Candidate parents.
	CandidateParents []*v2.CachePeer `protobuf:"bytes,1,rep,name=candidate_parents,json=candidateParents,proto3" json:"candidate_parents,omitempty"`
}

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

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

func (*NormalCacheTaskResponse) ProtoMessage() {}

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

func (x *NormalCacheTaskResponse) GetCandidateParents() []*v2.CachePeer {
	if x != nil {
		return x.CandidateParents
	}
	return nil
}

// AnnounceCachePeerResponse represents response of AnnounceCachePeer.
type AnnounceCachePeerResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Response:
	//
	//	*AnnounceCachePeerResponse_EmptyCacheTaskResponse
	//	*AnnounceCachePeerResponse_NormalCacheTaskResponse
	//	*AnnounceCachePeerResponse_NeedBackToSourceResponse
	Response isAnnounceCachePeerResponse_Response `protobuf_oneof:"response"`
}

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

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

func (*AnnounceCachePeerResponse) ProtoMessage() {}

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

func (m *AnnounceCachePeerResponse) GetResponse() isAnnounceCachePeerResponse_Response {
	if m != nil {
		return m.Response
	}
	return nil
}

func (x *AnnounceCachePeerResponse) GetEmptyCacheTaskResponse() *EmptyCacheTaskResponse {
	if x, ok := x.GetResponse().(*AnnounceCachePeerResponse_EmptyCacheTaskResponse); ok {
		return x.EmptyCacheTaskResponse
	}
	return nil
}

func (x *AnnounceCachePeerResponse) GetNormalCacheTaskResponse() *NormalCacheTaskResponse {
	if x, ok := x.GetResponse().(*AnnounceCachePeerResponse_NormalCacheTaskResponse); ok {
		return x.NormalCacheTaskResponse
	}
	return nil
}

func (x *AnnounceCachePeerResponse) GetNeedBackToSourceResponse() *NeedBackToSourceResponse {
	if x, ok := x.GetResponse().(*AnnounceCachePeerResponse_NeedBackToSourceResponse); ok {
		return x.NeedBackToSourceResponse
	}
	return nil
}

type isAnnounceCachePeerResponse_Response interface {
	isAnnounceCachePeerResponse_Response()
}

type AnnounceCachePeerResponse_EmptyCacheTaskResponse struct {
	EmptyCacheTaskResponse *EmptyCacheTaskResponse `protobuf:"bytes,1,opt,name=empty_cache_task_response,json=emptyCacheTaskResponse,proto3,oneof"`
}

type AnnounceCachePeerResponse_NormalCacheTaskResponse struct {
	NormalCacheTaskResponse *NormalCacheTaskResponse `protobuf:"bytes,2,opt,name=normal_cache_task_response,json=normalCacheTaskResponse,proto3,oneof"`
}

type AnnounceCachePeerResponse_NeedBackToSourceResponse struct {
	NeedBackToSourceResponse *NeedBackToSourceResponse `protobuf:"bytes,3,opt,name=need_back_to_source_response,json=needBackToSourceResponse,proto3,oneof"`
}

func (*AnnounceCachePeerResponse_EmptyCacheTaskResponse) isAnnounceCachePeerResponse_Response() {}

func (*AnnounceCachePeerResponse_NormalCacheTaskResponse) isAnnounceCachePeerResponse_Response() {}

func (*AnnounceCachePeerResponse_NeedBackToSourceResponse) isAnnounceCachePeerResponse_Response() {}

// StatCachePeerRequest represents request of StatCachePeer.
type StatCachePeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
}

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

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

func (*StatCachePeerRequest) ProtoMessage() {}

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

func (x *StatCachePeerRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *StatCachePeerRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

// DeleteCachePeerRequest represents request of DeleteCachePeer.
type DeleteCachePeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
}

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

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

func (*DeleteCachePeerRequest) ProtoMessage() {}

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

func (x *DeleteCachePeerRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *DeleteCachePeerRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

// StatCacheTaskRequest represents request of StatCacheTask.
type StatCacheTaskRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
}

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

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

func (*StatCacheTaskRequest) ProtoMessage() {}

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

func (x *StatCacheTaskRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *StatCacheTaskRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

// DeleteCacheTaskRequest represents request of DeleteCacheTask.
type DeleteCacheTaskRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
}

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

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

func (*DeleteCacheTaskRequest) ProtoMessage() {}

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

func (x *DeleteCacheTaskRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *DeleteCacheTaskRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

// RegisterPersistentPeerRequest represents persistent peer registered request of AnnouncePersistentPeerRequest.
type RegisterPersistentPeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// This is the key of the object storage where the persistent task will be stored,
	// for example: `file.txt` or `dir/file.txt`. The combination of object_storage_key,
	// object_storage.endpoint and object_storage.region must be unique, because
	// the persistent task cannot be overwritten once it is uploaded.
	ObjectStorageKey string `protobuf:"bytes,1,opt,name=object_storage_key,json=objectStorageKey,proto3" json:"object_storage_key,omitempty"`
	// Object storage protocol information.
	ObjectStorage *v2.ObjectStorage `protobuf:"bytes,2,opt,name=object_storage,json=objectStorage,proto3" json:"object_storage,omitempty"`
	// Persistent represents whether the persistent task is persistent.
	// If the persistent task is persistent, the persistent peer will
	// not be deleted when dfdaemon runs garbage collection.
	Persistent bool `protobuf:"varint,3,opt,name=persistent,proto3" json:"persistent,omitempty"`
	// Tag is used to distinguish different persistent tasks.
	Tag *string `protobuf:"bytes,4,opt,name=tag,proto3,oneof" json:"tag,omitempty"`
	// Application of task.
	Application *string `protobuf:"bytes,5,opt,name=application,proto3,oneof" json:"application,omitempty"`
	// Task piece length, the value needs to be greater than or equal to 4194304(4MiB)
	PieceLength uint64 `protobuf:"varint,6,opt,name=piece_length,json=pieceLength,proto3" json:"piece_length,omitempty"`
	// File path to be exported.
	OutputPath *string `protobuf:"bytes,7,opt,name=output_path,json=outputPath,proto3,oneof" json:"output_path,omitempty"`
	// Download timeout.
	Timeout *durationpb.Duration `protobuf:"bytes,8,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"`
	// concurrent_piece_count is the number of pieces that can be downloaded concurrently.
	ConcurrentPieceCount *uint32 `protobuf:"varint,9,opt,name=concurrent_piece_count,json=concurrentPieceCount,proto3,oneof" json:"concurrent_piece_count,omitempty"`
	// Task piece count.
	PieceCount uint64 `protobuf:"varint,10,opt,name=piece_count,json=pieceCount,proto3" json:"piece_count,omitempty"`
}

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

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

func (*RegisterPersistentPeerRequest) ProtoMessage() {}

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

func (x *RegisterPersistentPeerRequest) GetObjectStorageKey() string {
	if x != nil {
		return x.ObjectStorageKey
	}
	return ""
}

func (x *RegisterPersistentPeerRequest) GetObjectStorage() *v2.ObjectStorage {
	if x != nil {
		return x.ObjectStorage
	}
	return nil
}

func (x *RegisterPersistentPeerRequest) GetPersistent() bool {
	if x != nil {
		return x.Persistent
	}
	return false
}

func (x *RegisterPersistentPeerRequest) GetTag() string {
	if x != nil && x.Tag != nil {
		return *x.Tag
	}
	return ""
}

func (x *RegisterPersistentPeerRequest) GetApplication() string {
	if x != nil && x.Application != nil {
		return *x.Application
	}
	return ""
}

func (x *RegisterPersistentPeerRequest) GetPieceLength() uint64 {
	if x != nil {
		return x.PieceLength
	}
	return 0
}

func (x *RegisterPersistentPeerRequest) GetOutputPath() string {
	if x != nil && x.OutputPath != nil {
		return *x.OutputPath
	}
	return ""
}

func (x *RegisterPersistentPeerRequest) GetTimeout() *durationpb.Duration {
	if x != nil {
		return x.Timeout
	}
	return nil
}

func (x *RegisterPersistentPeerRequest) GetConcurrentPieceCount() uint32 {
	if x != nil && x.ConcurrentPieceCount != nil {
		return *x.ConcurrentPieceCount
	}
	return 0
}

func (x *RegisterPersistentPeerRequest) GetPieceCount() uint64 {
	if x != nil {
		return x.PieceCount
	}
	return 0
}

// DownloadPersistentPeerStartedRequest represents persistent peer download started request of AnnouncePersistentPeerRequest.
type DownloadPersistentPeerStartedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DownloadPersistentPeerStartedRequest) ProtoMessage() {}

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

// DownloadPersistentPeerBackToSourceStartedRequest represents cache peer download back-to-source started request of AnnouncePersistentPeerRequest.
type DownloadPersistentPeerBackToSourceStartedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The description of the back-to-source reason.
	Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*DownloadPersistentPeerBackToSourceStartedRequest) ProtoMessage() {}

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

func (x *DownloadPersistentPeerBackToSourceStartedRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// ReschedulePersistentPeerRequest represents reschedule request of AnnouncePersistentPeerRequest.
type ReschedulePersistentPeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Candidate parent ids.
	CandidateParents []*v2.PersistentPeer `protobuf:"bytes,1,rep,name=candidate_parents,json=candidateParents,proto3" json:"candidate_parents,omitempty"`
	// The description of the reschedule reason.
	Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*ReschedulePersistentPeerRequest) ProtoMessage() {}

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

func (x *ReschedulePersistentPeerRequest) GetCandidateParents() []*v2.PersistentPeer {
	if x != nil {
		return x.CandidateParents
	}
	return nil
}

func (x *ReschedulePersistentPeerRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// DownloadPersistentPeerFinishedRequest represents persistent peer download finished request of AnnouncePersistentPeerRequest.
type DownloadPersistentPeerFinishedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DownloadPersistentPeerFinishedRequest) ProtoMessage() {}

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

// DownloadPersistentPeerBackToSourceFinishedRequest represents cache peer download back-to-source finished request of AnnouncePersistentPeerRequest.
type DownloadPersistentPeerBackToSourceFinishedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DownloadPersistentPeerBackToSourceFinishedRequest) ProtoMessage() {}

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

// DownloadPersistentPeerFailedRequest represents persistent peer download failed request of AnnouncePersistentPeerRequest.
type DownloadPersistentPeerFailedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The description of the download failed.
	Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*DownloadPersistentPeerFailedRequest) ProtoMessage() {}

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

func (x *DownloadPersistentPeerFailedRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// DownloadPersistentPeerBackToSourceFailedRequest represents cache peer download back-to-source failed request of AnnouncePersistentPeerRequest.
type DownloadPersistentPeerBackToSourceFailedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The description of the download back-to-source failed.
	Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*DownloadPersistentPeerBackToSourceFailedRequest) ProtoMessage() {}

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

func (x *DownloadPersistentPeerBackToSourceFailedRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// AnnouncePersistentPeerRequest represents request of AnnouncePersistentPeer.
type AnnouncePersistentPeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
	// Types that are assignable to Request:
	//
	//	*AnnouncePersistentPeerRequest_RegisterPersistentPeerRequest
	//	*AnnouncePersistentPeerRequest_DownloadPersistentPeerStartedRequest
	//	*AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceStartedRequest
	//	*AnnouncePersistentPeerRequest_ReschedulePersistentPeerRequest
	//	*AnnouncePersistentPeerRequest_DownloadPersistentPeerFinishedRequest
	//	*AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceFinishedRequest
	//	*AnnouncePersistentPeerRequest_DownloadPersistentPeerFailedRequest
	//	*AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceFailedRequest
	//	*AnnouncePersistentPeerRequest_DownloadPieceFinishedRequest
	//	*AnnouncePersistentPeerRequest_DownloadPieceBackToSourceFinishedRequest
	//	*AnnouncePersistentPeerRequest_DownloadPieceFailedRequest
	//	*AnnouncePersistentPeerRequest_DownloadPieceBackToSourceFailedRequest
	Request isAnnouncePersistentPeerRequest_Request `protobuf_oneof:"request"`
}

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

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

func (*AnnouncePersistentPeerRequest) ProtoMessage() {}

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

func (x *AnnouncePersistentPeerRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *AnnouncePersistentPeerRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

func (m *AnnouncePersistentPeerRequest) GetRequest() isAnnouncePersistentPeerRequest_Request {
	if m != nil {
		return m.Request
	}
	return nil
}

func (x *AnnouncePersistentPeerRequest) GetRegisterPersistentPeerRequest() *RegisterPersistentPeerRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentPeerRequest_RegisterPersistentPeerRequest); ok {
		return x.RegisterPersistentPeerRequest
	}
	return nil
}

func (x *AnnouncePersistentPeerRequest) GetDownloadPersistentPeerStartedRequest() *DownloadPersistentPeerStartedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentPeerRequest_DownloadPersistentPeerStartedRequest); ok {
		return x.DownloadPersistentPeerStartedRequest
	}
	return nil
}

func (x *AnnouncePersistentPeerRequest) GetDownloadPersistentPeerBackToSourceStartedRequest() *DownloadPersistentPeerBackToSourceStartedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceStartedRequest); ok {
		return x.DownloadPersistentPeerBackToSourceStartedRequest
	}
	return nil
}

func (x *AnnouncePersistentPeerRequest) GetReschedulePersistentPeerRequest() *ReschedulePersistentPeerRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentPeerRequest_ReschedulePersistentPeerRequest); ok {
		return x.ReschedulePersistentPeerRequest
	}
	return nil
}

func (x *AnnouncePersistentPeerRequest) GetDownloadPersistentPeerFinishedRequest() *DownloadPersistentPeerFinishedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentPeerRequest_DownloadPersistentPeerFinishedRequest); ok {
		return x.DownloadPersistentPeerFinishedRequest
	}
	return nil
}

func (x *AnnouncePersistentPeerRequest) GetDownloadPersistentPeerBackToSourceFinishedRequest() *DownloadPersistentPeerBackToSourceFinishedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceFinishedRequest); ok {
		return x.DownloadPersistentPeerBackToSourceFinishedRequest
	}
	return nil
}

func (x *AnnouncePersistentPeerRequest) GetDownloadPersistentPeerFailedRequest() *DownloadPersistentPeerFailedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentPeerRequest_DownloadPersistentPeerFailedRequest); ok {
		return x.DownloadPersistentPeerFailedRequest
	}
	return nil
}

func (x *AnnouncePersistentPeerRequest) GetDownloadPersistentPeerBackToSourceFailedRequest() *DownloadPersistentPeerBackToSourceFailedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceFailedRequest); ok {
		return x.DownloadPersistentPeerBackToSourceFailedRequest
	}
	return nil
}

func (x *AnnouncePersistentPeerRequest) GetDownloadPieceFinishedRequest() *DownloadPieceFinishedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentPeerRequest_DownloadPieceFinishedRequest); ok {
		return x.DownloadPieceFinishedRequest
	}
	return nil
}

func (x *AnnouncePersistentPeerRequest) GetDownloadPieceBackToSourceFinishedRequest() *DownloadPieceBackToSourceFinishedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentPeerRequest_DownloadPieceBackToSourceFinishedRequest); ok {
		return x.DownloadPieceBackToSourceFinishedRequest
	}
	return nil
}

func (x *AnnouncePersistentPeerRequest) GetDownloadPieceFailedRequest() *DownloadPieceFailedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentPeerRequest_DownloadPieceFailedRequest); ok {
		return x.DownloadPieceFailedRequest
	}
	return nil
}

func (x *AnnouncePersistentPeerRequest) GetDownloadPieceBackToSourceFailedRequest() *DownloadPieceBackToSourceFailedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentPeerRequest_DownloadPieceBackToSourceFailedRequest); ok {
		return x.DownloadPieceBackToSourceFailedRequest
	}
	return nil
}

type isAnnouncePersistentPeerRequest_Request interface {
	isAnnouncePersistentPeerRequest_Request()
}

type AnnouncePersistentPeerRequest_RegisterPersistentPeerRequest struct {
	RegisterPersistentPeerRequest *RegisterPersistentPeerRequest `protobuf:"bytes,4,opt,name=register_persistent_peer_request,json=registerPersistentPeerRequest,proto3,oneof"`
}

type AnnouncePersistentPeerRequest_DownloadPersistentPeerStartedRequest struct {
	DownloadPersistentPeerStartedRequest *DownloadPersistentPeerStartedRequest `protobuf:"bytes,5,opt,name=download_persistent_peer_started_request,json=downloadPersistentPeerStartedRequest,proto3,oneof"`
}

type AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceStartedRequest struct {
	DownloadPersistentPeerBackToSourceStartedRequest *DownloadPersistentPeerBackToSourceStartedRequest `protobuf:"bytes,6,opt,name=download_persistent_peer_back_to_source_started_request,json=downloadPersistentPeerBackToSourceStartedRequest,proto3,oneof"`
}

type AnnouncePersistentPeerRequest_ReschedulePersistentPeerRequest struct {
	ReschedulePersistentPeerRequest *ReschedulePersistentPeerRequest `protobuf:"bytes,7,opt,name=reschedule_persistent_peer_request,json=reschedulePersistentPeerRequest,proto3,oneof"`
}

type AnnouncePersistentPeerRequest_DownloadPersistentPeerFinishedRequest struct {
	DownloadPersistentPeerFinishedRequest *DownloadPersistentPeerFinishedRequest `protobuf:"bytes,8,opt,name=download_persistent_peer_finished_request,json=downloadPersistentPeerFinishedRequest,proto3,oneof"`
}

type AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceFinishedRequest struct {
	DownloadPersistentPeerBackToSourceFinishedRequest *DownloadPersistentPeerBackToSourceFinishedRequest `protobuf:"bytes,9,opt,name=download_persistent_peer_back_to_source_finished_request,json=downloadPersistentPeerBackToSourceFinishedRequest,proto3,oneof"`
}

type AnnouncePersistentPeerRequest_DownloadPersistentPeerFailedRequest struct {
	DownloadPersistentPeerFailedRequest *DownloadPersistentPeerFailedRequest `protobuf:"bytes,10,opt,name=download_persistent_peer_failed_request,json=downloadPersistentPeerFailedRequest,proto3,oneof"`
}

type AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceFailedRequest struct {
	DownloadPersistentPeerBackToSourceFailedRequest *DownloadPersistentPeerBackToSourceFailedRequest `protobuf:"bytes,11,opt,name=download_persistent_peer_back_to_source_failed_request,json=downloadPersistentPeerBackToSourceFailedRequest,proto3,oneof"`
}

type AnnouncePersistentPeerRequest_DownloadPieceFinishedRequest struct {
	DownloadPieceFinishedRequest *DownloadPieceFinishedRequest `protobuf:"bytes,12,opt,name=download_piece_finished_request,json=downloadPieceFinishedRequest,proto3,oneof"`
}

type AnnouncePersistentPeerRequest_DownloadPieceBackToSourceFinishedRequest struct {
	DownloadPieceBackToSourceFinishedRequest *DownloadPieceBackToSourceFinishedRequest `protobuf:"bytes,13,opt,name=download_piece_back_to_source_finished_request,json=downloadPieceBackToSourceFinishedRequest,proto3,oneof"`
}

type AnnouncePersistentPeerRequest_DownloadPieceFailedRequest struct {
	DownloadPieceFailedRequest *DownloadPieceFailedRequest `protobuf:"bytes,14,opt,name=download_piece_failed_request,json=downloadPieceFailedRequest,proto3,oneof"`
}

type AnnouncePersistentPeerRequest_DownloadPieceBackToSourceFailedRequest struct {
	DownloadPieceBackToSourceFailedRequest *DownloadPieceBackToSourceFailedRequest `protobuf:"bytes,15,opt,name=download_piece_back_to_source_failed_request,json=downloadPieceBackToSourceFailedRequest,proto3,oneof"`
}

func (*AnnouncePersistentPeerRequest_RegisterPersistentPeerRequest) isAnnouncePersistentPeerRequest_Request() {
}

func (*AnnouncePersistentPeerRequest_DownloadPersistentPeerStartedRequest) isAnnouncePersistentPeerRequest_Request() {
}

func (*AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceStartedRequest) isAnnouncePersistentPeerRequest_Request() {
}

func (*AnnouncePersistentPeerRequest_ReschedulePersistentPeerRequest) isAnnouncePersistentPeerRequest_Request() {
}

func (*AnnouncePersistentPeerRequest_DownloadPersistentPeerFinishedRequest) isAnnouncePersistentPeerRequest_Request() {
}

func (*AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceFinishedRequest) isAnnouncePersistentPeerRequest_Request() {
}

func (*AnnouncePersistentPeerRequest_DownloadPersistentPeerFailedRequest) isAnnouncePersistentPeerRequest_Request() {
}

func (*AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceFailedRequest) isAnnouncePersistentPeerRequest_Request() {
}

func (*AnnouncePersistentPeerRequest_DownloadPieceFinishedRequest) isAnnouncePersistentPeerRequest_Request() {
}

func (*AnnouncePersistentPeerRequest_DownloadPieceBackToSourceFinishedRequest) isAnnouncePersistentPeerRequest_Request() {
}

func (*AnnouncePersistentPeerRequest_DownloadPieceFailedRequest) isAnnouncePersistentPeerRequest_Request() {
}

func (*AnnouncePersistentPeerRequest_DownloadPieceBackToSourceFailedRequest) isAnnouncePersistentPeerRequest_Request() {
}

// EmptyPersistentTaskResponse represents empty persistent task response of AnnouncePersistentPeerResponse.
type EmptyPersistentTaskResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*EmptyPersistentTaskResponse) ProtoMessage() {}

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

// NormalPersistentTaskResponse represents normal persistent task response of AnnouncePersistentPeerResponse.
type NormalPersistentTaskResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Candidate parents.
	CandidateParents []*v2.PersistentPeer `protobuf:"bytes,1,rep,name=candidate_parents,json=candidateParents,proto3" json:"candidate_parents,omitempty"`
}

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

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

func (*NormalPersistentTaskResponse) ProtoMessage() {}

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

func (x *NormalPersistentTaskResponse) GetCandidateParents() []*v2.PersistentPeer {
	if x != nil {
		return x.CandidateParents
	}
	return nil
}

// AnnouncePersistentPeerResponse represents response of AnnouncePersistentPeer.
type AnnouncePersistentPeerResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Response:
	//
	//	*AnnouncePersistentPeerResponse_EmptyPersistentTaskResponse
	//	*AnnouncePersistentPeerResponse_NormalPersistentTaskResponse
	//	*AnnouncePersistentPeerResponse_NeedBackToSourceResponse
	Response isAnnouncePersistentPeerResponse_Response `protobuf_oneof:"response"`
}

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

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

func (*AnnouncePersistentPeerResponse) ProtoMessage() {}

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

func (m *AnnouncePersistentPeerResponse) GetResponse() isAnnouncePersistentPeerResponse_Response {
	if m != nil {
		return m.Response
	}
	return nil
}

func (x *AnnouncePersistentPeerResponse) GetEmptyPersistentTaskResponse() *EmptyPersistentTaskResponse {
	if x, ok := x.GetResponse().(*AnnouncePersistentPeerResponse_EmptyPersistentTaskResponse); ok {
		return x.EmptyPersistentTaskResponse
	}
	return nil
}

func (x *AnnouncePersistentPeerResponse) GetNormalPersistentTaskResponse() *NormalPersistentTaskResponse {
	if x, ok := x.GetResponse().(*AnnouncePersistentPeerResponse_NormalPersistentTaskResponse); ok {
		return x.NormalPersistentTaskResponse
	}
	return nil
}

func (x *AnnouncePersistentPeerResponse) GetNeedBackToSourceResponse() *NeedBackToSourceResponse {
	if x, ok := x.GetResponse().(*AnnouncePersistentPeerResponse_NeedBackToSourceResponse); ok {
		return x.NeedBackToSourceResponse
	}
	return nil
}

type isAnnouncePersistentPeerResponse_Response interface {
	isAnnouncePersistentPeerResponse_Response()
}

type AnnouncePersistentPeerResponse_EmptyPersistentTaskResponse struct {
	EmptyPersistentTaskResponse *EmptyPersistentTaskResponse `protobuf:"bytes,1,opt,name=empty_persistent_task_response,json=emptyPersistentTaskResponse,proto3,oneof"`
}

type AnnouncePersistentPeerResponse_NormalPersistentTaskResponse struct {
	NormalPersistentTaskResponse *NormalPersistentTaskResponse `protobuf:"bytes,2,opt,name=normal_persistent_task_response,json=normalPersistentTaskResponse,proto3,oneof"`
}

type AnnouncePersistentPeerResponse_NeedBackToSourceResponse struct {
	NeedBackToSourceResponse *NeedBackToSourceResponse `protobuf:"bytes,3,opt,name=need_back_to_source_response,json=needBackToSourceResponse,proto3,oneof"`
}

func (*AnnouncePersistentPeerResponse_EmptyPersistentTaskResponse) isAnnouncePersistentPeerResponse_Response() {
}

func (*AnnouncePersistentPeerResponse_NormalPersistentTaskResponse) isAnnouncePersistentPeerResponse_Response() {
}

func (*AnnouncePersistentPeerResponse_NeedBackToSourceResponse) isAnnouncePersistentPeerResponse_Response() {
}

// StatPersistentPeerRequest represents request of StatPersistentPeer.
type StatPersistentPeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
}

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

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

func (*StatPersistentPeerRequest) ProtoMessage() {}

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

func (x *StatPersistentPeerRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *StatPersistentPeerRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

// DeletePersistentPeerRequest represents request of DeletePersistentPeer.
type DeletePersistentPeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
}

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

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

func (*DeletePersistentPeerRequest) ProtoMessage() {}

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

func (x *DeletePersistentPeerRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *DeletePersistentPeerRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

// UploadPersistentTaskStartedRequest represents upload persistent task started request of UploadPersistentTaskStarted.
type UploadPersistentTaskStartedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
	// This is the key of the object storage where the persistent task will be stored,
	// for example: `file.txt` or `dir/file.txt`. The combination of object_storage_key,
	// object_storage.endpoint and object_storage.region must be unique, because
	// the persistent task cannot be overwritten once it is uploaded.
	ObjectStorageKey string `protobuf:"bytes,4,opt,name=object_storage_key,json=objectStorageKey,proto3" json:"object_storage_key,omitempty"`
	// Object storage protocol information.
	ObjectStorage *v2.ObjectStorage `protobuf:"bytes,5,opt,name=object_storage,json=objectStorage,proto3" json:"object_storage,omitempty"`
	// Replica count of the persistent task.
	PersistentReplicaCount uint64 `protobuf:"varint,6,opt,name=persistent_replica_count,json=persistentReplicaCount,proto3" json:"persistent_replica_count,omitempty"`
	// Tag is used to distinguish different persistent tasks.
	Tag *string `protobuf:"bytes,7,opt,name=tag,proto3,oneof" json:"tag,omitempty"`
	// Application of task.
	Application *string `protobuf:"bytes,8,opt,name=application,proto3,oneof" json:"application,omitempty"`
	// Task piece length, the value needs to be greater than or equal to 4194304(4MiB).
	PieceLength uint64 `protobuf:"varint,9,opt,name=piece_length,json=pieceLength,proto3" json:"piece_length,omitempty"`
	// Task content length.
	ContentLength uint64 `protobuf:"varint,10,opt,name=content_length,json=contentLength,proto3" json:"content_length,omitempty"`
	// Task piece count.
	PieceCount uint32 `protobuf:"varint,11,opt,name=piece_count,json=pieceCount,proto3" json:"piece_count,omitempty"`
	// TTL of the persistent task.
	Ttl *durationpb.Duration `protobuf:"bytes,12,opt,name=ttl,proto3" json:"ttl,omitempty"`
}

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

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

func (*UploadPersistentTaskStartedRequest) ProtoMessage() {}

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

func (x *UploadPersistentTaskStartedRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *UploadPersistentTaskStartedRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

func (x *UploadPersistentTaskStartedRequest) GetObjectStorageKey() string {
	if x != nil {
		return x.ObjectStorageKey
	}
	return ""
}

func (x *UploadPersistentTaskStartedRequest) GetObjectStorage() *v2.ObjectStorage {
	if x != nil {
		return x.ObjectStorage
	}
	return nil
}

func (x *UploadPersistentTaskStartedRequest) GetPersistentReplicaCount() uint64 {
	if x != nil {
		return x.PersistentReplicaCount
	}
	return 0
}

func (x *UploadPersistentTaskStartedRequest) GetTag() string {
	if x != nil && x.Tag != nil {
		return *x.Tag
	}
	return ""
}

func (x *UploadPersistentTaskStartedRequest) GetApplication() string {
	if x != nil && x.Application != nil {
		return *x.Application
	}
	return ""
}

func (x *UploadPersistentTaskStartedRequest) GetPieceLength() uint64 {
	if x != nil {
		return x.PieceLength
	}
	return 0
}

func (x *UploadPersistentTaskStartedRequest) GetContentLength() uint64 {
	if x != nil {
		return x.ContentLength
	}
	return 0
}

func (x *UploadPersistentTaskStartedRequest) GetPieceCount() uint32 {
	if x != nil {
		return x.PieceCount
	}
	return 0
}

func (x *UploadPersistentTaskStartedRequest) GetTtl() *durationpb.Duration {
	if x != nil {
		return x.Ttl
	}
	return nil
}

// UploadPersistentTaskFinishedRequest represents upload persistent task finished request of UploadPersistentTaskFinished.
type UploadPersistentTaskFinishedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
}

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

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

func (*UploadPersistentTaskFinishedRequest) ProtoMessage() {}

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

func (x *UploadPersistentTaskFinishedRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *UploadPersistentTaskFinishedRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

// UploadPersistentTaskFailedRequest represents upload persistent task failed request of UploadPersistentTaskFailed.
type UploadPersistentTaskFailedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
	// The description of the upload failed.
	Description *string `protobuf:"bytes,4,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*UploadPersistentTaskFailedRequest) ProtoMessage() {}

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

func (x *UploadPersistentTaskFailedRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *UploadPersistentTaskFailedRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

func (x *UploadPersistentTaskFailedRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// StatPersistentTaskRequest represents request of StatPersistentTask.
type StatPersistentTaskRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
}

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

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

func (*StatPersistentTaskRequest) ProtoMessage() {}

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

func (x *StatPersistentTaskRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *StatPersistentTaskRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

// DeletePersistentTaskRequest represents request of DeletePersistentTask.
type DeletePersistentTaskRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
}

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

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

func (*DeletePersistentTaskRequest) ProtoMessage() {}

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

func (x *DeletePersistentTaskRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *DeletePersistentTaskRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

// RegisterPersistentCachePeerRequest represents persistent cache peer registered request of AnnouncePersistentCachePeerRequest.
type RegisterPersistentCachePeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Persistent represents whether the persistent cache task is persistent.
	// If the persistent cache task is persistent, the persistent cache peer will
	// not be deleted when dfdaemon runs garbage collection.
	Persistent bool `protobuf:"varint,1,opt,name=persistent,proto3" json:"persistent,omitempty"`
	// Tag is used to distinguish different persistent cache tasks.
	Tag *string `protobuf:"bytes,2,opt,name=tag,proto3,oneof" json:"tag,omitempty"`
	// Application of task.
	Application *string `protobuf:"bytes,3,opt,name=application,proto3,oneof" json:"application,omitempty"`
	// Task piece length, the value needs to be greater than or equal to 4194304(4MiB)
	PieceLength uint64 `protobuf:"varint,4,opt,name=piece_length,json=pieceLength,proto3" json:"piece_length,omitempty"`
	// File path to be exported.
	OutputPath *string `protobuf:"bytes,5,opt,name=output_path,json=outputPath,proto3,oneof" json:"output_path,omitempty"`
	// Download timeout.
	Timeout *durationpb.Duration `protobuf:"bytes,6,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"`
	// concurrent_piece_count is the number of pieces that can be downloaded concurrently.
	ConcurrentPieceCount *uint32 `protobuf:"varint,7,opt,name=concurrent_piece_count,json=concurrentPieceCount,proto3,oneof" json:"concurrent_piece_count,omitempty"`
	// Task piece count.
	PieceCount uint64 `protobuf:"varint,8,opt,name=piece_count,json=pieceCount,proto3" json:"piece_count,omitempty"`
}

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

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

func (*RegisterPersistentCachePeerRequest) ProtoMessage() {}

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

func (x *RegisterPersistentCachePeerRequest) GetPersistent() bool {
	if x != nil {
		return x.Persistent
	}
	return false
}

func (x *RegisterPersistentCachePeerRequest) GetTag() string {
	if x != nil && x.Tag != nil {
		return *x.Tag
	}
	return ""
}

func (x *RegisterPersistentCachePeerRequest) GetApplication() string {
	if x != nil && x.Application != nil {
		return *x.Application
	}
	return ""
}

func (x *RegisterPersistentCachePeerRequest) GetPieceLength() uint64 {
	if x != nil {
		return x.PieceLength
	}
	return 0
}

func (x *RegisterPersistentCachePeerRequest) GetOutputPath() string {
	if x != nil && x.OutputPath != nil {
		return *x.OutputPath
	}
	return ""
}

func (x *RegisterPersistentCachePeerRequest) GetTimeout() *durationpb.Duration {
	if x != nil {
		return x.Timeout
	}
	return nil
}

func (x *RegisterPersistentCachePeerRequest) GetConcurrentPieceCount() uint32 {
	if x != nil && x.ConcurrentPieceCount != nil {
		return *x.ConcurrentPieceCount
	}
	return 0
}

func (x *RegisterPersistentCachePeerRequest) GetPieceCount() uint64 {
	if x != nil {
		return x.PieceCount
	}
	return 0
}

// DownloadPersistentCachePeerStartedRequest represents persistent cache peer download started request of AnnouncePersistentCachePeerRequest.
type DownloadPersistentCachePeerStartedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DownloadPersistentCachePeerStartedRequest) ProtoMessage() {}

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

// ReschedulePersistentCachePeerRequest represents reschedule request of AnnouncePersistentCachePeerRequest.
type ReschedulePersistentCachePeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Candidate parent ids.
	CandidateParents []*v2.PersistentCachePeer `protobuf:"bytes,1,rep,name=candidate_parents,json=candidateParents,proto3" json:"candidate_parents,omitempty"`
	// The description of the reschedule reason.
	Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*ReschedulePersistentCachePeerRequest) ProtoMessage() {}

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

func (x *ReschedulePersistentCachePeerRequest) GetCandidateParents() []*v2.PersistentCachePeer {
	if x != nil {
		return x.CandidateParents
	}
	return nil
}

func (x *ReschedulePersistentCachePeerRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// DownloadPersistentCachePeerFinishedRequest represents persistent cache peer download finished request of AnnouncePersistentCachePeerRequest.
type DownloadPersistentCachePeerFinishedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DownloadPersistentCachePeerFinishedRequest) ProtoMessage() {}

func (x *DownloadPersistentCachePeerFinishedRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[63]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DownloadPersistentCachePeerFinishedRequest.ProtoReflect.Descriptor instead.
func (*DownloadPersistentCachePeerFinishedRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{63}
}

// DownloadPersistentCachePeerFailedRequest represents persistent cache peer download failed request of AnnouncePersistentCachePeerRequest.
type DownloadPersistentCachePeerFailedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The description of the download failed.
	Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*DownloadPersistentCachePeerFailedRequest) ProtoMessage() {}

func (x *DownloadPersistentCachePeerFailedRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[64]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DownloadPersistentCachePeerFailedRequest.ProtoReflect.Descriptor instead.
func (*DownloadPersistentCachePeerFailedRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{64}
}

func (x *DownloadPersistentCachePeerFailedRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// AnnouncePersistentCachePeerRequest represents request of AnnouncePersistentCachePeer.
type AnnouncePersistentCachePeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
	// Types that are assignable to Request:
	//
	//	*AnnouncePersistentCachePeerRequest_RegisterPersistentCachePeerRequest
	//	*AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerStartedRequest
	//	*AnnouncePersistentCachePeerRequest_ReschedulePersistentCachePeerRequest
	//	*AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerFinishedRequest
	//	*AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerFailedRequest
	//	*AnnouncePersistentCachePeerRequest_DownloadPieceFinishedRequest
	//	*AnnouncePersistentCachePeerRequest_DownloadPieceFailedRequest
	Request isAnnouncePersistentCachePeerRequest_Request `protobuf_oneof:"request"`
}

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

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

func (*AnnouncePersistentCachePeerRequest) ProtoMessage() {}

func (x *AnnouncePersistentCachePeerRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[65]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AnnouncePersistentCachePeerRequest.ProtoReflect.Descriptor instead.
func (*AnnouncePersistentCachePeerRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{65}
}

func (x *AnnouncePersistentCachePeerRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *AnnouncePersistentCachePeerRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

func (m *AnnouncePersistentCachePeerRequest) GetRequest() isAnnouncePersistentCachePeerRequest_Request {
	if m != nil {
		return m.Request
	}
	return nil
}

func (x *AnnouncePersistentCachePeerRequest) GetRegisterPersistentCachePeerRequest() *RegisterPersistentCachePeerRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentCachePeerRequest_RegisterPersistentCachePeerRequest); ok {
		return x.RegisterPersistentCachePeerRequest
	}
	return nil
}

func (x *AnnouncePersistentCachePeerRequest) GetDownloadPersistentCachePeerStartedRequest() *DownloadPersistentCachePeerStartedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerStartedRequest); ok {
		return x.DownloadPersistentCachePeerStartedRequest
	}
	return nil
}

func (x *AnnouncePersistentCachePeerRequest) GetReschedulePersistentCachePeerRequest() *ReschedulePersistentCachePeerRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentCachePeerRequest_ReschedulePersistentCachePeerRequest); ok {
		return x.ReschedulePersistentCachePeerRequest
	}
	return nil
}

func (x *AnnouncePersistentCachePeerRequest) GetDownloadPersistentCachePeerFinishedRequest() *DownloadPersistentCachePeerFinishedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerFinishedRequest); ok {
		return x.DownloadPersistentCachePeerFinishedRequest
	}
	return nil
}

func (x *AnnouncePersistentCachePeerRequest) GetDownloadPersistentCachePeerFailedRequest() *DownloadPersistentCachePeerFailedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerFailedRequest); ok {
		return x.DownloadPersistentCachePeerFailedRequest
	}
	return nil
}

func (x *AnnouncePersistentCachePeerRequest) GetDownloadPieceFinishedRequest() *DownloadPieceFinishedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentCachePeerRequest_DownloadPieceFinishedRequest); ok {
		return x.DownloadPieceFinishedRequest
	}
	return nil
}

func (x *AnnouncePersistentCachePeerRequest) GetDownloadPieceFailedRequest() *DownloadPieceFailedRequest {
	if x, ok := x.GetRequest().(*AnnouncePersistentCachePeerRequest_DownloadPieceFailedRequest); ok {
		return x.DownloadPieceFailedRequest
	}
	return nil
}

type isAnnouncePersistentCachePeerRequest_Request interface {
	isAnnouncePersistentCachePeerRequest_Request()
}

type AnnouncePersistentCachePeerRequest_RegisterPersistentCachePeerRequest struct {
	RegisterPersistentCachePeerRequest *RegisterPersistentCachePeerRequest `protobuf:"bytes,4,opt,name=register_persistent_cache_peer_request,json=registerPersistentCachePeerRequest,proto3,oneof"`
}

type AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerStartedRequest struct {
	DownloadPersistentCachePeerStartedRequest *DownloadPersistentCachePeerStartedRequest `protobuf:"bytes,5,opt,name=download_persistent_cache_peer_started_request,json=downloadPersistentCachePeerStartedRequest,proto3,oneof"`
}

type AnnouncePersistentCachePeerRequest_ReschedulePersistentCachePeerRequest struct {
	ReschedulePersistentCachePeerRequest *ReschedulePersistentCachePeerRequest `protobuf:"bytes,6,opt,name=reschedule_persistent_cache_peer_request,json=reschedulePersistentCachePeerRequest,proto3,oneof"`
}

type AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerFinishedRequest struct {
	DownloadPersistentCachePeerFinishedRequest *DownloadPersistentCachePeerFinishedRequest `protobuf:"bytes,7,opt,name=download_persistent_cache_peer_finished_request,json=downloadPersistentCachePeerFinishedRequest,proto3,oneof"`
}

type AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerFailedRequest struct {
	DownloadPersistentCachePeerFailedRequest *DownloadPersistentCachePeerFailedRequest `protobuf:"bytes,8,opt,name=download_persistent_cache_peer_failed_request,json=downloadPersistentCachePeerFailedRequest,proto3,oneof"`
}

type AnnouncePersistentCachePeerRequest_DownloadPieceFinishedRequest struct {
	DownloadPieceFinishedRequest *DownloadPieceFinishedRequest `protobuf:"bytes,9,opt,name=download_piece_finished_request,json=downloadPieceFinishedRequest,proto3,oneof"`
}

type AnnouncePersistentCachePeerRequest_DownloadPieceFailedRequest struct {
	DownloadPieceFailedRequest *DownloadPieceFailedRequest `protobuf:"bytes,10,opt,name=download_piece_failed_request,json=downloadPieceFailedRequest,proto3,oneof"`
}

func (*AnnouncePersistentCachePeerRequest_RegisterPersistentCachePeerRequest) isAnnouncePersistentCachePeerRequest_Request() {
}

func (*AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerStartedRequest) isAnnouncePersistentCachePeerRequest_Request() {
}

func (*AnnouncePersistentCachePeerRequest_ReschedulePersistentCachePeerRequest) isAnnouncePersistentCachePeerRequest_Request() {
}

func (*AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerFinishedRequest) isAnnouncePersistentCachePeerRequest_Request() {
}

func (*AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerFailedRequest) isAnnouncePersistentCachePeerRequest_Request() {
}

func (*AnnouncePersistentCachePeerRequest_DownloadPieceFinishedRequest) isAnnouncePersistentCachePeerRequest_Request() {
}

func (*AnnouncePersistentCachePeerRequest_DownloadPieceFailedRequest) isAnnouncePersistentCachePeerRequest_Request() {
}

// EmptyPersistentCacheTaskResponse represents empty persistent cache task response of AnnouncePersistentCachePeerResponse.
type EmptyPersistentCacheTaskResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*EmptyPersistentCacheTaskResponse) ProtoMessage() {}

func (x *EmptyPersistentCacheTaskResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[66]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EmptyPersistentCacheTaskResponse.ProtoReflect.Descriptor instead.
func (*EmptyPersistentCacheTaskResponse) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{66}
}

// NormalPersistentCacheTaskResponse represents normal persistent cache task response of AnnouncePersistentCachePeerResponse.
type NormalPersistentCacheTaskResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Candidate parents.
	CandidateParents []*v2.PersistentCachePeer `protobuf:"bytes,1,rep,name=candidate_parents,json=candidateParents,proto3" json:"candidate_parents,omitempty"`
}

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

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

func (*NormalPersistentCacheTaskResponse) ProtoMessage() {}

func (x *NormalPersistentCacheTaskResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[67]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NormalPersistentCacheTaskResponse.ProtoReflect.Descriptor instead.
func (*NormalPersistentCacheTaskResponse) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{67}
}

func (x *NormalPersistentCacheTaskResponse) GetCandidateParents() []*v2.PersistentCachePeer {
	if x != nil {
		return x.CandidateParents
	}
	return nil
}

// AnnouncePersistentCachePeerResponse represents response of AnnouncePersistentCachePeer.
type AnnouncePersistentCachePeerResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Response:
	//
	//	*AnnouncePersistentCachePeerResponse_EmptyPersistentCacheTaskResponse
	//	*AnnouncePersistentCachePeerResponse_NormalPersistentCacheTaskResponse
	Response isAnnouncePersistentCachePeerResponse_Response `protobuf_oneof:"response"`
}

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

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

func (*AnnouncePersistentCachePeerResponse) ProtoMessage() {}

func (x *AnnouncePersistentCachePeerResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[68]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AnnouncePersistentCachePeerResponse.ProtoReflect.Descriptor instead.
func (*AnnouncePersistentCachePeerResponse) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{68}
}

func (m *AnnouncePersistentCachePeerResponse) GetResponse() isAnnouncePersistentCachePeerResponse_Response {
	if m != nil {
		return m.Response
	}
	return nil
}

func (x *AnnouncePersistentCachePeerResponse) GetEmptyPersistentCacheTaskResponse() *EmptyPersistentCacheTaskResponse {
	if x, ok := x.GetResponse().(*AnnouncePersistentCachePeerResponse_EmptyPersistentCacheTaskResponse); ok {
		return x.EmptyPersistentCacheTaskResponse
	}
	return nil
}

func (x *AnnouncePersistentCachePeerResponse) GetNormalPersistentCacheTaskResponse() *NormalPersistentCacheTaskResponse {
	if x, ok := x.GetResponse().(*AnnouncePersistentCachePeerResponse_NormalPersistentCacheTaskResponse); ok {
		return x.NormalPersistentCacheTaskResponse
	}
	return nil
}

type isAnnouncePersistentCachePeerResponse_Response interface {
	isAnnouncePersistentCachePeerResponse_Response()
}

type AnnouncePersistentCachePeerResponse_EmptyPersistentCacheTaskResponse struct {
	EmptyPersistentCacheTaskResponse *EmptyPersistentCacheTaskResponse `protobuf:"bytes,1,opt,name=empty_persistent_cache_task_response,json=emptyPersistentCacheTaskResponse,proto3,oneof"`
}

type AnnouncePersistentCachePeerResponse_NormalPersistentCacheTaskResponse struct {
	NormalPersistentCacheTaskResponse *NormalPersistentCacheTaskResponse `protobuf:"bytes,2,opt,name=normal_persistent_cache_task_response,json=normalPersistentCacheTaskResponse,proto3,oneof"`
}

func (*AnnouncePersistentCachePeerResponse_EmptyPersistentCacheTaskResponse) isAnnouncePersistentCachePeerResponse_Response() {
}

func (*AnnouncePersistentCachePeerResponse_NormalPersistentCacheTaskResponse) isAnnouncePersistentCachePeerResponse_Response() {
}

// StatPersistentCachePeerRequest represents request of StatPersistentCachePeer.
type StatPersistentCachePeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
}

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

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

func (*StatPersistentCachePeerRequest) ProtoMessage() {}

func (x *StatPersistentCachePeerRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[69]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StatPersistentCachePeerRequest.ProtoReflect.Descriptor instead.
func (*StatPersistentCachePeerRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{69}
}

func (x *StatPersistentCachePeerRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *StatPersistentCachePeerRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

// DeletePersistentCachePeerRequest represents request of DeletePersistentCachePeer.
type DeletePersistentCachePeerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
}

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

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

func (*DeletePersistentCachePeerRequest) ProtoMessage() {}

func (x *DeletePersistentCachePeerRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[70]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeletePersistentCachePeerRequest.ProtoReflect.Descriptor instead.
func (*DeletePersistentCachePeerRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{70}
}

func (x *DeletePersistentCachePeerRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *DeletePersistentCachePeerRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

// UploadPersistentCacheTaskStartedRequest represents upload persistent cache task started request of UploadPersistentCacheTaskStartedRequest.
type UploadPersistentCacheTaskStartedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
	// Replica count of the persistent cache task.
	PersistentReplicaCount uint64 `protobuf:"varint,4,opt,name=persistent_replica_count,json=persistentReplicaCount,proto3" json:"persistent_replica_count,omitempty"`
	// Tag is used to distinguish different persistent cache tasks.
	Tag *string `protobuf:"bytes,5,opt,name=tag,proto3,oneof" json:"tag,omitempty"`
	// Application of task.
	Application *string `protobuf:"bytes,6,opt,name=application,proto3,oneof" json:"application,omitempty"`
	// Task piece length, the value needs to be greater than or equal to 4194304(4MiB)
	PieceLength uint64 `protobuf:"varint,7,opt,name=piece_length,json=pieceLength,proto3" json:"piece_length,omitempty"`
	// Task content length.
	ContentLength uint64 `protobuf:"varint,8,opt,name=content_length,json=contentLength,proto3" json:"content_length,omitempty"`
	// Task piece count.
	PieceCount uint32 `protobuf:"varint,9,opt,name=piece_count,json=pieceCount,proto3" json:"piece_count,omitempty"`
	// TTL of the persistent cache task.
	Ttl *durationpb.Duration `protobuf:"bytes,10,opt,name=ttl,proto3" json:"ttl,omitempty"`
}

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

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

func (*UploadPersistentCacheTaskStartedRequest) ProtoMessage() {}

func (x *UploadPersistentCacheTaskStartedRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[71]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UploadPersistentCacheTaskStartedRequest.ProtoReflect.Descriptor instead.
func (*UploadPersistentCacheTaskStartedRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{71}
}

func (x *UploadPersistentCacheTaskStartedRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *UploadPersistentCacheTaskStartedRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

func (x *UploadPersistentCacheTaskStartedRequest) GetPersistentReplicaCount() uint64 {
	if x != nil {
		return x.PersistentReplicaCount
	}
	return 0
}

func (x *UploadPersistentCacheTaskStartedRequest) GetTag() string {
	if x != nil && x.Tag != nil {
		return *x.Tag
	}
	return ""
}

func (x *UploadPersistentCacheTaskStartedRequest) GetApplication() string {
	if x != nil && x.Application != nil {
		return *x.Application
	}
	return ""
}

func (x *UploadPersistentCacheTaskStartedRequest) GetPieceLength() uint64 {
	if x != nil {
		return x.PieceLength
	}
	return 0
}

func (x *UploadPersistentCacheTaskStartedRequest) GetContentLength() uint64 {
	if x != nil {
		return x.ContentLength
	}
	return 0
}

func (x *UploadPersistentCacheTaskStartedRequest) GetPieceCount() uint32 {
	if x != nil {
		return x.PieceCount
	}
	return 0
}

func (x *UploadPersistentCacheTaskStartedRequest) GetTtl() *durationpb.Duration {
	if x != nil {
		return x.Ttl
	}
	return nil
}

// UploadPersistentCacheTaskFinishedRequest represents upload persistent cache task finished request of UploadPersistentCacheTaskFinishedRequest.
type UploadPersistentCacheTaskFinishedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
}

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

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

func (*UploadPersistentCacheTaskFinishedRequest) ProtoMessage() {}

func (x *UploadPersistentCacheTaskFinishedRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[72]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UploadPersistentCacheTaskFinishedRequest.ProtoReflect.Descriptor instead.
func (*UploadPersistentCacheTaskFinishedRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{72}
}

func (x *UploadPersistentCacheTaskFinishedRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *UploadPersistentCacheTaskFinishedRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

// UploadPersistentCacheTaskFailedRequest represents upload persistent cache task failed request of UploadPersistentCacheTaskFailedRequest.
type UploadPersistentCacheTaskFailedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// Peer id.
	PeerId string `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
	// The description of the upload failed.
	Description *string `protobuf:"bytes,4,opt,name=description,proto3,oneof" json:"description,omitempty"`
}

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

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

func (*UploadPersistentCacheTaskFailedRequest) ProtoMessage() {}

func (x *UploadPersistentCacheTaskFailedRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[73]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UploadPersistentCacheTaskFailedRequest.ProtoReflect.Descriptor instead.
func (*UploadPersistentCacheTaskFailedRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{73}
}

func (x *UploadPersistentCacheTaskFailedRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *UploadPersistentCacheTaskFailedRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

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

func (x *UploadPersistentCacheTaskFailedRequest) GetDescription() string {
	if x != nil && x.Description != nil {
		return *x.Description
	}
	return ""
}

// StatPersistentCacheTaskRequest represents request of StatPersistentCacheTask.
type StatPersistentCacheTaskRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
}

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

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

func (*StatPersistentCacheTaskRequest) ProtoMessage() {}

func (x *StatPersistentCacheTaskRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[74]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StatPersistentCacheTaskRequest.ProtoReflect.Descriptor instead.
func (*StatPersistentCacheTaskRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{74}
}

func (x *StatPersistentCacheTaskRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *StatPersistentCacheTaskRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

// DeletePersistentCacheTaskRequest represents request of DeletePersistentCacheTask.
type DeletePersistentCacheTaskRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Host id.
	HostId string `protobuf:"bytes,1,opt,name=host_id,json=hostId,proto3" json:"host_id,omitempty"`
	// Task id.
	TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
}

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

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

func (*DeletePersistentCacheTaskRequest) ProtoMessage() {}

func (x *DeletePersistentCacheTaskRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[75]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeletePersistentCacheTaskRequest.ProtoReflect.Descriptor instead.
func (*DeletePersistentCacheTaskRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{75}
}

func (x *DeletePersistentCacheTaskRequest) GetHostId() string {
	if x != nil {
		return x.HostId
	}
	return ""
}

func (x *DeletePersistentCacheTaskRequest) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

// PreheatImageRequest represents request of PreheatImage.
type PreheatImageRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// URL is the image manifest url for preheating.
	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	// Piece Length is the piece length(bytes) for downloading file. The value needs to
	// be greater than 4MiB (4,194,304 bytes) and less than 64MiB (67,108,864 bytes),
	// for example: 4194304(4mib), 8388608(8mib). If the piece length is not specified,
	// the piece length will be calculated according to the file size.
	PieceLength *uint64 `protobuf:"varint,2,opt,name=piece_length,json=pieceLength,proto3,oneof" json:"piece_length,omitempty"`
	// Tag is the tag for preheating.
	Tag *string `protobuf:"bytes,3,opt,name=tag,proto3,oneof" json:"tag,omitempty"`
	// Application is the application string for preheating.
	Application *string `protobuf:"bytes,4,opt,name=application,proto3,oneof" json:"application,omitempty"`
	// Filtered query params to generate the task id.
	// When filter is ["Signature", "Expires", "ns"], for example:
	// http://example.com/xyz?Expires=e1&Signature=s1&ns=docker.io and http://example.com/xyz?Expires=e2&Signature=s2&ns=docker.io
	// will generate the same task id.
	// Default value includes the filtered query params of s3, gcs, oss, obs, cos.
	FilteredQueryParams []string `protobuf:"bytes,5,rep,name=filtered_query_params,json=filteredQueryParams,proto3" json:"filtered_query_params,omitempty"`
	// Header is the http headers for authentication.
	Header map[string]string `protobuf:"bytes,6,rep,name=header,proto3" json:"header,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Username is the username for authentication.
	Username *string `protobuf:"bytes,7,opt,name=username,proto3,oneof" json:"username,omitempty"`
	// Password is the password for authentication.
	Password *string `protobuf:"bytes,8,opt,name=password,proto3,oneof" json:"password,omitempty"`
	// Platform is the platform for preheating, such as linux/amd64, linux/arm64, etc.
	Platform *string `protobuf:"bytes,9,opt,name=platform,proto3,oneof" json:"platform,omitempty"`
	// Scope is the scope for preheating, it can be one of the following values:
	// - single_seed_peer: preheat from a single seed peer.
	// - all_seed_peers: preheat from all seed peers.
	// - all_peers: preheat from all available peers.
	Scope string `protobuf:"bytes,10,opt,name=scope,proto3" json:"scope,omitempty"`
	// IPs is a list of specific peer IPs for preheating.
	// This field has the highest priority: if provided, both 'Count' and 'Percentage' will be ignored.
	// Applies to 'all_peers' and 'all_seed_peers' scopes.
	Ips []string `protobuf:"bytes,11,rep,name=ips,proto3" json:"ips,omitempty"`
	// Percentage is the percentage of available peers to preheat.
	// This field has the lowest priority and is only used if both 'IPs' and 'Count' are not provided.
	// It must be a value between 1 and 100 (inclusive) if provided.
	// Applies to 'all_peers' and 'all_seed_peers' scopes.
	Percentage *uint32 `protobuf:"varint,12,opt,name=percentage,proto3,oneof" json:"percentage,omitempty"`
	// Count is the desired number of peers to preheat.
	// This field is used only when 'IPs' is not specified. It has priority over 'Percentage'.
	// It must be a value between 1 and 200 (inclusive) if provided.
	// Applies to 'all_peers' and 'all_seed_peers' scopes.
	Count *uint32 `protobuf:"varint,13,opt,name=count,proto3,oneof" json:"count,omitempty"`
	// ConcurrentTaskCount specifies the maximum number of tasks (e.g., image layers) to preheat concurrently.
	// For example, if preheating 100 layers with ConcurrentTaskCount set to 10, up to 10 layers are processed simultaneously.
	// If ConcurrentPeerCount is 10 for 1000 peers, each layer is preheated by 10 peers concurrently.
	// Default is 8, maximum is 100.
	ConcurrentTaskCount *int64 `protobuf:"varint,14,opt,name=concurrent_task_count,json=concurrentTaskCount,proto3,oneof" json:"concurrent_task_count,omitempty"`
	// ConcurrentPeerCount specifies the maximum number of peers to preheat concurrently for a single task (e.g., an image layer).
	// For example, if preheating a layer with ConcurrentPeerCount set to 10, up to 10 peers process that layer simultaneously.
	// Default is 500, maximum is 1000.
	ConcurrentPeerCount *int64 `protobuf:"varint,15,opt,name=concurrent_peer_count,json=concurrentPeerCount,proto3,oneof" json:"concurrent_peer_count,omitempty"`
	// Timeout is the timeout for preheating, default is 30 minutes.
	Timeout *durationpb.Duration `protobuf:"bytes,16,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"`
	// Preheat priority.
	Priority v2.Priority `protobuf:"varint,17,opt,name=priority,proto3,enum=common.v2.Priority" json:"priority,omitempty"`
	// certificate_chain is the client certs with DER format for the backend client.
	CertificateChain [][]byte `protobuf:"bytes,18,rep,name=certificate_chain,json=certificateChain,proto3" json:"certificate_chain,omitempty"`
	// insecure_skip_verify indicates whether to skip TLS verification.
	InsecureSkipVerify bool `protobuf:"varint,19,opt,name=insecure_skip_verify,json=insecureSkipVerify,proto3" json:"insecure_skip_verify,omitempty"`
}

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

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

func (*PreheatImageRequest) ProtoMessage() {}

func (x *PreheatImageRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[76]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PreheatImageRequest.ProtoReflect.Descriptor instead.
func (*PreheatImageRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{76}
}

func (x *PreheatImageRequest) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *PreheatImageRequest) GetPieceLength() uint64 {
	if x != nil && x.PieceLength != nil {
		return *x.PieceLength
	}
	return 0
}

func (x *PreheatImageRequest) GetTag() string {
	if x != nil && x.Tag != nil {
		return *x.Tag
	}
	return ""
}

func (x *PreheatImageRequest) GetApplication() string {
	if x != nil && x.Application != nil {
		return *x.Application
	}
	return ""
}

func (x *PreheatImageRequest) GetFilteredQueryParams() []string {
	if x != nil {
		return x.FilteredQueryParams
	}
	return nil
}

func (x *PreheatImageRequest) GetHeader() map[string]string {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *PreheatImageRequest) GetUsername() string {
	if x != nil && x.Username != nil {
		return *x.Username
	}
	return ""
}

func (x *PreheatImageRequest) GetPassword() string {
	if x != nil && x.Password != nil {
		return *x.Password
	}
	return ""
}

func (x *PreheatImageRequest) GetPlatform() string {
	if x != nil && x.Platform != nil {
		return *x.Platform
	}
	return ""
}

func (x *PreheatImageRequest) GetScope() string {
	if x != nil {
		return x.Scope
	}
	return ""
}

func (x *PreheatImageRequest) GetIps() []string {
	if x != nil {
		return x.Ips
	}
	return nil
}

func (x *PreheatImageRequest) GetPercentage() uint32 {
	if x != nil && x.Percentage != nil {
		return *x.Percentage
	}
	return 0
}

func (x *PreheatImageRequest) GetCount() uint32 {
	if x != nil && x.Count != nil {
		return *x.Count
	}
	return 0
}

func (x *PreheatImageRequest) GetConcurrentTaskCount() int64 {
	if x != nil && x.ConcurrentTaskCount != nil {
		return *x.ConcurrentTaskCount
	}
	return 0
}

func (x *PreheatImageRequest) GetConcurrentPeerCount() int64 {
	if x != nil && x.ConcurrentPeerCount != nil {
		return *x.ConcurrentPeerCount
	}
	return 0
}

func (x *PreheatImageRequest) GetTimeout() *durationpb.Duration {
	if x != nil {
		return x.Timeout
	}
	return nil
}

func (x *PreheatImageRequest) GetPriority() v2.Priority {
	if x != nil {
		return x.Priority
	}
	return v2.Priority(0)
}

func (x *PreheatImageRequest) GetCertificateChain() [][]byte {
	if x != nil {
		return x.CertificateChain
	}
	return nil
}

func (x *PreheatImageRequest) GetInsecureSkipVerify() bool {
	if x != nil {
		return x.InsecureSkipVerify
	}
	return false
}

// StatImageRequest represents request of StatImage.
type StatImageRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// URL is the image manifest url for preheating.
	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	// Piece Length is the piece length(bytes) for downloading file. The value needs to
	// be greater than 4MiB (4,194,304 bytes) and less than 64MiB (67,108,864 bytes),
	// for example: 4194304(4mib), 8388608(8mib). If the piece length is not specified,
	// the piece length will be calculated according to the file size.
	PieceLength *uint64 `protobuf:"varint,2,opt,name=piece_length,json=pieceLength,proto3,oneof" json:"piece_length,omitempty"`
	// Tag is the tag for preheating.
	Tag *string `protobuf:"bytes,3,opt,name=tag,proto3,oneof" json:"tag,omitempty"`
	// Application is the application string for preheating.
	Application *string `protobuf:"bytes,4,opt,name=application,proto3,oneof" json:"application,omitempty"`
	// Filtered query params to generate the task id.
	// When filter is ["Signature", "Expires", "ns"], for example:
	// http://example.com/xyz?Expires=e1&Signature=s1&ns=docker.io and http://example.com/xyz?Expires=e2&Signature=s2&ns=docker.io
	// will generate the same task id.
	// Default value includes the filtered query params of s3, gcs, oss, obs, cos.
	FilteredQueryParams []string `protobuf:"bytes,5,rep,name=filtered_query_params,json=filteredQueryParams,proto3" json:"filtered_query_params,omitempty"`
	// Header is the http headers for authentication.
	Header map[string]string `protobuf:"bytes,6,rep,name=header,proto3" json:"header,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Username is the username for authentication.
	Username *string `protobuf:"bytes,7,opt,name=username,proto3,oneof" json:"username,omitempty"`
	// Password is the password for authentication.
	Password *string `protobuf:"bytes,8,opt,name=password,proto3,oneof" json:"password,omitempty"`
	// Platform is the platform for preheating, such as linux/amd64, linux/arm64, etc.
	Platform *string `protobuf:"bytes,9,opt,name=platform,proto3,oneof" json:"platform,omitempty"`
	// ConcurrentLayerCount specifies the maximum number of layers to get concurrently.
	// For example, if stat 100 layers with ConcurrentLayerCount set to 10, up to 10 layers are processed simultaneously.
	// If ConcurrentPeerCount is 10 for 1000 peers, each layer is stated by 10 peers concurrently.
	// Default is 8, maximum is 100.
	ConcurrentLayerCount *int64 `protobuf:"varint,10,opt,name=concurrent_layer_count,json=concurrentLayerCount,proto3,oneof" json:"concurrent_layer_count,omitempty"`
	// ConcurrentPeerCount specifies the maximum number of peers stat concurrently for a single task (e.g., an image layer).
	// For example, if stat a layer with ConcurrentPeerCount set to 10, up to 10 peers process that layer simultaneously.
	// Default is 500, maximum is 1000.
	ConcurrentPeerCount *int64 `protobuf:"varint,11,opt,name=concurrent_peer_count,json=concurrentPeerCount,proto3,oneof" json:"concurrent_peer_count,omitempty"`
	// Timeout is the timeout for preheating, default is 30 minutes.
	Timeout *durationpb.Duration `protobuf:"bytes,12,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"`
	// certificate_chain is the client certs with DER format for the backend client.
	CertificateChain [][]byte `protobuf:"bytes,13,rep,name=certificate_chain,json=certificateChain,proto3" json:"certificate_chain,omitempty"`
	// insecure_skip_verify indicates whether to skip TLS verification.
	InsecureSkipVerify bool `protobuf:"varint,14,opt,name=insecure_skip_verify,json=insecureSkipVerify,proto3" json:"insecure_skip_verify,omitempty"`
}

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

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

func (*StatImageRequest) ProtoMessage() {}

func (x *StatImageRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[77]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StatImageRequest.ProtoReflect.Descriptor instead.
func (*StatImageRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{77}
}

func (x *StatImageRequest) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *StatImageRequest) GetPieceLength() uint64 {
	if x != nil && x.PieceLength != nil {
		return *x.PieceLength
	}
	return 0
}

func (x *StatImageRequest) GetTag() string {
	if x != nil && x.Tag != nil {
		return *x.Tag
	}
	return ""
}

func (x *StatImageRequest) GetApplication() string {
	if x != nil && x.Application != nil {
		return *x.Application
	}
	return ""
}

func (x *StatImageRequest) GetFilteredQueryParams() []string {
	if x != nil {
		return x.FilteredQueryParams
	}
	return nil
}

func (x *StatImageRequest) GetHeader() map[string]string {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *StatImageRequest) GetUsername() string {
	if x != nil && x.Username != nil {
		return *x.Username
	}
	return ""
}

func (x *StatImageRequest) GetPassword() string {
	if x != nil && x.Password != nil {
		return *x.Password
	}
	return ""
}

func (x *StatImageRequest) GetPlatform() string {
	if x != nil && x.Platform != nil {
		return *x.Platform
	}
	return ""
}

func (x *StatImageRequest) GetConcurrentLayerCount() int64 {
	if x != nil && x.ConcurrentLayerCount != nil {
		return *x.ConcurrentLayerCount
	}
	return 0
}

func (x *StatImageRequest) GetConcurrentPeerCount() int64 {
	if x != nil && x.ConcurrentPeerCount != nil {
		return *x.ConcurrentPeerCount
	}
	return 0
}

func (x *StatImageRequest) GetTimeout() *durationpb.Duration {
	if x != nil {
		return x.Timeout
	}
	return nil
}

func (x *StatImageRequest) GetCertificateChain() [][]byte {
	if x != nil {
		return x.CertificateChain
	}
	return nil
}

func (x *StatImageRequest) GetInsecureSkipVerify() bool {
	if x != nil {
		return x.InsecureSkipVerify
	}
	return false
}

// StatImageResponse represents response of StatImage.
type StatImageResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Image is the image information.
	Image *Image `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
	// Peers is the peers that have downloaded the image.
	Peers []*PeerImage `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"`
}

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

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

func (*StatImageResponse) ProtoMessage() {}

func (x *StatImageResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[78]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StatImageResponse.ProtoReflect.Descriptor instead.
func (*StatImageResponse) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{78}
}

func (x *StatImageResponse) GetImage() *Image {
	if x != nil {
		return x.Image
	}
	return nil
}

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

// PeerImage represents a peer in the get image job.
type PeerImage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// IP is the IP address of the peer.
	Ip string `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
	// Hostname is the hostname of the peer.
	Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"`
	// CachedLayers is the list of layers that the peer has downloaded.
	CachedLayers []*Layer `protobuf:"bytes,3,rep,name=cached_layers,json=cachedLayers,proto3" json:"cached_layers,omitempty"`
}

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

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

func (*PeerImage) ProtoMessage() {}

func (x *PeerImage) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[79]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PeerImage.ProtoReflect.Descriptor instead.
func (*PeerImage) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{79}
}

func (x *PeerImage) GetIp() string {
	if x != nil {
		return x.Ip
	}
	return ""
}

func (x *PeerImage) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

func (x *PeerImage) GetCachedLayers() []*Layer {
	if x != nil {
		return x.CachedLayers
	}
	return nil
}

// Image represents the image information.
type Image struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Layers is the list of layers of the image.
	Layers []*Layer `protobuf:"bytes,1,rep,name=layers,proto3" json:"layers,omitempty"`
}

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

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

func (*Image) ProtoMessage() {}

func (x *Image) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[80]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Image.ProtoReflect.Descriptor instead.
func (*Image) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{80}
}

func (x *Image) GetLayers() []*Layer {
	if x != nil {
		return x.Layers
	}
	return nil
}

// Layer represents a layer of the image.
type Layer struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// URL is the URL of the layer.
	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	// IsFinished indicates whether the layer has finished downloading on the peer.
	IsFinished *bool `protobuf:"varint,2,opt,name=is_finished,json=isFinished,proto3,oneof" json:"is_finished,omitempty"`
}

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

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

func (*Layer) ProtoMessage() {}

func (x *Layer) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[81]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Layer.ProtoReflect.Descriptor instead.
func (*Layer) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{81}
}

func (x *Layer) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *Layer) GetIsFinished() bool {
	if x != nil && x.IsFinished != nil {
		return *x.IsFinished
	}
	return false
}

// PreheatFileRequest represents request of PreheatFile.
type PreheatFileRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// URL is the file url for preheating.
	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	// Piece Length is the piece length(bytes) for downloading file. The value needs to
	// be greater than 4MiB (4,194,304 bytes) and less than 64MiB (67,108,864 bytes),
	// for example: 4194304(4mib), 8388608(8mib). If the piece length is not specified,
	// the piece length will be calculated according to the file size.
	PieceLength *uint64 `protobuf:"varint,2,opt,name=piece_length,json=pieceLength,proto3,oneof" json:"piece_length,omitempty"`
	// Tag is the tag for preheating.
	Tag *string `protobuf:"bytes,3,opt,name=tag,proto3,oneof" json:"tag,omitempty"`
	// Application is the application string for preheating.
	Application *string `protobuf:"bytes,4,opt,name=application,proto3,oneof" json:"application,omitempty"`
	// Filtered query params to generate the task id.
	// When filter is ["Signature", "Expires", "ns"], for example:
	// http://example.com/xyz?Expires=e1&Signature=s1&ns=docker.io and http://example.com/xyz?Expires=e2&Signature=s2&ns=docker.io
	// will generate the same task id.
	// Default value includes the filtered query params of s3, gcs, oss, obs, cos.
	FilteredQueryParams []string `protobuf:"bytes,5,rep,name=filtered_query_params,json=filteredQueryParams,proto3" json:"filtered_query_params,omitempty"`
	// Header is the http headers for authentication.
	Header map[string]string `protobuf:"bytes,6,rep,name=header,proto3" json:"header,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Scope is the scope for preheating, it can be one of the following values:
	// - single_seed_peer: preheat from a single seed peer.
	// - all_peers: preheat from all available peers.
	// - all_seed_peers: preheat from all seed peers.
	Scope string `protobuf:"bytes,7,opt,name=scope,proto3" json:"scope,omitempty"`
	// IPs is a list of specific peer IPs for preheating.
	// This field has the highest priority: if provided, both 'Count' and 'Percentage' will be ignored.
	// Applies to 'all_peers' and 'all_seed_peers' scopes.
	Ips []string `protobuf:"bytes,8,rep,name=ips,proto3" json:"ips,omitempty"`
	// Percentage is the percentage of available peers to preheat.
	// This field has the lowest priority and is only used if both 'IPs' and 'Count' are not provided.
	// It must be a value between 1 and 100 (inclusive) if provided.
	// Applies to 'all_peers' and 'all_seed_peers' scopes.
	Percentage *uint32 `protobuf:"varint,9,opt,name=percentage,proto3,oneof" json:"percentage,omitempty"`
	// Count is the desired number of peers to preheat.
	// This field is used only when 'IPs' is not specified. It has priority over 'Percentage'.
	// It must be a value between 1 and 200 (inclusive) if provided.
	// Applies to 'all_peers' and 'all_seed_peers' scopes.
	Count *uint32 `protobuf:"varint,10,opt,name=count,proto3,oneof" json:"count,omitempty"`
	// ConcurrentTaskCount specifies the maximum number of tasks to preheat concurrently.
	// For example, if preheating 100 files with ConcurrentTaskCount set to 10, up to 10 files are processed simultaneously.
	// If ConcurrentPeerCount is 10 for 1000 peers, each file is preheated by 10 peers concurrently.
	// Default is 8, maximum is 100.
	ConcurrentTaskCount *int64 `protobuf:"varint,11,opt,name=concurrent_task_count,json=concurrentTaskCount,proto3,oneof" json:"concurrent_task_count,omitempty"`
	// ConcurrentPeerCount specifies the maximum number of peers to preheat concurrently for a single task.
	// For example, if preheating a file with ConcurrentPeerCount set to 10, up to 10 peers process that file simultaneously.
	// Default is 500, maximum is 1000.
	ConcurrentPeerCount *int64 `protobuf:"varint,12,opt,name=concurrent_peer_count,json=concurrentPeerCount,proto3,oneof" json:"concurrent_peer_count,omitempty"`
	// Timeout is the timeout for preheating, default is 30 minutes.
	Timeout *durationpb.Duration `protobuf:"bytes,13,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"`
	// Preheat priority.
	Priority v2.Priority `protobuf:"varint,14,opt,name=priority,proto3,enum=common.v2.Priority" json:"priority,omitempty"`
	// certificate_chain is the client certs with DER format for the backend client.
	CertificateChain [][]byte `protobuf:"bytes,15,rep,name=certificate_chain,json=certificateChain,proto3" json:"certificate_chain,omitempty"`
	// insecure_skip_verify indicates whether to skip TLS verification.
	InsecureSkipVerify bool `protobuf:"varint,16,opt,name=insecure_skip_verify,json=insecureSkipVerify,proto3" json:"insecure_skip_verify,omitempty"`
	// Object storage protocol information.
	ObjectStorage *v2.ObjectStorage `protobuf:"bytes,17,opt,name=object_storage,json=objectStorage,proto3,oneof" json:"object_storage,omitempty"`
	// HDFS protocol information.
	Hdfs *v2.HDFS `protobuf:"bytes,18,opt,name=hdfs,proto3,oneof" json:"hdfs,omitempty"`
	// output_path is the path to preheat the file or directory to destination.
	OutputPath *string `protobuf:"bytes,19,opt,name=output_path,json=outputPath,proto3,oneof" json:"output_path,omitempty"`
}

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

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

func (*PreheatFileRequest) ProtoMessage() {}

func (x *PreheatFileRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[82]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PreheatFileRequest.ProtoReflect.Descriptor instead.
func (*PreheatFileRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{82}
}

func (x *PreheatFileRequest) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *PreheatFileRequest) GetPieceLength() uint64 {
	if x != nil && x.PieceLength != nil {
		return *x.PieceLength
	}
	return 0
}

func (x *PreheatFileRequest) GetTag() string {
	if x != nil && x.Tag != nil {
		return *x.Tag
	}
	return ""
}

func (x *PreheatFileRequest) GetApplication() string {
	if x != nil && x.Application != nil {
		return *x.Application
	}
	return ""
}

func (x *PreheatFileRequest) GetFilteredQueryParams() []string {
	if x != nil {
		return x.FilteredQueryParams
	}
	return nil
}

func (x *PreheatFileRequest) GetHeader() map[string]string {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *PreheatFileRequest) GetScope() string {
	if x != nil {
		return x.Scope
	}
	return ""
}

func (x *PreheatFileRequest) GetIps() []string {
	if x != nil {
		return x.Ips
	}
	return nil
}

func (x *PreheatFileRequest) GetPercentage() uint32 {
	if x != nil && x.Percentage != nil {
		return *x.Percentage
	}
	return 0
}

func (x *PreheatFileRequest) GetCount() uint32 {
	if x != nil && x.Count != nil {
		return *x.Count
	}
	return 0
}

func (x *PreheatFileRequest) GetConcurrentTaskCount() int64 {
	if x != nil && x.ConcurrentTaskCount != nil {
		return *x.ConcurrentTaskCount
	}
	return 0
}

func (x *PreheatFileRequest) GetConcurrentPeerCount() int64 {
	if x != nil && x.ConcurrentPeerCount != nil {
		return *x.ConcurrentPeerCount
	}
	return 0
}

func (x *PreheatFileRequest) GetTimeout() *durationpb.Duration {
	if x != nil {
		return x.Timeout
	}
	return nil
}

func (x *PreheatFileRequest) GetPriority() v2.Priority {
	if x != nil {
		return x.Priority
	}
	return v2.Priority(0)
}

func (x *PreheatFileRequest) GetCertificateChain() [][]byte {
	if x != nil {
		return x.CertificateChain
	}
	return nil
}

func (x *PreheatFileRequest) GetInsecureSkipVerify() bool {
	if x != nil {
		return x.InsecureSkipVerify
	}
	return false
}

func (x *PreheatFileRequest) GetObjectStorage() *v2.ObjectStorage {
	if x != nil {
		return x.ObjectStorage
	}
	return nil
}

func (x *PreheatFileRequest) GetHdfs() *v2.HDFS {
	if x != nil {
		return x.Hdfs
	}
	return nil
}

func (x *PreheatFileRequest) GetOutputPath() string {
	if x != nil && x.OutputPath != nil {
		return *x.OutputPath
	}
	return ""
}

// StatFileRequest represents request of StatFile.
type StatFileRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// URL is the file url for stat.
	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	// Piece Length is the piece length(bytes) for downloading file. The value needs to
	// be greater than 4MiB (4,194,304 bytes) and less than 64MiB (67,108,864 bytes),
	// for example: 4194304(4mib), 8388608(8mib). If the piece length is not specified,
	// the piece length will be calculated according to the file size.
	PieceLength *uint64 `protobuf:"varint,2,opt,name=piece_length,json=pieceLength,proto3,oneof" json:"piece_length,omitempty"`
	// Tag is the tag for stat.
	Tag *string `protobuf:"bytes,3,opt,name=tag,proto3,oneof" json:"tag,omitempty"`
	// Application is the application string for stat.
	Application *string `protobuf:"bytes,4,opt,name=application,proto3,oneof" json:"application,omitempty"`
	// Filtered query params to generate the task id.
	// When filter is ["Signature", "Expires", "ns"], for example:
	// http://example.com/xyz?Expires=e1&Signature=s1&ns=docker.io and http://example.com/xyz?Expires=e2&Signature=s2&ns=docker.io
	// will generate the same task id.
	// Default value includes the filtered query params of s3, gcs, oss, obs, cos.
	FilteredQueryParams []string `protobuf:"bytes,5,rep,name=filtered_query_params,json=filteredQueryParams,proto3" json:"filtered_query_params,omitempty"`
	// Header is the http headers for authentication.
	Header map[string]string `protobuf:"bytes,6,rep,name=header,proto3" json:"header,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// ConcurrentPeerCount specifies the maximum number of peers stat concurrently for a single task.
	// For example, if stat a file with ConcurrentPeerCount set to 10, up to 10 peers process that file simultaneously.
	// Default is 500, maximum is 1000.
	ConcurrentPeerCount *int64 `protobuf:"varint,7,opt,name=concurrent_peer_count,json=concurrentPeerCount,proto3,oneof" json:"concurrent_peer_count,omitempty"`
	// Timeout is the timeout for stat, default is 30 minutes.
	Timeout *durationpb.Duration `protobuf:"bytes,8,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"`
	// certificate_chain is the client certs with DER format for the backend client.
	CertificateChain [][]byte `protobuf:"bytes,9,rep,name=certificate_chain,json=certificateChain,proto3" json:"certificate_chain,omitempty"`
	// insecure_skip_verify indicates whether to skip TLS verification.
	InsecureSkipVerify bool `protobuf:"varint,10,opt,name=insecure_skip_verify,json=insecureSkipVerify,proto3" json:"insecure_skip_verify,omitempty"`
	// Object storage protocol information.
	ObjectStorage *v2.ObjectStorage `protobuf:"bytes,11,opt,name=object_storage,json=objectStorage,proto3,oneof" json:"object_storage,omitempty"`
	// HDFS protocol information.
	Hdfs *v2.HDFS `protobuf:"bytes,12,opt,name=hdfs,proto3,oneof" json:"hdfs,omitempty"`
}

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

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

func (*StatFileRequest) ProtoMessage() {}

func (x *StatFileRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[83]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StatFileRequest.ProtoReflect.Descriptor instead.
func (*StatFileRequest) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{83}
}

func (x *StatFileRequest) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *StatFileRequest) GetPieceLength() uint64 {
	if x != nil && x.PieceLength != nil {
		return *x.PieceLength
	}
	return 0
}

func (x *StatFileRequest) GetTag() string {
	if x != nil && x.Tag != nil {
		return *x.Tag
	}
	return ""
}

func (x *StatFileRequest) GetApplication() string {
	if x != nil && x.Application != nil {
		return *x.Application
	}
	return ""
}

func (x *StatFileRequest) GetFilteredQueryParams() []string {
	if x != nil {
		return x.FilteredQueryParams
	}
	return nil
}

func (x *StatFileRequest) GetHeader() map[string]string {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *StatFileRequest) GetConcurrentPeerCount() int64 {
	if x != nil && x.ConcurrentPeerCount != nil {
		return *x.ConcurrentPeerCount
	}
	return 0
}

func (x *StatFileRequest) GetTimeout() *durationpb.Duration {
	if x != nil {
		return x.Timeout
	}
	return nil
}

func (x *StatFileRequest) GetCertificateChain() [][]byte {
	if x != nil {
		return x.CertificateChain
	}
	return nil
}

func (x *StatFileRequest) GetInsecureSkipVerify() bool {
	if x != nil {
		return x.InsecureSkipVerify
	}
	return false
}

func (x *StatFileRequest) GetObjectStorage() *v2.ObjectStorage {
	if x != nil {
		return x.ObjectStorage
	}
	return nil
}

func (x *StatFileRequest) GetHdfs() *v2.HDFS {
	if x != nil {
		return x.Hdfs
	}
	return nil
}

// StatFileResponse represents response of StatFile.
type StatFileResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Peers is the peers that have downloaded the file.
	Peers []*PeerFile `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"`
}

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

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

func (*StatFileResponse) ProtoMessage() {}

func (x *StatFileResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[84]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StatFileResponse.ProtoReflect.Descriptor instead.
func (*StatFileResponse) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{84}
}

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

// PeerFile represents a peer in the get file job.
type PeerFile struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// IP is the IP address of the peer.
	Ip string `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
	// Hostname is the hostname of the peer.
	Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"`
	// CachedFiles is the list of files that the peer has downloaded.
	CachedFiles []*File `protobuf:"bytes,3,rep,name=cached_files,json=cachedFiles,proto3" json:"cached_files,omitempty"`
}

func (x *PeerFile) Reset() {
	*x = PeerFile{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[85]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PeerFile) ProtoMessage() {}

func (x *PeerFile) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[85]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PeerFile.ProtoReflect.Descriptor instead.
func (*PeerFile) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{85}
}

func (x *PeerFile) GetIp() string {
	if x != nil {
		return x.Ip
	}
	return ""
}

func (x *PeerFile) GetHostname() string {
	if x != nil {
		return x.Hostname
	}
	return ""
}

func (x *PeerFile) GetCachedFiles() []*File {
	if x != nil {
		return x.CachedFiles
	}
	return nil
}

// File represents the file information.
type File struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// URL is the url of the file.
	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	// IsFinished indicates whether the file has finished downloading on the peer.
	IsFinished *bool `protobuf:"varint,2,opt,name=is_finished,json=isFinished,proto3,oneof" json:"is_finished,omitempty"`
}

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

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

func (*File) ProtoMessage() {}

func (x *File) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[86]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use File.ProtoReflect.Descriptor instead.
func (*File) Descriptor() ([]byte, []int) {
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{86}
}

func (x *File) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *File) GetIsFinished() bool {
	if x != nil && x.IsFinished != nil {
		return *x.IsFinished
	}
	return false
}

var File_pkg_apis_scheduler_v2_scheduler_proto protoreflect.FileDescriptor

var file_pkg_apis_scheduler_v2_scheduler_proto_rawDesc = []byte{
	0x0a, 0x25, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64,
	0x75, 0x6c, 0x65, 0x72, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
	0x65, 0x72, 0x2e, 0x76, 0x32, 0x1a, 0x1f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x73,
	0x2f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2f, 0x76, 0x32,
	0x2f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d,
	0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x50, 0x0a, 0x13, 0x52, 0x65, 0x67,
	0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x39, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44,
	0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10,
	0x01, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x44,
	0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74,
	0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6b, 0x0a, 0x26, 0x44, 0x6f, 0x77,
	0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10,
	0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x98, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x3c, 0x0a, 0x11, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61,
	0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x10, 0x63, 0x61,
	0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31,
	0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48,
	0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01,
	0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x22, 0x46, 0x0a, 0x1b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65,
	0x72, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x0e, 0x63, 0x6f,
	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0b, 0x70, 0x69,
	0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x52, 0x0a, 0x27, 0x44, 0x6f, 0x77,
	0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03,
	0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68,
	0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x5e, 0x0a,
	0x19, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69,
	0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64,
	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a,
	0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6a, 0x0a,
	0x25, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63,
	0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07,
	0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x1c, 0x44, 0x6f, 0x77,
	0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68,
	0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x05, 0x70, 0x69, 0x65,
	0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
	0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a,
	0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x70, 0x69, 0x65, 0x63, 0x65, 0x22, 0x5c, 0x0a, 0x28, 0x44,
	0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b,
	0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x05, 0x70, 0x69, 0x65, 0x63, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
	0x76, 0x32, 0x2e, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02,
	0x10, 0x01, 0x52, 0x05, 0x70, 0x69, 0x65, 0x63, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x1a, 0x44, 0x6f,
	0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65,
	0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63,
	0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00,
	0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01,
	0x12, 0x24, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x61,
	0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72,
	0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6f,
	0x72, 0x61, 0x72, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e,
	0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xde, 0x01, 0x0a, 0x26, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
	0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x26, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4e,
	0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b,
	0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x65, 0x72, 0x72, 0x6f,
	0x72, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x63, 0x6b,
	0x65, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x34,
	0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x18, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x76,
	0x32, 0x2e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x75, 0x6e, 0x6b,
	0x6e, 0x6f, 0x77, 0x6e, 0x42, 0x0f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x03, 0xf8, 0x42, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f,
	0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xed, 0x0c, 0x0a, 0x13, 0x41, 0x6e, 0x6e, 0x6f, 0x75,
	0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20,
	0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64,
	0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b,
	0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65,
	0x65, 0x72, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x15, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
	0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x13, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
	0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6d, 0x0a,
	0x1d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x73,
	0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
	0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72,
	0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00,
	0x52, 0x1a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74,
	0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x94, 0x01, 0x0a,
	0x2c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x62,
	0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42,
	0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74,
	0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x26, 0x64, 0x6f, 0x77,
	0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x5d, 0x0a, 0x17, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
	0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
	0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x65,
	0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x15, 0x72, 0x65, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x70, 0x0a, 0x1e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70,
	0x65, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
	0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
	0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x97, 0x01, 0x0a, 0x2d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
	0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e,
	0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x27, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50,
	0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46,
	0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6a,
	0x0a, 0x1c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f,
	0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
	0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72,
	0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
	0x19, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69,
	0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x91, 0x01, 0x0a, 0x2b, 0x64,
	0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x63,
	0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c,
	0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x33, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b,
	0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x25, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
	0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x73,
	0x0a, 0x1f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65,
	0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75,
	0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50,
	0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50,
	0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x9a, 0x01, 0x0a, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
	0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e,
	0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x28, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
	0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x6d, 0x0a, 0x1d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65,
	0x63, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75,
	0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50,
	0x69, 0x65, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x48, 0x00, 0x52, 0x1a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65,
	0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x94, 0x01, 0x0a, 0x2c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65,
	0x63, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
	0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69,
	0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46,
	0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x26,
	0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63,
	0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x0e, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x13, 0x0a, 0x11, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x54,
	0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x12, 0x4e,
	0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x46, 0x0a, 0x11, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70,
	0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63,
	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x42, 0x08, 0xfa,
	0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x10, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61,
	0x74, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x5d, 0x0a, 0x18, 0x4e, 0x65, 0x65,
	0x64, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72,
	0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xba, 0x02, 0x0a, 0x14, 0x41, 0x6e, 0x6e,
	0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x51, 0x0a, 0x13, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f,
	0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f,
	0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d,
	0x70, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,
	0x00, 0x52, 0x11, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x14, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x74,
	0x61, 0x73, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
	0x32, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x12, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x61,
	0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x1c, 0x6e, 0x65,
	0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x26, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x4e, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x18, 0x6e, 0x65, 0x65, 0x64,
	0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x77, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x65,
	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
	0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61,
	0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04,
	0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07,
	0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa,
	0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0x79,
	0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68,
	0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52,
	0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f,
	0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10,
	0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x0f, 0x53, 0x74, 0x61,
	0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07,
	0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa,
	0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20,
	0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
	0x22, 0x57, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52,
	0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f,
	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10,
	0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x41, 0x6e,
	0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x2d, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6f, 0x73, 0x74,
	0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74,
	0x12, 0x3a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52,
	0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09,
	0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x34, 0x0a, 0x10, 0x4c, 0x69, 0x73,
	0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22,
	0x3a, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e,
	0x48, 0x6f, 0x73, 0x74, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x22, 0x35, 0x0a, 0x11, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74,
	0x49, 0x64, 0x22, 0x8e, 0x0e, 0x0a, 0x18, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43,
	0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42,
	0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0xb0, 0x01, 0x0a, 0x06,
	0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x92, 0x01, 0xfa,
	0x42, 0x8e, 0x01, 0x72, 0x8b, 0x01, 0x32, 0x85, 0x01, 0x5e, 0x28, 0x6d, 0x64, 0x35, 0x3a, 0x5b,
	0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x33, 0x32, 0x7d, 0x7c, 0x73,
	0x68, 0x61, 0x31, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b,
	0x34, 0x30, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41,
	0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x73, 0x68, 0x61, 0x35, 0x31,
	0x32, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x31, 0x32,
	0x38, 0x7d, 0x7c, 0x62, 0x6c, 0x61, 0x6b, 0x65, 0x33, 0x3a, 0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d,
	0x46, 0x30, 0x2d, 0x39, 0x5d, 0x7b, 0x36, 0x34, 0x7d, 0x7c, 0x63, 0x72, 0x63, 0x33, 0x32, 0x3a,
	0x5b, 0x61, 0x2d, 0x66, 0x41, 0x2d, 0x46, 0x30, 0x2d, 0x39, 0x5d, 0x2b, 0x29, 0x24, 0xd0, 0x01,
	0x01, 0x48, 0x00, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b,
	0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48,
	0x01, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x42, 0x08,
	0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x15,
	0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x74,
	0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0b, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x08,
	0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72,
	0x69, 0x74, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70,
	0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x69, 0x6c, 0x74, 0x65,
	0x72, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73,
	0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64,
	0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x60, 0x0a, 0x0e, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x09, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65,
	0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d,
	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x39, 0x0a,
	0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x04, 0x42, 0x11, 0xfa, 0x42, 0x0e, 0x32, 0x0c, 0x18, 0x80, 0x80, 0x80, 0x20, 0x28,
	0x80, 0x80, 0x80, 0x02, 0x40, 0x01, 0x48, 0x04, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c,
	0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70,
	0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa,
	0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x05, 0x52, 0x0a, 0x6f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69,
	0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x06, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
	0x74, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f,
	0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x63,
	0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x6e, 0x65, 0x65,
	0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b,
	0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74,
	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x0f, 0x20,
	0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63,
	0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63,
	0x68, 0x12, 0x44, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72,
	0x61, 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72,
	0x61, 0x67, 0x65, 0x48, 0x07, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f,
	0x72, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x64, 0x66, 0x73, 0x18,
	0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76,
	0x32, 0x2e, 0x48, 0x44, 0x46, 0x53, 0x48, 0x08, 0x52, 0x04, 0x68, 0x64, 0x66, 0x73, 0x88, 0x01,
	0x01, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68,
	0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x50, 0x72, 0x65, 0x66, 0x65, 0x74,
	0x63, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x65, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65,
	0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10,
	0x6e, 0x65, 0x65, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x12, 0x49, 0x0a, 0x1f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f,
	0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b,
	0x5f, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x1b, 0x63, 0x6f, 0x6e,
	0x74, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69,
	0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x09, 0x72,
	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a,
	0xfa, 0x42, 0x07, 0x72, 0x05, 0x70, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x0a, 0x52, 0x08, 0x72, 0x65,
	0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x63, 0x6f, 0x6e,
	0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0b, 0x52, 0x14, 0x63, 0x6f, 0x6e,
	0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x69, 0x65, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x70,
	0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28,
	0x04, 0x48, 0x0c, 0x52, 0x11, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x50, 0x69, 0x65, 0x63, 0x65,
	0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x61, 0x63, 0x74,
	0x75, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67,
	0x74, 0x68, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x13, 0x61, 0x63, 0x74, 0x75,
	0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88,
	0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x70, 0x69, 0x65,
	0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e,
	0x52, 0x10, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x50, 0x69, 0x65, 0x63, 0x65, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x69, 0x67, 0x65,
	0x73, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x06, 0x0a, 0x04,
	0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c,
	0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
	0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
	0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f,
	0x72, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x64, 0x66, 0x73, 0x42, 0x22, 0x0a,
	0x20, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61,
	0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69,
	0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x42,
	0x19, 0x0a, 0x17, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70,
	0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61,
	0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67,
	0x74, 0x68, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x6f,
	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x15, 0x0a, 0x13,
	0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43,
	0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x70, 0x0a, 0x2b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
	0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54,
	0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72,
	0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa2, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x11, 0x63, 0x61, 0x6e, 0x64, 0x69,
	0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43,
	0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x10, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64,
	0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64,
	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a,
	0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4b, 0x0a,
	0x20, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65,
	0x65, 0x72, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x0e, 0x63,
	0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0b, 0x70,
	0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x57, 0x0a, 0x2c, 0x44, 0x6f,
	0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x42,
	0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73,
	0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02,
	0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f,
	0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x22, 0x63, 0x0a, 0x1e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43,
	0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72,
	0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6f, 0x0a, 0x2a, 0x44, 0x6f, 0x77, 0x6e,
	0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63,
	0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07,
	0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf3, 0x0d, 0x0a, 0x18, 0x41, 0x6e,
	0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01,
	0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b,
	0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
	0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65,
	0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04,
	0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x67, 0x0a, 0x1b,
	0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70,
	0x65, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x26, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32,
	0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65,
	0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x18, 0x72, 0x65, 0x67,
	0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x7d, 0x0a, 0x23, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
	0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
	0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50,
	0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x48, 0x00, 0x52, 0x1f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63,
	0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0xa4, 0x01, 0x0a, 0x32, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
	0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x63,
	0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x39, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32,
	0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65,
	0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74,
	0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x2b,
	0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65,
	0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61,
	0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6d, 0x0a, 0x1d, 0x72,
	0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f,
	0x70, 0x65, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
	0x32, 0x2e, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1a,
	0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50,
	0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x80, 0x01, 0x0a, 0x24, 0x64,
	0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x65,
	0x65, 0x72, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x63, 0x68, 0x65,
	0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
	0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68,
	0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x20, 0x64, 0x6f, 0x77,
	0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69,
	0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0xa7, 0x01,
	0x0a, 0x33, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65,
	0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x73, 0x63,
	0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
	0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b,
	0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x2c, 0x64, 0x6f, 0x77, 0x6e, 0x6c,
	0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b,
	0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x7a, 0x0a, 0x22, 0x64, 0x6f, 0x77, 0x6e, 0x6c,
	0x6f, 0x61, 0x64, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x66,
	0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65,
	0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x48, 0x00, 0x52, 0x1e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63,
	0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0xa1, 0x01, 0x0a, 0x31, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
	0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x63, 0x6b,
	0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65,
	0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x38, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44,
	0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72,
	0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c,
	0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x2a, 0x64, 0x6f, 0x77,
	0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61,
	0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x73, 0x0a, 0x1f, 0x64, 0x6f, 0x77, 0x6e, 0x6c,
	0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68,
	0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x2a, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e,
	0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1c,
	0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e,
	0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x9a, 0x01, 0x0a,
	0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f,
	0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66,
	0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
	0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
	0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65,
	0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69,
	0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
	0x28, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61,
	0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68,
	0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6d, 0x0a, 0x1d, 0x64, 0x6f, 0x77,
	0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c,
	0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x28, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x61, 0x69,
	0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x64, 0x6f,
	0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65,
	0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x94, 0x01, 0x0a, 0x2c, 0x64, 0x6f, 0x77,
	0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b,
	0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65,
	0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x34, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44,
	0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b,
	0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x26, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
	0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42,
	0x0e, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22,
	0x18, 0x0a, 0x16, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73,
	0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x0a, 0x17, 0x4e, 0x6f, 0x72,
	0x6d, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x11, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74,
	0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x14, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x50, 0x65, 0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52,
	0x10, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74,
	0x73, 0x22, 0xdf, 0x02, 0x0a, 0x19, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x43, 0x61,
	0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x61, 0x0a, 0x19, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74,
	0x61, 0x73, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
	0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x16, 0x65, 0x6d, 0x70, 0x74,
	0x79, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x64, 0x0a, 0x1a, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x63,
	0x68, 0x65, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
	0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52,
	0x17, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x1c, 0x6e, 0x65, 0x65, 0x64,
	0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f,
	0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26,
	0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x65,
	0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x18, 0x6e, 0x65, 0x65, 0x64, 0x42, 0x61,
	0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x42, 0x0f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x03,
	0xf8, 0x42, 0x01, 0x22, 0x7c, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65,
	0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68,
	0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
	0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a,
	0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
	0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12,
	0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49,
	0x64, 0x22, 0x7e, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65,
	0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68,
	0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
	0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a,
	0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
	0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12,
	0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49,
	0x64, 0x22, 0x5a, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61,
	0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73,
	0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72,
	0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74,
	0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
	0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x5c, 0x0a,
	0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10,
	0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73,
	0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72,
	0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0xc5, 0x04, 0x0a, 0x1d,
	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65,
	0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a,
	0x12, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f,
	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
	0x10, 0x01, 0x52, 0x10, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
	0x65, 0x4b, 0x65, 0x79, 0x12, 0x49, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73,
	0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63,
	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53,
	0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01,
	0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12,
	0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x12,
	0x15, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03,
	0x74, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x61,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a,
	0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x04, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x32, 0x05, 0x28, 0x80, 0x80, 0x80, 0x02, 0x52,
	0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x30, 0x0a, 0x0b,
	0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x02, 0x52,
	0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x38,
	0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x03, 0x52, 0x07, 0x74, 0x69,
	0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x69, 0x65, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x69, 0x65, 0x63, 0x65, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c,
	0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c,
	0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x63, 0x6f, 0x6e,
	0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x22, 0x26, 0x0a, 0x24, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50,
	0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61,
	0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x75, 0x0a, 0x30, 0x44,
	0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x74, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01,
	0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88,
	0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x22, 0xac, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
	0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x11, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64,
	0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65,
	0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x10, 0x63, 0x61,
	0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31,
	0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48,
	0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01,
	0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x22, 0x27, 0x0a, 0x25, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72,
	0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69, 0x73,
	0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x33, 0x0a, 0x31, 0x44, 0x6f,
	0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74,
	0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
	0x68, 0x0a, 0x23, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07,
	0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x74, 0x0a, 0x2f, 0x44, 0x6f, 0x77,
	0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50,
	0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46,
	0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b,
	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52,
	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42,
	0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22,
	0xf2, 0x0e, 0x0a, 0x1d, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73,
	0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73,
	0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74,
	0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52,
	0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x76, 0x0a, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73,
	0x74, 0x65, 0x72, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x70,
	0x65, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32,
	0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,
	0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00,
	0x52, 0x1d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73,
	0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x8c, 0x01, 0x0a, 0x28, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x72,
	0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
	0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73,
	0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x24, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
	0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72,
	0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0xb3,
	0x01, 0x0a, 0x37, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x73,
	0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x63, 0x6b,
	0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x3e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65,
	0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x48, 0x00, 0x52, 0x30, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73,
	0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f,
	0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75,
	0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65,
	0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x2d, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73,
	0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
	0x00, 0x52, 0x1f, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x65, 0x72,
	0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x8f, 0x01, 0x0a, 0x29, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f,
	0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f,
	0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
	0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65,
	0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69,
	0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x25, 0x64,
	0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x74, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0xb6, 0x01, 0x0a, 0x38, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
	0x64, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65,
	0x72, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75,
	0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50,
	0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63,
	0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65,
	0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x31, 0x64, 0x6f, 0x77, 0x6e,
	0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65,
	0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69,
	0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x89, 0x01,
	0x0a, 0x27, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65,
	0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44,
	0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x74, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x48, 0x00, 0x52, 0x23, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65,
	0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c,
	0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0xb0, 0x01, 0x0a, 0x36, 0x64, 0x6f,
	0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
	0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72,
	0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c,
	0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x2f, 0x64, 0x6f, 0x77,
	0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50,
	0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46,
	0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x73, 0x0a, 0x1f,
	0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x66,
	0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
	0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65,
	0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x48, 0x00, 0x52, 0x1c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65,
	0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x9a, 0x01, 0x0a, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70,
	0x69, 0x65, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
	0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x48, 0x00, 0x52, 0x28, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69,
	0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46,
	0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6d,
	0x0a, 0x1d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65,
	0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
	0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
	0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65,
	0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
	0x00, 0x52, 0x1a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65,
	0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x94, 0x01,
	0x0a, 0x2c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65,
	0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f,
	0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0f,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
	0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63,
	0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69,
	0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x26, 0x64, 0x6f,
	0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54,
	0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x42, 0x0e, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x03, 0xf8, 0x42, 0x01, 0x22, 0x1d, 0x0a, 0x1b, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x50, 0x65, 0x72,
	0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x70, 0x0a, 0x1c, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x50, 0x65, 0x72,
	0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65,
	0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19,
	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01,
	0x02, 0x08, 0x01, 0x52, 0x10, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61,
	0x72, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x82, 0x03, 0x0a, 0x1e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e,
	0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x1e, 0x65, 0x6d, 0x70, 0x74,
	0x79, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73,
	0x6b, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x29, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x45, 0x6d, 0x70, 0x74, 0x79, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54,
	0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x1b, 0x65,
	0x6d, 0x70, 0x74, 0x79, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61,
	0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x1f, 0x6e, 0x6f,
	0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f,
	0x74, 0x61, 0x73, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,
	0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,
	0x00, 0x52, 0x1c, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,
	0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x68, 0x0a, 0x1c, 0x6e, 0x65, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
	0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52,
	0x18, 0x6e, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x0a, 0x08, 0x72, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x81, 0x01, 0x0a, 0x19, 0x53,
	0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65,
	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
	0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61,
	0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04,
	0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07,
	0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa,
	0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0x83,
	0x01, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,
	0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20,
	0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64,
	0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b,
	0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65,
	0x65, 0x72, 0x49, 0x64, 0x22, 0xdc, 0x04, 0x0a, 0x22, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50,
	0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61,
	0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68,
	0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
	0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a,
	0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
	0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12,
	0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49,
	0x64, 0x12, 0x35, 0x0a, 0x12, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72,
	0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa,
	0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x10, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74,
	0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x49, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65,
	0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a,
	0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a,
	0x01, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72,
	0x61, 0x67, 0x65, 0x12, 0x41, 0x0a, 0x18, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x28, 0x01, 0x52, 0x16,
	0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x74, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a,
	0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65,
	0x6e, 0x67, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x32,
	0x05, 0x28, 0x80, 0x80, 0x80, 0x02, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e,
	0x67, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c,
	0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e,
	0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69,
	0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x0a, 0x70, 0x69, 0x65, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x03, 0x74,
	0x74, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x42, 0x11, 0xfa, 0x42, 0x0e, 0xaa, 0x01, 0x0b, 0x22, 0x04, 0x08, 0x80, 0xf5,
	0x24, 0x32, 0x03, 0x08, 0xac, 0x02, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x5f,
	0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x22, 0x8b, 0x01, 0x0a, 0x23, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65,
	0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69,
	0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68,
	0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
	0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a,
	0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
	0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12,
	0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49,
	0x64, 0x22, 0xcc, 0x01, 0x0a, 0x21, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73,
	0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10,
	0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73,
	0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72,
	0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70,
	0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
	0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x31, 0x0a,
	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00,
	0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01,
	0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x22, 0x5f, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65,
	0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a,
	0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
	0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12,
	0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49,
	0x64, 0x22, 0x61, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74,
	0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61,
	0x73, 0x6b, 0x49, 0x64, 0x22, 0xc8, 0x03, 0x0a, 0x22, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
	0x72, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65,
	0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70,
	0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x74,
	0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x74, 0x61, 0x67, 0x88,
	0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0c, 0x70, 0x69, 0x65,
	0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42,
	0x0a, 0xfa, 0x42, 0x07, 0x32, 0x05, 0x28, 0x80, 0x80, 0x80, 0x02, 0x52, 0x0b, 0x70, 0x69, 0x65,
	0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70,
	0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa,
	0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69,
	0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
	0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65,
	0x6e, 0x74, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65,
	0x6e, 0x74, 0x50, 0x69, 0x65, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12,
	0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x69, 0x65, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x6f, 0x75, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72,
	0x65, 0x6e, 0x74, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22,
	0x2b, 0x0a, 0x29, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74,
	0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb6, 0x01, 0x0a,
	0x24, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x11, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61,
	0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72,
	0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72,
	0x52, 0x10, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e,
	0x74, 0x73, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01,
	0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3f, 0x0a, 0x2a, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
	0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65,
	0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65,
	0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x6d, 0x0a, 0x28, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
	0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01,
	0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf3, 0x08, 0x0a, 0x22, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e,
	0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07,
	0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa,
	0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20,
	0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
	0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72,
	0x49, 0x64, 0x12, 0x86, 0x01, 0x0a, 0x26, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f,
	0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65,
	0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
	0x72, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65,
	0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x9c, 0x01, 0x0a, 0x2e,
	0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,
	0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x73,
	0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
	0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73,
	0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x53,
	0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
	0x29, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,
	0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72,
	0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x8c, 0x01, 0x0a, 0x28, 0x72,
	0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73,
	0x74, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f,
	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e,
	0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x48, 0x00, 0x52, 0x24, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50,
	0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65,
	0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x2f, 0x64, 0x6f,
	0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6e,
	0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69,
	0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
	0x2a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,
	0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69,
	0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x99, 0x01, 0x0a, 0x2d,
	0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,
	0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x66,
	0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61,
	0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x28, 0x64,
	0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x73, 0x0a, 0x1f, 0x64, 0x6f, 0x77, 0x6e, 0x6c,
	0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68,
	0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x2a, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e,
	0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1c,
	0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e,
	0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6d, 0x0a, 0x1d,
	0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x66,
	0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65,
	0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
	0x1a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x61,
	0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x0e, 0x0a, 0x07, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x22, 0x0a, 0x20, 0x45,
	0x6d, 0x70, 0x74, 0x79, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61,
	0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x7a, 0x0a, 0x21, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,
	0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x11, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74,
	0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x1e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73,
	0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x42,
	0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x10, 0x63, 0x61, 0x6e, 0x64, 0x69,
	0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xbf, 0x02, 0x0a, 0x23,
	0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65,
	0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x24, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x70, 0x65,
	0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74,
	0x61, 0x73, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
	0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x48, 0x00, 0x52, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x50, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x25, 0x6e, 0x6f, 0x72, 0x6d, 0x61,
	0x6c, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x63,
	0x68, 0x65, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
	0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x73,
	0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x21, 0x6e, 0x6f, 0x72, 0x6d, 0x61,
	0x6c, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65,
	0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x0a, 0x08,
	0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x86, 0x01,
	0x0a, 0x1e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74,
	0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74,
	0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61,
	0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06,
	0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0x88, 0x01, 0x0a, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65,
	0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68,
	0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
	0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a,
	0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
	0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12,
	0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49,
	0x64, 0x22, 0xdf, 0x03, 0x0a, 0x27, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73,
	0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53,
	0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a,
	0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
	0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12,
	0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49,
	0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65,
	0x72, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x18, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x28, 0x01, 0x52, 0x16,
	0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x74, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a,
	0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65,
	0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x32,
	0x05, 0x28, 0x80, 0x80, 0x80, 0x02, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e,
	0x67, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c,
	0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e,
	0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69,
	0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x0a, 0x70, 0x69, 0x65, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x03, 0x74,
	0x74, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x42, 0x11, 0xfa, 0x42, 0x0e, 0xaa, 0x01, 0x0b, 0x22, 0x04, 0x08, 0x80, 0xf5,
	0x24, 0x32, 0x03, 0x08, 0xac, 0x02, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x5f,
	0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x22, 0x90, 0x01, 0x0a, 0x28, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65,
	0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73,
	0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74,
	0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61,
	0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06,
	0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0xd1, 0x01, 0x0a, 0x26, 0x55, 0x70, 0x6c, 0x6f, 0x61,
	0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65,
	0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73,
	0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74,
	0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52,
	0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42,
	0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64,
	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x64, 0x0a, 0x1e, 0x53, 0x74,
	0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07,
	0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa,
	0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20,
	0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
	0x22, 0x66, 0x0a, 0x20, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73,
	0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06,
	0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01,
	0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x86, 0x09, 0x0a, 0x13, 0x50, 0x72, 0x65,
	0x68, 0x65, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa,
	0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0c,
	0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x04, 0x42, 0x11, 0xfa, 0x42, 0x0e, 0x32, 0x0c, 0x18, 0x80, 0x80, 0x80, 0x20, 0x28, 0x80,
	0x80, 0x80, 0x02, 0x40, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65,
	0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x74, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x25,
	0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65,
	0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x45, 0x0a, 0x06, 0x68, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x63, 0x68, 0x65,
	0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74,
	0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x12, 0x1f, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x09, 0x48, 0x03, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01,
	0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88,
	0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x34, 0xfa, 0x42, 0x31, 0x72, 0x2f, 0x32, 0x2d, 0x5e, 0x28, 0x73, 0x69, 0x6e,
	0x67, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x7c, 0x61, 0x6c,
	0x6c, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x7c, 0x61, 0x6c, 0x6c,
	0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x29, 0x24, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12,
	0x10, 0x0a, 0x03, 0x69, 0x70, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x70,
	0x73, 0x12, 0x30, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x18, 0x64, 0x28, 0x01,
	0x40, 0x01, 0x48, 0x06, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65,
	0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01,
	0x28, 0x0d, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x2a, 0x07, 0x18, 0xc8, 0x01, 0x28, 0x01, 0x40, 0x01,
	0x48, 0x07, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x15,
	0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x42, 0x0b, 0xfa, 0x42, 0x08,
	0x22, 0x06, 0x18, 0x64, 0x28, 0x01, 0x40, 0x01, 0x48, 0x08, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88,
	0x01, 0x01, 0x12, 0x45, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74,
	0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28,
	0x03, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x22, 0x07, 0x18, 0xe8, 0x07, 0x28, 0x01, 0x40, 0x01, 0x48,
	0x09, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65,
	0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d,
	0x65, 0x6f, 0x75, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x0a, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
	0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18,
	0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76,
	0x32, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82,
	0x01, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x2b,
	0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68,
	0x61, 0x69, 0x6e, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69,
	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x69,
	0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72,
	0x69, 0x66, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x6e, 0x73, 0x65, 0x63,
	0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x1a, 0x39, 0x0a,
	0x0b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65,
	0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x61,
	0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b,
	0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f,
	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x65, 0x72,
	0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74,
	0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f,
	0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
	0x74, 0x22, 0xf6, 0x06, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75,
	0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67,
	0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x11, 0xfa, 0x42, 0x0e, 0x32, 0x0c, 0x18,
	0x80, 0x80, 0x80, 0x20, 0x28, 0x80, 0x80, 0x80, 0x02, 0x40, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x70,
	0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a,
	0x03, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x74, 0x61,
	0x67, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x61, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x15, 0x66,
	0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61,
	0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x74,
	0x65, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12,
	0x42, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x2a, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x68, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
	0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f,
	0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
	0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66,
	0x6f, 0x72, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72,
	0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x22, 0x06, 0x18, 0x64, 0x28,
	0x01, 0x40, 0x01, 0x48, 0x06, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
	0x74, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45,
	0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65,
	0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x42, 0x0c, 0xfa,
	0x42, 0x09, 0x22, 0x07, 0x18, 0xe8, 0x07, 0x28, 0x01, 0x40, 0x01, 0x48, 0x07, 0x52, 0x13, 0x63,
	0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
	0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x48, 0x08, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12,
	0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63,
	0x68, 0x61, 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74,
	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x14,
	0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65,
	0x72, 0x69, 0x66, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x6e, 0x73, 0x65,
	0x63, 0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x1a, 0x39,
	0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69,
	0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74,
	0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x42,
	0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x0b, 0x0a, 0x09,
	0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x63, 0x6f,
	0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72,
	0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a,
	0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x6d, 0x0a, 0x11, 0x53, 0x74,
	0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x29, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
	0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6d,
	0x61, 0x67, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x65,
	0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x63, 0x68, 0x65,
	0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6d, 0x61,
	0x67, 0x65, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x09, 0x50, 0x65,
	0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x70, 0x01, 0x52, 0x02, 0x69, 0x70,
	0x12, 0x23, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x68, 0x6f, 0x73,
	0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x61, 0x79, 0x65,
	0x72, 0x52, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22,
	0x34, 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64,
	0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x06, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x59, 0x0a, 0x05, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1a,
	0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05,
	0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73,
	0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48,
	0x00, 0x52, 0x0a, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x88, 0x01, 0x01,
	0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64,
	0x22, 0xc8, 0x09, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03,
	0x75, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e,
	0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x11, 0xfa, 0x42, 0x0e, 0x32, 0x0c,
	0x18, 0x80, 0x80, 0x80, 0x20, 0x28, 0x80, 0x80, 0x80, 0x02, 0x40, 0x01, 0x48, 0x00, 0x52, 0x0b,
	0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x15,
	0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x74,
	0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x15,
	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70,
	0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x66, 0x69, 0x6c,
	0x74, 0x65, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
	0x12, 0x44, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06,
	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xfa, 0x42, 0x31, 0x72, 0x2f, 0x32, 0x2d, 0x5e, 0x28,
	0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72,
	0x7c, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x7c,
	0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x29, 0x24, 0x52, 0x05, 0x73, 0x63, 0x6f,
	0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x70, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x03, 0x69, 0x70, 0x73, 0x12, 0x30, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61,
	0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x18,
	0x64, 0x28, 0x01, 0x40, 0x01, 0x48, 0x03, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74,
	0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x2a, 0x07, 0x18, 0xc8, 0x01, 0x28,
	0x01, 0x40, 0x01, 0x48, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12,
	0x44, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61,
	0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x42, 0x0b,
	0xfa, 0x42, 0x08, 0x22, 0x06, 0x18, 0x64, 0x28, 0x01, 0x40, 0x01, 0x48, 0x05, 0x52, 0x13, 0x63,
	0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72,
	0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x03, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x22, 0x07, 0x18, 0xe8, 0x07, 0x28, 0x01,
	0x40, 0x01, 0x48, 0x06, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74,
	0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x07,
	0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x07, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65,
	0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69,
	0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
	0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x08, 0xfa,
	0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74,
	0x79, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65,
	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x30,
	0x0a, 0x14, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f,
	0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x6e,
	0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79,
	0x12, 0x44, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61,
	0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
	0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61,
	0x67, 0x65, 0x48, 0x08, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72,
	0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x64, 0x66, 0x73, 0x18, 0x12,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32,
	0x2e, 0x48, 0x44, 0x46, 0x53, 0x48, 0x09, 0x52, 0x04, 0x68, 0x64, 0x66, 0x73, 0x88, 0x01, 0x01,
	0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18,
	0x13, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01,
	0x01, 0x48, 0x0a, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x88,
	0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a,
	0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x06,
	0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65,
	0x6e, 0x74, 0x61, 0x67, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42,
	0x18, 0x0a, 0x16, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74,
	0x61, 0x73, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x6f,
	0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42,
	0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61,
	0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x64, 0x66, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f,
	0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0x93, 0x06, 0x0a, 0x0f,
	0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x1a, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42,
	0x05, 0x72, 0x03, 0x88, 0x01, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0c, 0x70,
	0x69, 0x65, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x04, 0x42, 0x11, 0xfa, 0x42, 0x0e, 0x32, 0x0c, 0x18, 0x80, 0x80, 0x80, 0x20, 0x28, 0x80, 0x80,
	0x80, 0x02, 0x40, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4c, 0x65, 0x6e,
	0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x74, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a,
	0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64,
	0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64,
	0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x15, 0x63,
	0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x42, 0x0c, 0xfa, 0x42, 0x09, 0x22,
	0x07, 0x18, 0xe8, 0x07, 0x28, 0x01, 0x40, 0x01, 0x48, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88,
	0x01, 0x01, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04,
	0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x11,
	0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69,
	0x6e, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
	0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x73,
	0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66,
	0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72,
	0x65, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x44, 0x0a, 0x0e, 0x6f,
	0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e,
	0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x48, 0x05, 0x52,
	0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x88, 0x01,
	0x01, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x64, 0x66, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x44, 0x46, 0x53,
	0x48, 0x06, 0x52, 0x04, 0x68, 0x64, 0x66, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65,
	0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x61, 0x67, 0x42,
	0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42,
	0x18, 0x0a, 0x16, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70,
	0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69,
	0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
	0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x64, 0x66,
	0x73, 0x22, 0x40, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
	0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x70, 0x65,
	0x65, 0x72, 0x73, 0x22, 0x6d, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x12,
	0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12,
	0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x0c, 0x63,
	0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32,
	0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x46, 0x69, 0x6c,
	0x65, 0x73, 0x22, 0x58, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x03, 0x75, 0x72,
	0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x88, 0x01,
	0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e,
	0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x69,
	0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c,
	0x5f, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x32, 0xc2, 0x17, 0x0a,
	0x09, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x0c, 0x41, 0x6e,
	0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x73, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e,
	0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e,
	0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e,
	0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x65,
	0x72, 0x12, 0x1d, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65,
	0x72, 0x12, 0x45, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12,
	0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x74,
	0x54, 0x61, 0x73, 0x6b, 0x12, 0x1d, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
	0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e,
	0x54, 0x61, 0x73, 0x6b, 0x12, 0x45, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61,
	0x73, 0x6b, 0x12, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
	0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x0c, 0x41,
	0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x73, 0x63,
	0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75,
	0x6e, 0x63, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f,
	0x73, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f,
	0x73, 0x74, 0x12, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
	0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x68, 0x0a, 0x11, 0x41,
	0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72,
	0x12, 0x26, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65,
	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64,
	0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65,
	0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63,
	0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
	0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50,
	0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6d,
	0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72,
	0x12, 0x4f, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50,
	0x65, 0x65, 0x72, 0x12, 0x24, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
	0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65,
	0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
	0x79, 0x12, 0x49, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61,
	0x73, 0x6b, 0x12, 0x22, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
	0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
	0x76, 0x32, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x4f, 0x0a, 0x0f,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12,
	0x24, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x77, 0x0a,
	0x16, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,
	0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75,
	0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50,
	0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
	0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73,
	0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x58, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65,
	0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x27, 0x2e, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74,
	0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76,
	0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72,
	0x12, 0x59, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73,
	0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x29, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64,
	0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65,
	0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x67, 0x0a, 0x1b, 0x55,
	0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54,
	0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x30, 0x2e, 0x73, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64,
	0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74,
	0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
	0x6d, 0x70, 0x74, 0x79, 0x12, 0x6c, 0x0a, 0x1c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65,
	0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69,
	0x73, 0x68, 0x65, 0x64, 0x12, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
	0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73,
	0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61,
	0x73, 0x6b, 0x12, 0x65, 0x0a, 0x1a, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73,
	0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64,
	0x12, 0x2f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74,
	0x54, 0x61, 0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x58, 0x0a, 0x12, 0x53, 0x74, 0x61,
	0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12,
	0x27, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53,
	0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73,
	0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
	0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54,
	0x61, 0x73, 0x6b, 0x12, 0x59, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72,
	0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x29, 0x2e, 0x73, 0x63,
	0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x86,
	0x01, 0x0a, 0x1b, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69,
	0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x30,
	0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e,
	0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74,
	0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
	0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65,
	0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x74, 0x50,
	0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65,
	0x65, 0x72, 0x12, 0x2c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
	0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74,
	0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72,
	0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72,
	0x12, 0x63, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73,
	0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2e, 0x2e,
	0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63,
	0x68, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x71, 0x0a, 0x20, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50,
	0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61,
	0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x35, 0x2e, 0x73, 0x63, 0x68, 0x65,
	0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50,
	0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61,
	0x73, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x7b, 0x0a, 0x21, 0x55, 0x70, 0x6c, 0x6f,
	0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x36, 0x2e,
	0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c,
	0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63,
	0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76,
	0x32, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x6f, 0x0a, 0x1f, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50,
	0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61,
	0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64,
	0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65,
	0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73,
	0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x67, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65,
	0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73,
	0x6b, 0x12, 0x2c, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43,
	0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x1e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x73,
	0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12,
	0x63, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74,
	0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2e, 0x2e, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68,
	0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
	0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x49,
	0x6d, 0x61, 0x67, 0x65, 0x12, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
	0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12,
	0x4c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x2e, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74,
	0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74,
	0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a,
	0x0b, 0x50, 0x72, 0x65, 0x68, 0x65, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x73,
	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x68,
	0x65, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69,
	0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
	0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32,
	0x2e, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x42, 0x2f, 0x5a, 0x2d, 0x64, 0x37, 0x79, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f,
	0x76, 0x32, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65,
	0x64, 0x75, 0x6c, 0x65, 0x72, 0x2f, 0x76, 0x32, 0x3b, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
	0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_pkg_apis_scheduler_v2_scheduler_proto_rawDescOnce sync.Once
	file_pkg_apis_scheduler_v2_scheduler_proto_rawDescData = file_pkg_apis_scheduler_v2_scheduler_proto_rawDesc
)

func file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP() []byte {
	file_pkg_apis_scheduler_v2_scheduler_proto_rawDescOnce.Do(func() {
		file_pkg_apis_scheduler_v2_scheduler_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_apis_scheduler_v2_scheduler_proto_rawDescData)
	})
	return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescData
}

var file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes = make([]protoimpl.MessageInfo, 92)
var file_pkg_apis_scheduler_v2_scheduler_proto_goTypes = []interface{}{
	(*RegisterPeerRequest)(nil),                               // 0: scheduler.v2.RegisterPeerRequest
	(*DownloadPeerStartedRequest)(nil),                        // 1: scheduler.v2.DownloadPeerStartedRequest
	(*DownloadPeerBackToSourceStartedRequest)(nil),            // 2: scheduler.v2.DownloadPeerBackToSourceStartedRequest
	(*ReschedulePeerRequest)(nil),                             // 3: scheduler.v2.ReschedulePeerRequest
	(*DownloadPeerFinishedRequest)(nil),                       // 4: scheduler.v2.DownloadPeerFinishedRequest
	(*DownloadPeerBackToSourceFinishedRequest)(nil),           // 5: scheduler.v2.DownloadPeerBackToSourceFinishedRequest
	(*DownloadPeerFailedRequest)(nil),                         // 6: scheduler.v2.DownloadPeerFailedRequest
	(*DownloadPeerBackToSourceFailedRequest)(nil),             // 7: scheduler.v2.DownloadPeerBackToSourceFailedRequest
	(*DownloadPieceFinishedRequest)(nil),                      // 8: scheduler.v2.DownloadPieceFinishedRequest
	(*DownloadPieceBackToSourceFinishedRequest)(nil),          // 9: scheduler.v2.DownloadPieceBackToSourceFinishedRequest
	(*DownloadPieceFailedRequest)(nil),                        // 10: scheduler.v2.DownloadPieceFailedRequest
	(*DownloadPieceBackToSourceFailedRequest)(nil),            // 11: scheduler.v2.DownloadPieceBackToSourceFailedRequest
	(*AnnouncePeerRequest)(nil),                               // 12: scheduler.v2.AnnouncePeerRequest
	(*EmptyTaskResponse)(nil),                                 // 13: scheduler.v2.EmptyTaskResponse
	(*NormalTaskResponse)(nil),                                // 14: scheduler.v2.NormalTaskResponse
	(*NeedBackToSourceResponse)(nil),                          // 15: scheduler.v2.NeedBackToSourceResponse
	(*AnnouncePeerResponse)(nil),                              // 16: scheduler.v2.AnnouncePeerResponse
	(*StatPeerRequest)(nil),                                   // 17: scheduler.v2.StatPeerRequest
	(*DeletePeerRequest)(nil),                                 // 18: scheduler.v2.DeletePeerRequest
	(*StatTaskRequest)(nil),                                   // 19: scheduler.v2.StatTaskRequest
	(*DeleteTaskRequest)(nil),                                 // 20: scheduler.v2.DeleteTaskRequest
	(*AnnounceHostRequest)(nil),                               // 21: scheduler.v2.AnnounceHostRequest
	(*ListHostsRequest)(nil),                                  // 22: scheduler.v2.ListHostsRequest
	(*ListHostsResponse)(nil),                                 // 23: scheduler.v2.ListHostsResponse
	(*DeleteHostRequest)(nil),                                 // 24: scheduler.v2.DeleteHostRequest
	(*RegisterCachePeerRequest)(nil),                          // 25: scheduler.v2.RegisterCachePeerRequest
	(*DownloadCachePeerStartedRequest)(nil),                   // 26: scheduler.v2.DownloadCachePeerStartedRequest
	(*DownloadCachePeerBackToSourceStartedRequest)(nil),       // 27: scheduler.v2.DownloadCachePeerBackToSourceStartedRequest
	(*RescheduleCachePeerRequest)(nil),                        // 28: scheduler.v2.RescheduleCachePeerRequest
	(*DownloadCachePeerFinishedRequest)(nil),                  // 29: scheduler.v2.DownloadCachePeerFinishedRequest
	(*DownloadCachePeerBackToSourceFinishedRequest)(nil),      // 30: scheduler.v2.DownloadCachePeerBackToSourceFinishedRequest
	(*DownloadCachePeerFailedRequest)(nil),                    // 31: scheduler.v2.DownloadCachePeerFailedRequest
	(*DownloadCachePeerBackToSourceFailedRequest)(nil),        // 32: scheduler.v2.DownloadCachePeerBackToSourceFailedRequest
	(*AnnounceCachePeerRequest)(nil),                          // 33: scheduler.v2.AnnounceCachePeerRequest
	(*EmptyCacheTaskResponse)(nil),                            // 34: scheduler.v2.EmptyCacheTaskResponse
	(*NormalCacheTaskResponse)(nil),                           // 35: scheduler.v2.NormalCacheTaskResponse
	(*AnnounceCachePeerResponse)(nil),                         // 36: scheduler.v2.AnnounceCachePeerResponse
	(*StatCachePeerRequest)(nil),                              // 37: scheduler.v2.StatCachePeerRequest
	(*DeleteCachePeerRequest)(nil),                            // 38: scheduler.v2.DeleteCachePeerRequest
	(*StatCacheTaskRequest)(nil),                              // 39: scheduler.v2.StatCacheTaskRequest
	(*DeleteCacheTaskRequest)(nil),                            // 40: scheduler.v2.DeleteCacheTaskRequest
	(*RegisterPersistentPeerRequest)(nil),                     // 41: scheduler.v2.RegisterPersistentPeerRequest
	(*DownloadPersistentPeerStartedRequest)(nil),              // 42: scheduler.v2.DownloadPersistentPeerStartedRequest
	(*DownloadPersistentPeerBackToSourceStartedRequest)(nil),  // 43: scheduler.v2.DownloadPersistentPeerBackToSourceStartedRequest
	(*ReschedulePersistentPeerRequest)(nil),                   // 44: scheduler.v2.ReschedulePersistentPeerRequest
	(*DownloadPersistentPeerFinishedRequest)(nil),             // 45: scheduler.v2.DownloadPersistentPeerFinishedRequest
	(*DownloadPersistentPeerBackToSourceFinishedRequest)(nil), // 46: scheduler.v2.DownloadPersistentPeerBackToSourceFinishedRequest
	(*DownloadPersistentPeerFailedRequest)(nil),               // 47: scheduler.v2.DownloadPersistentPeerFailedRequest
	(*DownloadPersistentPeerBackToSourceFailedRequest)(nil),   // 48: scheduler.v2.DownloadPersistentPeerBackToSourceFailedRequest
	(*AnnouncePersistentPeerRequest)(nil),                     // 49: scheduler.v2.AnnouncePersistentPeerRequest
	(*EmptyPersistentTaskResponse)(nil),                       // 50: scheduler.v2.EmptyPersistentTaskResponse
	(*NormalPersistentTaskResponse)(nil),                      // 51: scheduler.v2.NormalPersistentTaskResponse
	(*AnnouncePersistentPeerResponse)(nil),                    // 52: scheduler.v2.AnnouncePersistentPeerResponse
	(*StatPersistentPeerRequest)(nil),                         // 53: scheduler.v2.StatPersistentPeerRequest
	(*DeletePersistentPeerRequest)(nil),                       // 54: scheduler.v2.DeletePersistentPeerRequest
	(*UploadPersistentTaskStartedRequest)(nil),                // 55: scheduler.v2.UploadPersistentTaskStartedRequest
	(*UploadPersistentTaskFinishedRequest)(nil),               // 56: scheduler.v2.UploadPersistentTaskFinishedRequest
	(*UploadPersistentTaskFailedRequest)(nil),                 // 57: scheduler.v2.UploadPersistentTaskFailedRequest
	(*StatPersistentTaskRequest)(nil),                         // 58: scheduler.v2.StatPersistentTaskRequest
	(*DeletePersistentTaskRequest)(nil),                       // 59: scheduler.v2.DeletePersistentTaskRequest
	(*RegisterPersistentCachePeerRequest)(nil),                // 60: scheduler.v2.RegisterPersistentCachePeerRequest
	(*DownloadPersistentCachePeerStartedRequest)(nil),         // 61: scheduler.v2.DownloadPersistentCachePeerStartedRequest
	(*ReschedulePersistentCachePeerRequest)(nil),              // 62: scheduler.v2.ReschedulePersistentCachePeerRequest
	(*DownloadPersistentCachePeerFinishedRequest)(nil),        // 63: scheduler.v2.DownloadPersistentCachePeerFinishedRequest
	(*DownloadPersistentCachePeerFailedRequest)(nil),          // 64: scheduler.v2.DownloadPersistentCachePeerFailedRequest
	(*AnnouncePersistentCachePeerRequest)(nil),                // 65: scheduler.v2.AnnouncePersistentCachePeerRequest
	(*EmptyPersistentCacheTaskResponse)(nil),                  // 66: scheduler.v2.EmptyPersistentCacheTaskResponse
	(*NormalPersistentCacheTaskResponse)(nil),                 // 67: scheduler.v2.NormalPersistentCacheTaskResponse
	(*AnnouncePersistentCachePeerResponse)(nil),               // 68: scheduler.v2.AnnouncePersistentCachePeerResponse
	(*StatPersistentCachePeerRequest)(nil),                    // 69: scheduler.v2.StatPersistentCachePeerRequest
	(*DeletePersistentCachePeerRequest)(nil),                  // 70: scheduler.v2.DeletePersistentCachePeerRequest
	(*UploadPersistentCacheTaskStartedRequest)(nil),           // 71: scheduler.v2.UploadPersistentCacheTaskStartedRequest
	(*UploadPersistentCacheTaskFinishedRequest)(nil),          // 72: scheduler.v2.UploadPersistentCacheTaskFinishedRequest
	(*UploadPersistentCacheTaskFailedRequest)(nil),            // 73: scheduler.v2.UploadPersistentCacheTaskFailedRequest
	(*StatPersistentCacheTaskRequest)(nil),                    // 74: scheduler.v2.StatPersistentCacheTaskRequest
	(*DeletePersistentCacheTaskRequest)(nil),                  // 75: scheduler.v2.DeletePersistentCacheTaskRequest
	(*PreheatImageRequest)(nil),                               // 76: scheduler.v2.PreheatImageRequest
	(*StatImageRequest)(nil),                                  // 77: scheduler.v2.StatImageRequest
	(*StatImageResponse)(nil),                                 // 78: scheduler.v2.StatImageResponse
	(*PeerImage)(nil),                                         // 79: scheduler.v2.PeerImage
	(*Image)(nil),                                             // 80: scheduler.v2.Image
	(*Layer)(nil),                                             // 81: scheduler.v2.Layer
	(*PreheatFileRequest)(nil),                                // 82: scheduler.v2.PreheatFileRequest
	(*StatFileRequest)(nil),                                   // 83: scheduler.v2.StatFileRequest
	(*StatFileResponse)(nil),                                  // 84: scheduler.v2.StatFileResponse
	(*PeerFile)(nil),                                          // 85: scheduler.v2.PeerFile
	(*File)(nil),                                              // 86: scheduler.v2.File
	nil,                                                       // 87: scheduler.v2.RegisterCachePeerRequest.RequestHeaderEntry
	nil,                                                       // 88: scheduler.v2.PreheatImageRequest.HeaderEntry
	nil,                                                       // 89: scheduler.v2.StatImageRequest.HeaderEntry
	nil,                                                       // 90: scheduler.v2.PreheatFileRequest.HeaderEntry
	nil,                                                       // 91: scheduler.v2.StatFileRequest.HeaderEntry
	(*v2.Download)(nil),                                       // 92: common.v2.Download
	(*v2.Peer)(nil),                                           // 93: common.v2.Peer
	(*v2.Piece)(nil),                                          // 94: common.v2.Piece
	(*v21.Backend)(nil),                                       // 95: errordetails.v2.Backend
	(*v21.Unknown)(nil),                                       // 96: errordetails.v2.Unknown
	(*v2.Host)(nil),                                           // 97: common.v2.Host
	(*durationpb.Duration)(nil),                               // 98: google.protobuf.Duration
	(*v2.Range)(nil),                                          // 99: common.v2.Range
	(v2.TaskType)(0),                                          // 100: common.v2.TaskType
	(v2.Priority)(0),                                          // 101: common.v2.Priority
	(*v2.ObjectStorage)(nil),                                  // 102: common.v2.ObjectStorage
	(*v2.HDFS)(nil),                                           // 103: common.v2.HDFS
	(*v2.CachePeer)(nil),                                      // 104: common.v2.CachePeer
	(*v2.PersistentPeer)(nil),                                 // 105: common.v2.PersistentPeer
	(*v2.PersistentCachePeer)(nil),                            // 106: common.v2.PersistentCachePeer
	(*emptypb.Empty)(nil),                                     // 107: google.protobuf.Empty
	(*v2.Task)(nil),                                           // 108: common.v2.Task
	(*v2.CacheTask)(nil),                                      // 109: common.v2.CacheTask
	(*v2.PersistentTask)(nil),                                 // 110: common.v2.PersistentTask
	(*v2.PersistentCacheTask)(nil),                            // 111: common.v2.PersistentCacheTask
}
var file_pkg_apis_scheduler_v2_scheduler_proto_depIdxs = []int32{
	92,  // 0: scheduler.v2.RegisterPeerRequest.download:type_name -> common.v2.Download
	93,  // 1: scheduler.v2.ReschedulePeerRequest.candidate_parents:type_name -> common.v2.Peer
	94,  // 2: scheduler.v2.DownloadPieceFinishedRequest.piece:type_name -> common.v2.Piece
	94,  // 3: scheduler.v2.DownloadPieceBackToSourceFinishedRequest.piece:type_name -> common.v2.Piece
	95,  // 4: scheduler.v2.DownloadPieceBackToSourceFailedRequest.backend:type_name -> errordetails.v2.Backend
	96,  // 5: scheduler.v2.DownloadPieceBackToSourceFailedRequest.unknown:type_name -> errordetails.v2.Unknown
	0,   // 6: scheduler.v2.AnnouncePeerRequest.register_peer_request:type_name -> scheduler.v2.RegisterPeerRequest
	1,   // 7: scheduler.v2.AnnouncePeerRequest.download_peer_started_request:type_name -> scheduler.v2.DownloadPeerStartedRequest
	2,   // 8: scheduler.v2.AnnouncePeerRequest.download_peer_back_to_source_started_request:type_name -> scheduler.v2.DownloadPeerBackToSourceStartedRequest
	3,   // 9: scheduler.v2.AnnouncePeerRequest.reschedule_peer_request:type_name -> scheduler.v2.ReschedulePeerRequest
	4,   // 10: scheduler.v2.AnnouncePeerRequest.download_peer_finished_request:type_name -> scheduler.v2.DownloadPeerFinishedRequest
	5,   // 11: scheduler.v2.AnnouncePeerRequest.download_peer_back_to_source_finished_request:type_name -> scheduler.v2.DownloadPeerBackToSourceFinishedRequest
	6,   // 12: scheduler.v2.AnnouncePeerRequest.download_peer_failed_request:type_name -> scheduler.v2.DownloadPeerFailedRequest
	7,   // 13: scheduler.v2.AnnouncePeerRequest.download_peer_back_to_source_failed_request:type_name -> scheduler.v2.DownloadPeerBackToSourceFailedRequest
	8,   // 14: scheduler.v2.AnnouncePeerRequest.download_piece_finished_request:type_name -> scheduler.v2.DownloadPieceFinishedRequest
	9,   // 15: scheduler.v2.AnnouncePeerRequest.download_piece_back_to_source_finished_request:type_name -> scheduler.v2.DownloadPieceBackToSourceFinishedRequest
	10,  // 16: scheduler.v2.AnnouncePeerRequest.download_piece_failed_request:type_name -> scheduler.v2.DownloadPieceFailedRequest
	11,  // 17: scheduler.v2.AnnouncePeerRequest.download_piece_back_to_source_failed_request:type_name -> scheduler.v2.DownloadPieceBackToSourceFailedRequest
	93,  // 18: scheduler.v2.NormalTaskResponse.candidate_parents:type_name -> common.v2.Peer
	13,  // 19: scheduler.v2.AnnouncePeerResponse.empty_task_response:type_name -> scheduler.v2.EmptyTaskResponse
	14,  // 20: scheduler.v2.AnnouncePeerResponse.normal_task_response:type_name -> scheduler.v2.NormalTaskResponse
	15,  // 21: scheduler.v2.AnnouncePeerResponse.need_back_to_source_response:type_name -> scheduler.v2.NeedBackToSourceResponse
	97,  // 22: scheduler.v2.AnnounceHostRequest.host:type_name -> common.v2.Host
	98,  // 23: scheduler.v2.AnnounceHostRequest.interval:type_name -> google.protobuf.Duration
	97,  // 24: scheduler.v2.ListHostsResponse.hosts:type_name -> common.v2.Host
	99,  // 25: scheduler.v2.RegisterCachePeerRequest.range:type_name -> common.v2.Range
	100, // 26: scheduler.v2.RegisterCachePeerRequest.type:type_name -> common.v2.TaskType
	101, // 27: scheduler.v2.RegisterCachePeerRequest.priority:type_name -> common.v2.Priority
	87,  // 28: scheduler.v2.RegisterCachePeerRequest.request_header:type_name -> scheduler.v2.RegisterCachePeerRequest.RequestHeaderEntry
	98,  // 29: scheduler.v2.RegisterCachePeerRequest.timeout:type_name -> google.protobuf.Duration
	102, // 30: scheduler.v2.RegisterCachePeerRequest.object_storage:type_name -> common.v2.ObjectStorage
	103, // 31: scheduler.v2.RegisterCachePeerRequest.hdfs:type_name -> common.v2.HDFS
	104, // 32: scheduler.v2.RescheduleCachePeerRequest.candidate_parents:type_name -> common.v2.CachePeer
	25,  // 33: scheduler.v2.AnnounceCachePeerRequest.register_cache_peer_request:type_name -> scheduler.v2.RegisterCachePeerRequest
	26,  // 34: scheduler.v2.AnnounceCachePeerRequest.download_cache_peer_started_request:type_name -> scheduler.v2.DownloadCachePeerStartedRequest
	27,  // 35: scheduler.v2.AnnounceCachePeerRequest.download_cache_peer_back_to_source_started_request:type_name -> scheduler.v2.DownloadCachePeerBackToSourceStartedRequest
	28,  // 36: scheduler.v2.AnnounceCachePeerRequest.reschedule_cache_peer_request:type_name -> scheduler.v2.RescheduleCachePeerRequest
	29,  // 37: scheduler.v2.AnnounceCachePeerRequest.download_cache_peer_finished_request:type_name -> scheduler.v2.DownloadCachePeerFinishedRequest
	30,  // 38: scheduler.v2.AnnounceCachePeerRequest.download_cache_peer_back_to_source_finished_request:type_name -> scheduler.v2.DownloadCachePeerBackToSourceFinishedRequest
	31,  // 39: scheduler.v2.AnnounceCachePeerRequest.download_cache_peer_failed_request:type_name -> scheduler.v2.DownloadCachePeerFailedRequest
	32,  // 40: scheduler.v2.AnnounceCachePeerRequest.download_cache_peer_back_to_source_failed_request:type_name -> scheduler.v2.DownloadCachePeerBackToSourceFailedRequest
	8,   // 41: scheduler.v2.AnnounceCachePeerRequest.download_piece_finished_request:type_name -> scheduler.v2.DownloadPieceFinishedRequest
	9,   // 42: scheduler.v2.AnnounceCachePeerRequest.download_piece_back_to_source_finished_request:type_name -> scheduler.v2.DownloadPieceBackToSourceFinishedRequest
	10,  // 43: scheduler.v2.AnnounceCachePeerRequest.download_piece_failed_request:type_name -> scheduler.v2.DownloadPieceFailedRequest
	11,  // 44: scheduler.v2.AnnounceCachePeerRequest.download_piece_back_to_source_failed_request:type_name -> scheduler.v2.DownloadPieceBackToSourceFailedRequest
	104, // 45: scheduler.v2.NormalCacheTaskResponse.candidate_parents:type_name -> common.v2.CachePeer
	34,  // 46: scheduler.v2.AnnounceCachePeerResponse.empty_cache_task_response:type_name -> scheduler.v2.EmptyCacheTaskResponse
	35,  // 47: scheduler.v2.AnnounceCachePeerResponse.normal_cache_task_response:type_name -> scheduler.v2.NormalCacheTaskResponse
	15,  // 48: scheduler.v2.AnnounceCachePeerResponse.need_back_to_source_response:type_name -> scheduler.v2.NeedBackToSourceResponse
	102, // 49: scheduler.v2.RegisterPersistentPeerRequest.object_storage:type_name -> common.v2.ObjectStorage
	98,  // 50: scheduler.v2.RegisterPersistentPeerRequest.timeout:type_name -> google.protobuf.Duration
	105, // 51: scheduler.v2.ReschedulePersistentPeerRequest.candidate_parents:type_name -> common.v2.PersistentPeer
	41,  // 52: scheduler.v2.AnnouncePersistentPeerRequest.register_persistent_peer_request:type_name -> scheduler.v2.RegisterPersistentPeerRequest
	42,  // 53: scheduler.v2.AnnouncePersistentPeerRequest.download_persistent_peer_started_request:type_name -> scheduler.v2.DownloadPersistentPeerStartedRequest
	43,  // 54: scheduler.v2.AnnouncePersistentPeerRequest.download_persistent_peer_back_to_source_started_request:type_name -> scheduler.v2.DownloadPersistentPeerBackToSourceStartedRequest
	44,  // 55: scheduler.v2.AnnouncePersistentPeerRequest.reschedule_persistent_peer_request:type_name -> scheduler.v2.ReschedulePersistentPeerRequest
	45,  // 56: scheduler.v2.AnnouncePersistentPeerRequest.download_persistent_peer_finished_request:type_name -> scheduler.v2.DownloadPersistentPeerFinishedRequest
	46,  // 57: scheduler.v2.AnnouncePersistentPeerRequest.download_persistent_peer_back_to_source_finished_request:type_name -> scheduler.v2.DownloadPersistentPeerBackToSourceFinishedRequest
	47,  // 58: scheduler.v2.AnnouncePersistentPeerRequest.download_persistent_peer_failed_request:type_name -> scheduler.v2.DownloadPersistentPeerFailedRequest
	48,  // 59: scheduler.v2.AnnouncePersistentPeerRequest.download_persistent_peer_back_to_source_failed_request:type_name -> scheduler.v2.DownloadPersistentPeerBackToSourceFailedRequest
	8,   // 60: scheduler.v2.AnnouncePersistentPeerRequest.download_piece_finished_request:type_name -> scheduler.v2.DownloadPieceFinishedRequest
	9,   // 61: scheduler.v2.AnnouncePersistentPeerRequest.download_piece_back_to_source_finished_request:type_name -> scheduler.v2.DownloadPieceBackToSourceFinishedRequest
	10,  // 62: scheduler.v2.AnnouncePersistentPeerRequest.download_piece_failed_request:type_name -> scheduler.v2.DownloadPieceFailedRequest
	11,  // 63: scheduler.v2.AnnouncePersistentPeerRequest.download_piece_back_to_source_failed_request:type_name -> scheduler.v2.DownloadPieceBackToSourceFailedRequest
	105, // 64: scheduler.v2.NormalPersistentTaskResponse.candidate_parents:type_name -> common.v2.PersistentPeer
	50,  // 65: scheduler.v2.AnnouncePersistentPeerResponse.empty_persistent_task_response:type_name -> scheduler.v2.EmptyPersistentTaskResponse
	51,  // 66: scheduler.v2.AnnouncePersistentPeerResponse.normal_persistent_task_response:type_name -> scheduler.v2.NormalPersistentTaskResponse
	15,  // 67: scheduler.v2.AnnouncePersistentPeerResponse.need_back_to_source_response:type_name -> scheduler.v2.NeedBackToSourceResponse
	102, // 68: scheduler.v2.UploadPersistentTaskStartedRequest.object_storage:type_name -> common.v2.ObjectStorage
	98,  // 69: scheduler.v2.UploadPersistentTaskStartedRequest.ttl:type_name -> google.protobuf.Duration
	98,  // 70: scheduler.v2.RegisterPersistentCachePeerRequest.timeout:type_name -> google.protobuf.Duration
	106, // 71: scheduler.v2.ReschedulePersistentCachePeerRequest.candidate_parents:type_name -> common.v2.PersistentCachePeer
	60,  // 72: scheduler.v2.AnnouncePersistentCachePeerRequest.register_persistent_cache_peer_request:type_name -> scheduler.v2.RegisterPersistentCachePeerRequest
	61,  // 73: scheduler.v2.AnnouncePersistentCachePeerRequest.download_persistent_cache_peer_started_request:type_name -> scheduler.v2.DownloadPersistentCachePeerStartedRequest
	62,  // 74: scheduler.v2.AnnouncePersistentCachePeerRequest.reschedule_persistent_cache_peer_request:type_name -> scheduler.v2.ReschedulePersistentCachePeerRequest
	63,  // 75: scheduler.v2.AnnouncePersistentCachePeerRequest.download_persistent_cache_peer_finished_request:type_name -> scheduler.v2.DownloadPersistentCachePeerFinishedRequest
	64,  // 76: scheduler.v2.AnnouncePersistentCachePeerRequest.download_persistent_cache_peer_failed_request:type_name -> scheduler.v2.DownloadPersistentCachePeerFailedRequest
	8,   // 77: scheduler.v2.AnnouncePersistentCachePeerRequest.download_piece_finished_request:type_name -> scheduler.v2.DownloadPieceFinishedRequest
	10,  // 78: scheduler.v2.AnnouncePersistentCachePeerRequest.download_piece_failed_request:type_name -> scheduler.v2.DownloadPieceFailedRequest
	106, // 79: scheduler.v2.NormalPersistentCacheTaskResponse.candidate_parents:type_name -> common.v2.PersistentCachePeer
	66,  // 80: scheduler.v2.AnnouncePersistentCachePeerResponse.empty_persistent_cache_task_response:type_name -> scheduler.v2.EmptyPersistentCacheTaskResponse
	67,  // 81: scheduler.v2.AnnouncePersistentCachePeerResponse.normal_persistent_cache_task_response:type_name -> scheduler.v2.NormalPersistentCacheTaskResponse
	98,  // 82: scheduler.v2.UploadPersistentCacheTaskStartedRequest.ttl:type_name -> google.protobuf.Duration
	88,  // 83: scheduler.v2.PreheatImageRequest.header:type_name -> scheduler.v2.PreheatImageRequest.HeaderEntry
	98,  // 84: scheduler.v2.PreheatImageRequest.timeout:type_name -> google.protobuf.Duration
	101, // 85: scheduler.v2.PreheatImageRequest.priority:type_name -> common.v2.Priority
	89,  // 86: scheduler.v2.StatImageRequest.header:type_name -> scheduler.v2.StatImageRequest.HeaderEntry
	98,  // 87: scheduler.v2.StatImageRequest.timeout:type_name -> google.protobuf.Duration
	80,  // 88: scheduler.v2.StatImageResponse.image:type_name -> scheduler.v2.Image
	79,  // 89: scheduler.v2.StatImageResponse.peers:type_name -> scheduler.v2.PeerImage
	81,  // 90: scheduler.v2.PeerImage.cached_layers:type_name -> scheduler.v2.Layer
	81,  // 91: scheduler.v2.Image.layers:type_name -> scheduler.v2.Layer
	90,  // 92: scheduler.v2.PreheatFileRequest.header:type_name -> scheduler.v2.PreheatFileRequest.HeaderEntry
	98,  // 93: scheduler.v2.PreheatFileRequest.timeout:type_name -> google.protobuf.Duration
	101, // 94: scheduler.v2.PreheatFileRequest.priority:type_name -> common.v2.Priority
	102, // 95: scheduler.v2.PreheatFileRequest.object_storage:type_name -> common.v2.ObjectStorage
	103, // 96: scheduler.v2.PreheatFileRequest.hdfs:type_name -> common.v2.HDFS
	91,  // 97: scheduler.v2.StatFileRequest.header:type_name -> scheduler.v2.StatFileRequest.HeaderEntry
	98,  // 98: scheduler.v2.StatFileRequest.timeout:type_name -> google.protobuf.Duration
	102, // 99: scheduler.v2.StatFileRequest.object_storage:type_name -> common.v2.ObjectStorage
	103, // 100: scheduler.v2.StatFileRequest.hdfs:type_name -> common.v2.HDFS
	85,  // 101: scheduler.v2.StatFileResponse.peers:type_name -> scheduler.v2.PeerFile
	86,  // 102: scheduler.v2.PeerFile.cached_files:type_name -> scheduler.v2.File
	12,  // 103: scheduler.v2.Scheduler.AnnouncePeer:input_type -> scheduler.v2.AnnouncePeerRequest
	17,  // 104: scheduler.v2.Scheduler.StatPeer:input_type -> scheduler.v2.StatPeerRequest
	18,  // 105: scheduler.v2.Scheduler.DeletePeer:input_type -> scheduler.v2.DeletePeerRequest
	19,  // 106: scheduler.v2.Scheduler.StatTask:input_type -> scheduler.v2.StatTaskRequest
	20,  // 107: scheduler.v2.Scheduler.DeleteTask:input_type -> scheduler.v2.DeleteTaskRequest
	21,  // 108: scheduler.v2.Scheduler.AnnounceHost:input_type -> scheduler.v2.AnnounceHostRequest
	22,  // 109: scheduler.v2.Scheduler.ListHosts:input_type -> scheduler.v2.ListHostsRequest
	24,  // 110: scheduler.v2.Scheduler.DeleteHost:input_type -> scheduler.v2.DeleteHostRequest
	33,  // 111: scheduler.v2.Scheduler.AnnounceCachePeer:input_type -> scheduler.v2.AnnounceCachePeerRequest
	37,  // 112: scheduler.v2.Scheduler.StatCachePeer:input_type -> scheduler.v2.StatCachePeerRequest
	38,  // 113: scheduler.v2.Scheduler.DeleteCachePeer:input_type -> scheduler.v2.DeleteCachePeerRequest
	39,  // 114: scheduler.v2.Scheduler.StatCacheTask:input_type -> scheduler.v2.StatCacheTaskRequest
	40,  // 115: scheduler.v2.Scheduler.DeleteCacheTask:input_type -> scheduler.v2.DeleteCacheTaskRequest
	49,  // 116: scheduler.v2.Scheduler.AnnouncePersistentPeer:input_type -> scheduler.v2.AnnouncePersistentPeerRequest
	53,  // 117: scheduler.v2.Scheduler.StatPersistentPeer:input_type -> scheduler.v2.StatPersistentPeerRequest
	54,  // 118: scheduler.v2.Scheduler.DeletePersistentPeer:input_type -> scheduler.v2.DeletePersistentPeerRequest
	55,  // 119: scheduler.v2.Scheduler.UploadPersistentTaskStarted:input_type -> scheduler.v2.UploadPersistentTaskStartedRequest
	56,  // 120: scheduler.v2.Scheduler.UploadPersistentTaskFinished:input_type -> scheduler.v2.UploadPersistentTaskFinishedRequest
	57,  // 121: scheduler.v2.Scheduler.UploadPersistentTaskFailed:input_type -> scheduler.v2.UploadPersistentTaskFailedRequest
	58,  // 122: scheduler.v2.Scheduler.StatPersistentTask:input_type -> scheduler.v2.StatPersistentTaskRequest
	59,  // 123: scheduler.v2.Scheduler.DeletePersistentTask:input_type -> scheduler.v2.DeletePersistentTaskRequest
	65,  // 124: scheduler.v2.Scheduler.AnnouncePersistentCachePeer:input_type -> scheduler.v2.AnnouncePersistentCachePeerRequest
	69,  // 125: scheduler.v2.Scheduler.StatPersistentCachePeer:input_type -> scheduler.v2.StatPersistentCachePeerRequest
	70,  // 126: scheduler.v2.Scheduler.DeletePersistentCachePeer:input_type -> scheduler.v2.DeletePersistentCachePeerRequest
	71,  // 127: scheduler.v2.Scheduler.UploadPersistentCacheTaskStarted:input_type -> scheduler.v2.UploadPersistentCacheTaskStartedRequest
	72,  // 128: scheduler.v2.Scheduler.UploadPersistentCacheTaskFinished:input_type -> scheduler.v2.UploadPersistentCacheTaskFinishedRequest
	73,  // 129: scheduler.v2.Scheduler.UploadPersistentCacheTaskFailed:input_type -> scheduler.v2.UploadPersistentCacheTaskFailedRequest
	74,  // 130: scheduler.v2.Scheduler.StatPersistentCacheTask:input_type -> scheduler.v2.StatPersistentCacheTaskRequest
	75,  // 131: scheduler.v2.Scheduler.DeletePersistentCacheTask:input_type -> scheduler.v2.DeletePersistentCacheTaskRequest
	76,  // 132: scheduler.v2.Scheduler.PreheatImage:input_type -> scheduler.v2.PreheatImageRequest
	77,  // 133: scheduler.v2.Scheduler.StatImage:input_type -> scheduler.v2.StatImageRequest
	82,  // 134: scheduler.v2.Scheduler.PreheatFile:input_type -> scheduler.v2.PreheatFileRequest
	83,  // 135: scheduler.v2.Scheduler.StatFile:input_type -> scheduler.v2.StatFileRequest
	16,  // 136: scheduler.v2.Scheduler.AnnouncePeer:output_type -> scheduler.v2.AnnouncePeerResponse
	93,  // 137: scheduler.v2.Scheduler.StatPeer:output_type -> common.v2.Peer
	107, // 138: scheduler.v2.Scheduler.DeletePeer:output_type -> google.protobuf.Empty
	108, // 139: scheduler.v2.Scheduler.StatTask:output_type -> common.v2.Task
	107, // 140: scheduler.v2.Scheduler.DeleteTask:output_type -> google.protobuf.Empty
	107, // 141: scheduler.v2.Scheduler.AnnounceHost:output_type -> google.protobuf.Empty
	23,  // 142: scheduler.v2.Scheduler.ListHosts:output_type -> scheduler.v2.ListHostsResponse
	107, // 143: scheduler.v2.Scheduler.DeleteHost:output_type -> google.protobuf.Empty
	36,  // 144: scheduler.v2.Scheduler.AnnounceCachePeer:output_type -> scheduler.v2.AnnounceCachePeerResponse
	104, // 145: scheduler.v2.Scheduler.StatCachePeer:output_type -> common.v2.CachePeer
	107, // 146: scheduler.v2.Scheduler.DeleteCachePeer:output_type -> google.protobuf.Empty
	109, // 147: scheduler.v2.Scheduler.StatCacheTask:output_type -> common.v2.CacheTask
	107, // 148: scheduler.v2.Scheduler.DeleteCacheTask:output_type -> google.protobuf.Empty
	52,  // 149: scheduler.v2.Scheduler.AnnouncePersistentPeer:output_type -> scheduler.v2.AnnouncePersistentPeerResponse
	105, // 150: scheduler.v2.Scheduler.StatPersistentPeer:output_type -> common.v2.PersistentPeer
	107, // 151: scheduler.v2.Scheduler.DeletePersistentPeer:output_type -> google.protobuf.Empty
	107, // 152: scheduler.v2.Scheduler.UploadPersistentTaskStarted:output_type -> google.protobuf.Empty
	110, // 153: scheduler.v2.Scheduler.UploadPersistentTaskFinished:output_type -> common.v2.PersistentTask
	107, // 154: scheduler.v2.Scheduler.UploadPersistentTaskFailed:output_type -> google.protobuf.Empty
	110, // 155: scheduler.v2.Scheduler.StatPersistentTask:output_type -> common.v2.PersistentTask
	107, // 156: scheduler.v2.Scheduler.DeletePersistentTask:output_type -> google.protobuf.Empty
	68,  // 157: scheduler.v2.Scheduler.AnnouncePersistentCachePeer:output_type -> scheduler.v2.AnnouncePersistentCachePeerResponse
	106, // 158: scheduler.v2.Scheduler.StatPersistentCachePeer:output_type -> common.v2.PersistentCachePeer
	107, // 159: scheduler.v2.Scheduler.DeletePersistentCachePeer:output_type -> google.protobuf.Empty
	107, // 160: scheduler.v2.Scheduler.UploadPersistentCacheTaskStarted:output_type -> google.protobuf.Empty
	111, // 161: scheduler.v2.Scheduler.UploadPersistentCacheTaskFinished:output_type -> common.v2.PersistentCacheTask
	107, // 162: scheduler.v2.Scheduler.UploadPersistentCacheTaskFailed:output_type -> google.protobuf.Empty
	111, // 163: scheduler.v2.Scheduler.StatPersistentCacheTask:output_type -> common.v2.PersistentCacheTask
	107, // 164: scheduler.v2.Scheduler.DeletePersistentCacheTask:output_type -> google.protobuf.Empty
	107, // 165: scheduler.v2.Scheduler.PreheatImage:output_type -> google.protobuf.Empty
	78,  // 166: scheduler.v2.Scheduler.StatImage:output_type -> scheduler.v2.StatImageResponse
	107, // 167: scheduler.v2.Scheduler.PreheatFile:output_type -> google.protobuf.Empty
	84,  // 168: scheduler.v2.Scheduler.StatFile:output_type -> scheduler.v2.StatFileResponse
	136, // [136:169] is the sub-list for method output_type
	103, // [103:136] is the sub-list for method input_type
	103, // [103:103] is the sub-list for extension type_name
	103, // [103:103] is the sub-list for extension extendee
	0,   // [0:103] is the sub-list for field type_name
}

func init() { file_pkg_apis_scheduler_v2_scheduler_proto_init() }
func file_pkg_apis_scheduler_v2_scheduler_proto_init() {
	if File_pkg_apis_scheduler_v2_scheduler_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RegisterPeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPeerStartedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPeerBackToSourceStartedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReschedulePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPeerFinishedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPeerBackToSourceFinishedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPeerFailedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPeerBackToSourceFailedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPieceFinishedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPieceBackToSourceFinishedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPieceFailedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPieceBackToSourceFailedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnnouncePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EmptyTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NormalTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NeedBackToSourceResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnnouncePeerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatPeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeletePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnnounceHostRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListHostsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListHostsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteHostRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RegisterCachePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadCachePeerStartedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadCachePeerBackToSourceStartedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RescheduleCachePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadCachePeerFinishedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadCachePeerBackToSourceFinishedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadCachePeerFailedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadCachePeerBackToSourceFailedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnnounceCachePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EmptyCacheTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NormalCacheTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnnounceCachePeerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatCachePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteCachePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatCacheTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteCacheTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RegisterPersistentPeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPersistentPeerStartedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPersistentPeerBackToSourceStartedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReschedulePersistentPeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPersistentPeerFinishedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPersistentPeerBackToSourceFinishedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPersistentPeerFailedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPersistentPeerBackToSourceFailedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnnouncePersistentPeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EmptyPersistentTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NormalPersistentTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnnouncePersistentPeerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatPersistentPeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeletePersistentPeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UploadPersistentTaskStartedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UploadPersistentTaskFinishedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UploadPersistentTaskFailedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatPersistentTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeletePersistentTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RegisterPersistentCachePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPersistentCachePeerStartedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReschedulePersistentCachePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPersistentCachePeerFinishedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DownloadPersistentCachePeerFailedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnnouncePersistentCachePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EmptyPersistentCacheTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NormalPersistentCacheTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnnouncePersistentCachePeerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatPersistentCachePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeletePersistentCachePeerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UploadPersistentCacheTaskStartedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UploadPersistentCacheTaskFinishedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UploadPersistentCacheTaskFailedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatPersistentCacheTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeletePersistentCacheTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PreheatImageRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatImageRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatImageResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PeerImage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Image); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Layer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PreheatFileRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatFileRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatFileResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PeerFile); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*File); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[2].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[3].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[6].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[7].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[10].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[11].OneofWrappers = []interface{}{
		(*DownloadPieceBackToSourceFailedRequest_Backend)(nil),
		(*DownloadPieceBackToSourceFailedRequest_Unknown)(nil),
	}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[12].OneofWrappers = []interface{}{
		(*AnnouncePeerRequest_RegisterPeerRequest)(nil),
		(*AnnouncePeerRequest_DownloadPeerStartedRequest)(nil),
		(*AnnouncePeerRequest_DownloadPeerBackToSourceStartedRequest)(nil),
		(*AnnouncePeerRequest_ReschedulePeerRequest)(nil),
		(*AnnouncePeerRequest_DownloadPeerFinishedRequest)(nil),
		(*AnnouncePeerRequest_DownloadPeerBackToSourceFinishedRequest)(nil),
		(*AnnouncePeerRequest_DownloadPeerFailedRequest)(nil),
		(*AnnouncePeerRequest_DownloadPeerBackToSourceFailedRequest)(nil),
		(*AnnouncePeerRequest_DownloadPieceFinishedRequest)(nil),
		(*AnnouncePeerRequest_DownloadPieceBackToSourceFinishedRequest)(nil),
		(*AnnouncePeerRequest_DownloadPieceFailedRequest)(nil),
		(*AnnouncePeerRequest_DownloadPieceBackToSourceFailedRequest)(nil),
	}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[15].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[16].OneofWrappers = []interface{}{
		(*AnnouncePeerResponse_EmptyTaskResponse)(nil),
		(*AnnouncePeerResponse_NormalTaskResponse)(nil),
		(*AnnouncePeerResponse_NeedBackToSourceResponse)(nil),
	}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[21].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[22].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[25].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[27].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[28].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[31].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[32].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[33].OneofWrappers = []interface{}{
		(*AnnounceCachePeerRequest_RegisterCachePeerRequest)(nil),
		(*AnnounceCachePeerRequest_DownloadCachePeerStartedRequest)(nil),
		(*AnnounceCachePeerRequest_DownloadCachePeerBackToSourceStartedRequest)(nil),
		(*AnnounceCachePeerRequest_RescheduleCachePeerRequest)(nil),
		(*AnnounceCachePeerRequest_DownloadCachePeerFinishedRequest)(nil),
		(*AnnounceCachePeerRequest_DownloadCachePeerBackToSourceFinishedRequest)(nil),
		(*AnnounceCachePeerRequest_DownloadCachePeerFailedRequest)(nil),
		(*AnnounceCachePeerRequest_DownloadCachePeerBackToSourceFailedRequest)(nil),
		(*AnnounceCachePeerRequest_DownloadPieceFinishedRequest)(nil),
		(*AnnounceCachePeerRequest_DownloadPieceBackToSourceFinishedRequest)(nil),
		(*AnnounceCachePeerRequest_DownloadPieceFailedRequest)(nil),
		(*AnnounceCachePeerRequest_DownloadPieceBackToSourceFailedRequest)(nil),
	}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[36].OneofWrappers = []interface{}{
		(*AnnounceCachePeerResponse_EmptyCacheTaskResponse)(nil),
		(*AnnounceCachePeerResponse_NormalCacheTaskResponse)(nil),
		(*AnnounceCachePeerResponse_NeedBackToSourceResponse)(nil),
	}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[41].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[43].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[44].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[47].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[48].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[49].OneofWrappers = []interface{}{
		(*AnnouncePersistentPeerRequest_RegisterPersistentPeerRequest)(nil),
		(*AnnouncePersistentPeerRequest_DownloadPersistentPeerStartedRequest)(nil),
		(*AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceStartedRequest)(nil),
		(*AnnouncePersistentPeerRequest_ReschedulePersistentPeerRequest)(nil),
		(*AnnouncePersistentPeerRequest_DownloadPersistentPeerFinishedRequest)(nil),
		(*AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceFinishedRequest)(nil),
		(*AnnouncePersistentPeerRequest_DownloadPersistentPeerFailedRequest)(nil),
		(*AnnouncePersistentPeerRequest_DownloadPersistentPeerBackToSourceFailedRequest)(nil),
		(*AnnouncePersistentPeerRequest_DownloadPieceFinishedRequest)(nil),
		(*AnnouncePersistentPeerRequest_DownloadPieceBackToSourceFinishedRequest)(nil),
		(*AnnouncePersistentPeerRequest_DownloadPieceFailedRequest)(nil),
		(*AnnouncePersistentPeerRequest_DownloadPieceBackToSourceFailedRequest)(nil),
	}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[52].OneofWrappers = []interface{}{
		(*AnnouncePersistentPeerResponse_EmptyPersistentTaskResponse)(nil),
		(*AnnouncePersistentPeerResponse_NormalPersistentTaskResponse)(nil),
		(*AnnouncePersistentPeerResponse_NeedBackToSourceResponse)(nil),
	}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[55].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[57].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[60].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[62].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[64].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[65].OneofWrappers = []interface{}{
		(*AnnouncePersistentCachePeerRequest_RegisterPersistentCachePeerRequest)(nil),
		(*AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerStartedRequest)(nil),
		(*AnnouncePersistentCachePeerRequest_ReschedulePersistentCachePeerRequest)(nil),
		(*AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerFinishedRequest)(nil),
		(*AnnouncePersistentCachePeerRequest_DownloadPersistentCachePeerFailedRequest)(nil),
		(*AnnouncePersistentCachePeerRequest_DownloadPieceFinishedRequest)(nil),
		(*AnnouncePersistentCachePeerRequest_DownloadPieceFailedRequest)(nil),
	}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[68].OneofWrappers = []interface{}{
		(*AnnouncePersistentCachePeerResponse_EmptyPersistentCacheTaskResponse)(nil),
		(*AnnouncePersistentCachePeerResponse_NormalPersistentCacheTaskResponse)(nil),
	}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[71].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[73].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[76].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[77].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[81].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[82].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[83].OneofWrappers = []interface{}{}
	file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes[86].OneofWrappers = []interface{}{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_pkg_apis_scheduler_v2_scheduler_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   92,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_pkg_apis_scheduler_v2_scheduler_proto_goTypes,
		DependencyIndexes: file_pkg_apis_scheduler_v2_scheduler_proto_depIdxs,
		MessageInfos:      file_pkg_apis_scheduler_v2_scheduler_proto_msgTypes,
	}.Build()
	File_pkg_apis_scheduler_v2_scheduler_proto = out.File
	file_pkg_apis_scheduler_v2_scheduler_proto_rawDesc = nil
	file_pkg_apis_scheduler_v2_scheduler_proto_goTypes = nil
	file_pkg_apis_scheduler_v2_scheduler_proto_depIdxs = nil
}
