// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.33.0
// 	protoc        v3.21.4
// source: plan.proto

package planpb

import (
	commonpb "github.com/milvus-io/milvus-proto/go-api/v2/commonpb"
	schemapb "github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type OpType int32

const (
	OpType_Invalid      OpType = 0
	OpType_GreaterThan  OpType = 1
	OpType_GreaterEqual OpType = 2
	OpType_LessThan     OpType = 3
	OpType_LessEqual    OpType = 4
	OpType_Equal        OpType = 5
	OpType_NotEqual     OpType = 6
	OpType_PrefixMatch  OpType = 7  // startsWith
	OpType_PostfixMatch OpType = 8  // endsWith
	OpType_Match        OpType = 9  // like
	OpType_Range        OpType = 10 // for case 1 < a < b
	OpType_In           OpType = 11 // TODO:: used for term expr
	OpType_NotIn        OpType = 12
	OpType_TextMatch    OpType = 13 // text match
	OpType_PhraseMatch  OpType = 14 // phrase match
	OpType_InnerMatch   OpType = 15 // substring (e.g., "%value%")
)

// Enum value maps for OpType.
var (
	OpType_name = map[int32]string{
		0:  "Invalid",
		1:  "GreaterThan",
		2:  "GreaterEqual",
		3:  "LessThan",
		4:  "LessEqual",
		5:  "Equal",
		6:  "NotEqual",
		7:  "PrefixMatch",
		8:  "PostfixMatch",
		9:  "Match",
		10: "Range",
		11: "In",
		12: "NotIn",
		13: "TextMatch",
		14: "PhraseMatch",
		15: "InnerMatch",
	}
	OpType_value = map[string]int32{
		"Invalid":      0,
		"GreaterThan":  1,
		"GreaterEqual": 2,
		"LessThan":     3,
		"LessEqual":    4,
		"Equal":        5,
		"NotEqual":     6,
		"PrefixMatch":  7,
		"PostfixMatch": 8,
		"Match":        9,
		"Range":        10,
		"In":           11,
		"NotIn":        12,
		"TextMatch":    13,
		"PhraseMatch":  14,
		"InnerMatch":   15,
	}
)

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

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

func (OpType) Descriptor() protoreflect.EnumDescriptor {
	return file_plan_proto_enumTypes[0].Descriptor()
}

func (OpType) Type() protoreflect.EnumType {
	return &file_plan_proto_enumTypes[0]
}

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

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

type ArithOpType int32

const (
	ArithOpType_Unknown     ArithOpType = 0
	ArithOpType_Add         ArithOpType = 1
	ArithOpType_Sub         ArithOpType = 2
	ArithOpType_Mul         ArithOpType = 3
	ArithOpType_Div         ArithOpType = 4
	ArithOpType_Mod         ArithOpType = 5
	ArithOpType_ArrayLength ArithOpType = 6
)

// Enum value maps for ArithOpType.
var (
	ArithOpType_name = map[int32]string{
		0: "Unknown",
		1: "Add",
		2: "Sub",
		3: "Mul",
		4: "Div",
		5: "Mod",
		6: "ArrayLength",
	}
	ArithOpType_value = map[string]int32{
		"Unknown":     0,
		"Add":         1,
		"Sub":         2,
		"Mul":         3,
		"Div":         4,
		"Mod":         5,
		"ArrayLength": 6,
	}
)

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

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

func (ArithOpType) Descriptor() protoreflect.EnumDescriptor {
	return file_plan_proto_enumTypes[1].Descriptor()
}

func (ArithOpType) Type() protoreflect.EnumType {
	return &file_plan_proto_enumTypes[1]
}

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

// Deprecated: Use ArithOpType.Descriptor instead.
func (ArithOpType) EnumDescriptor() ([]byte, []int) {
	return file_plan_proto_rawDescGZIP(), []int{1}
}

type VectorType int32

const (
	VectorType_BinaryVector          VectorType = 0
	VectorType_FloatVector           VectorType = 1
	VectorType_Float16Vector         VectorType = 2
	VectorType_BFloat16Vector        VectorType = 3
	VectorType_SparseFloatVector     VectorType = 4
	VectorType_Int8Vector            VectorType = 5
	VectorType_EmbListFloatVector    VectorType = 6
	VectorType_EmbListFloat16Vector  VectorType = 7
	VectorType_EmbListBFloat16Vector VectorType = 8
	VectorType_EmbListInt8Vector     VectorType = 9
	VectorType_EmbListBinaryVector   VectorType = 10
)

// Enum value maps for VectorType.
var (
	VectorType_name = map[int32]string{
		0:  "BinaryVector",
		1:  "FloatVector",
		2:  "Float16Vector",
		3:  "BFloat16Vector",
		4:  "SparseFloatVector",
		5:  "Int8Vector",
		6:  "EmbListFloatVector",
		7:  "EmbListFloat16Vector",
		8:  "EmbListBFloat16Vector",
		9:  "EmbListInt8Vector",
		10: "EmbListBinaryVector",
	}
	VectorType_value = map[string]int32{
		"BinaryVector":          0,
		"FloatVector":           1,
		"Float16Vector":         2,
		"BFloat16Vector":        3,
		"SparseFloatVector":     4,
		"Int8Vector":            5,
		"EmbListFloatVector":    6,
		"EmbListFloat16Vector":  7,
		"EmbListBFloat16Vector": 8,
		"EmbListInt8Vector":     9,
		"EmbListBinaryVector":   10,
	}
)

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

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

func (VectorType) Descriptor() protoreflect.EnumDescriptor {
	return file_plan_proto_enumTypes[2].Descriptor()
}

func (VectorType) Type() protoreflect.EnumType {
	return &file_plan_proto_enumTypes[2]
}

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

// Deprecated: Use VectorType.Descriptor instead.
func (VectorType) EnumDescriptor() ([]byte, []int) {
	return file_plan_proto_rawDescGZIP(), []int{2}
}

// MatchType defines the type of match operation for struct array queries
type MatchType int32

const (
	MatchType_MatchAll   MatchType = 0 // All elements must match the predicate
	MatchType_MatchAny   MatchType = 1 // At least one element matches the predicate
	MatchType_MatchLeast MatchType = 2 // At least N elements match the predicate
	MatchType_MatchMost  MatchType = 3 // At most N elements match the predicate
	MatchType_MatchExact MatchType = 4 // Exactly N elements match the predicate
)

// Enum value maps for MatchType.
var (
	MatchType_name = map[int32]string{
		0: "MatchAll",
		1: "MatchAny",
		2: "MatchLeast",
		3: "MatchMost",
		4: "MatchExact",
	}
	MatchType_value = map[string]int32{
		"MatchAll":   0,
		"MatchAny":   1,
		"MatchLeast": 2,
		"MatchMost":  3,
		"MatchExact": 4,
	}
)

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

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

func (MatchType) Descriptor() protoreflect.EnumDescriptor {
	return file_plan_proto_enumTypes[3].Descriptor()
}

func (MatchType) Type() protoreflect.EnumType {
	return &file_plan_proto_enumTypes[3]
}

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

// Deprecated: Use MatchType.Descriptor instead.
func (MatchType) EnumDescriptor() ([]byte, []int) {
	return file_plan_proto_rawDescGZIP(), []int{3}
}

type AggregateOp int32

const (
	AggregateOp_sum   AggregateOp = 0
	AggregateOp_count AggregateOp = 1
	AggregateOp_avg   AggregateOp = 2
	AggregateOp_min   AggregateOp = 3
	AggregateOp_max   AggregateOp = 4
)

// Enum value maps for AggregateOp.
var (
	AggregateOp_name = map[int32]string{
		0: "sum",
		1: "count",
		2: "avg",
		3: "min",
		4: "max",
	}
	AggregateOp_value = map[string]int32{
		"sum":   0,
		"count": 1,
		"avg":   2,
		"min":   3,
		"max":   4,
	}
)

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

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

func (AggregateOp) Descriptor() protoreflect.EnumDescriptor {
	return file_plan_proto_enumTypes[4].Descriptor()
}

func (AggregateOp) Type() protoreflect.EnumType {
	return &file_plan_proto_enumTypes[4]
}

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

// Deprecated: Use AggregateOp.Descriptor instead.
func (AggregateOp) EnumDescriptor() ([]byte, []int) {
	return file_plan_proto_rawDescGZIP(), []int{4}
}

type FunctionType int32

const (
	FunctionType_FunctionTypeWeight FunctionType = 0
	FunctionType_FunctionTypeRandom FunctionType = 1
)

// Enum value maps for FunctionType.
var (
	FunctionType_name = map[int32]string{
		0: "FunctionTypeWeight",
		1: "FunctionTypeRandom",
	}
	FunctionType_value = map[string]int32{
		"FunctionTypeWeight": 0,
		"FunctionTypeRandom": 1,
	}
)

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

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

func (FunctionType) Descriptor() protoreflect.EnumDescriptor {
	return file_plan_proto_enumTypes[5].Descriptor()
}

func (FunctionType) Type() protoreflect.EnumType {
	return &file_plan_proto_enumTypes[5]
}

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

// Deprecated: Use FunctionType.Descriptor instead.
func (FunctionType) EnumDescriptor() ([]byte, []int) {
	return file_plan_proto_rawDescGZIP(), []int{5}
}

// FunctionMode decide how to calculate boost score
// for multiple boost function scores
type FunctionMode int32

const (
	FunctionMode_FunctionModeMultiply FunctionMode = 0
	FunctionMode_FunctionModeSum      FunctionMode = 1
)

// Enum value maps for FunctionMode.
var (
	FunctionMode_name = map[int32]string{
		0: "FunctionModeMultiply",
		1: "FunctionModeSum",
	}
	FunctionMode_value = map[string]int32{
		"FunctionModeMultiply": 0,
		"FunctionModeSum":      1,
	}
)

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

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

func (FunctionMode) Descriptor() protoreflect.EnumDescriptor {
	return file_plan_proto_enumTypes[6].Descriptor()
}

func (FunctionMode) Type() protoreflect.EnumType {
	return &file_plan_proto_enumTypes[6]
}

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

// Deprecated: Use FunctionMode.Descriptor instead.
func (FunctionMode) EnumDescriptor() ([]byte, []int) {
	return file_plan_proto_rawDescGZIP(), []int{6}
}

// BoostMode decide how to calculate final score
// for origin score and boost score.
type BoostMode int32

const (
	BoostMode_BoostModeMultiply BoostMode = 0
	BoostMode_BoostModeSum      BoostMode = 1
)

// Enum value maps for BoostMode.
var (
	BoostMode_name = map[int32]string{
		0: "BoostModeMultiply",
		1: "BoostModeSum",
	}
	BoostMode_value = map[string]int32{
		"BoostModeMultiply": 0,
		"BoostModeSum":      1,
	}
)

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

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

func (BoostMode) Descriptor() protoreflect.EnumDescriptor {
	return file_plan_proto_enumTypes[7].Descriptor()
}

func (BoostMode) Type() protoreflect.EnumType {
	return &file_plan_proto_enumTypes[7]
}

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

// Deprecated: Use BoostMode.Descriptor instead.
func (BoostMode) EnumDescriptor() ([]byte, []int) {
	return file_plan_proto_rawDescGZIP(), []int{7}
}

// 0: invalid
// 1: json_contains | array_contains
// 2: json_contains_all | array_contains_all
// 3: json_contains_any | array_contains_any
type JSONContainsExpr_JSONOp int32

const (
	JSONContainsExpr_Invalid     JSONContainsExpr_JSONOp = 0
	JSONContainsExpr_Contains    JSONContainsExpr_JSONOp = 1
	JSONContainsExpr_ContainsAll JSONContainsExpr_JSONOp = 2
	JSONContainsExpr_ContainsAny JSONContainsExpr_JSONOp = 3
)

// Enum value maps for JSONContainsExpr_JSONOp.
var (
	JSONContainsExpr_JSONOp_name = map[int32]string{
		0: "Invalid",
		1: "Contains",
		2: "ContainsAll",
		3: "ContainsAny",
	}
	JSONContainsExpr_JSONOp_value = map[string]int32{
		"Invalid":     0,
		"Contains":    1,
		"ContainsAll": 2,
		"ContainsAny": 3,
	}
)

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

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

func (JSONContainsExpr_JSONOp) Descriptor() protoreflect.EnumDescriptor {
	return file_plan_proto_enumTypes[8].Descriptor()
}

func (JSONContainsExpr_JSONOp) Type() protoreflect.EnumType {
	return &file_plan_proto_enumTypes[8]
}

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

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

type NullExpr_NullOp int32

const (
	NullExpr_Invalid   NullExpr_NullOp = 0
	NullExpr_IsNull    NullExpr_NullOp = 1
	NullExpr_IsNotNull NullExpr_NullOp = 2
)

// Enum value maps for NullExpr_NullOp.
var (
	NullExpr_NullOp_name = map[int32]string{
		0: "Invalid",
		1: "IsNull",
		2: "IsNotNull",
	}
	NullExpr_NullOp_value = map[string]int32{
		"Invalid":   0,
		"IsNull":    1,
		"IsNotNull": 2,
	}
)

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

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

func (NullExpr_NullOp) Descriptor() protoreflect.EnumDescriptor {
	return file_plan_proto_enumTypes[9].Descriptor()
}

func (NullExpr_NullOp) Type() protoreflect.EnumType {
	return &file_plan_proto_enumTypes[9]
}

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

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

type GISFunctionFilterExpr_GISOp int32

const (
	GISFunctionFilterExpr_Invalid    GISFunctionFilterExpr_GISOp = 0
	GISFunctionFilterExpr_Equals     GISFunctionFilterExpr_GISOp = 1
	GISFunctionFilterExpr_Touches    GISFunctionFilterExpr_GISOp = 2
	GISFunctionFilterExpr_Overlaps   GISFunctionFilterExpr_GISOp = 3
	GISFunctionFilterExpr_Crosses    GISFunctionFilterExpr_GISOp = 4
	GISFunctionFilterExpr_Contains   GISFunctionFilterExpr_GISOp = 5
	GISFunctionFilterExpr_Intersects GISFunctionFilterExpr_GISOp = 6
	GISFunctionFilterExpr_Within     GISFunctionFilterExpr_GISOp = 7
	GISFunctionFilterExpr_DWithin    GISFunctionFilterExpr_GISOp = 8
	// STIsValid is a special operator that conflicts with proto-generated default methods.
	// Using STIsValid instead of IsValid to avoid naming conflicts with IsValid() method.
	GISFunctionFilterExpr_STIsValid GISFunctionFilterExpr_GISOp = 9
)

// Enum value maps for GISFunctionFilterExpr_GISOp.
var (
	GISFunctionFilterExpr_GISOp_name = map[int32]string{
		0: "Invalid",
		1: "Equals",
		2: "Touches",
		3: "Overlaps",
		4: "Crosses",
		5: "Contains",
		6: "Intersects",
		7: "Within",
		8: "DWithin",
		9: "STIsValid",
	}
	GISFunctionFilterExpr_GISOp_value = map[string]int32{
		"Invalid":    0,
		"Equals":     1,
		"Touches":    2,
		"Overlaps":   3,
		"Crosses":    4,
		"Contains":   5,
		"Intersects": 6,
		"Within":     7,
		"DWithin":    8,
		"STIsValid":  9,
	}
)

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

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

func (GISFunctionFilterExpr_GISOp) Descriptor() protoreflect.EnumDescriptor {
	return file_plan_proto_enumTypes[10].Descriptor()
}

func (GISFunctionFilterExpr_GISOp) Type() protoreflect.EnumType {
	return &file_plan_proto_enumTypes[10]
}

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

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

type UnaryExpr_UnaryOp int32

const (
	UnaryExpr_Invalid UnaryExpr_UnaryOp = 0
	UnaryExpr_Not     UnaryExpr_UnaryOp = 1
)

// Enum value maps for UnaryExpr_UnaryOp.
var (
	UnaryExpr_UnaryOp_name = map[int32]string{
		0: "Invalid",
		1: "Not",
	}
	UnaryExpr_UnaryOp_value = map[string]int32{
		"Invalid": 0,
		"Not":     1,
	}
)

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

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

func (UnaryExpr_UnaryOp) Descriptor() protoreflect.EnumDescriptor {
	return file_plan_proto_enumTypes[11].Descriptor()
}

func (UnaryExpr_UnaryOp) Type() protoreflect.EnumType {
	return &file_plan_proto_enumTypes[11]
}

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

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

type BinaryExpr_BinaryOp int32

const (
	BinaryExpr_Invalid    BinaryExpr_BinaryOp = 0
	BinaryExpr_LogicalAnd BinaryExpr_BinaryOp = 1
	BinaryExpr_LogicalOr  BinaryExpr_BinaryOp = 2
)

// Enum value maps for BinaryExpr_BinaryOp.
var (
	BinaryExpr_BinaryOp_name = map[int32]string{
		0: "Invalid",
		1: "LogicalAnd",
		2: "LogicalOr",
	}
	BinaryExpr_BinaryOp_value = map[string]int32{
		"Invalid":    0,
		"LogicalAnd": 1,
		"LogicalOr":  2,
	}
)

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

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

func (BinaryExpr_BinaryOp) Descriptor() protoreflect.EnumDescriptor {
	return file_plan_proto_enumTypes[12].Descriptor()
}

func (BinaryExpr_BinaryOp) Type() protoreflect.EnumType {
	return &file_plan_proto_enumTypes[12]
}

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

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

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

	// Types that are assignable to Val:
	//
	//	*GenericValue_BoolVal
	//	*GenericValue_Int64Val
	//	*GenericValue_FloatVal
	//	*GenericValue_StringVal
	//	*GenericValue_ArrayVal
	Val isGenericValue_Val `protobuf_oneof:"val"`
}

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

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

func (*GenericValue) ProtoMessage() {}

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

func (m *GenericValue) GetVal() isGenericValue_Val {
	if m != nil {
		return m.Val
	}
	return nil
}

func (x *GenericValue) GetBoolVal() bool {
	if x, ok := x.GetVal().(*GenericValue_BoolVal); ok {
		return x.BoolVal
	}
	return false
}

func (x *GenericValue) GetInt64Val() int64 {
	if x, ok := x.GetVal().(*GenericValue_Int64Val); ok {
		return x.Int64Val
	}
	return 0
}

func (x *GenericValue) GetFloatVal() float64 {
	if x, ok := x.GetVal().(*GenericValue_FloatVal); ok {
		return x.FloatVal
	}
	return 0
}

func (x *GenericValue) GetStringVal() string {
	if x, ok := x.GetVal().(*GenericValue_StringVal); ok {
		return x.StringVal
	}
	return ""
}

func (x *GenericValue) GetArrayVal() *Array {
	if x, ok := x.GetVal().(*GenericValue_ArrayVal); ok {
		return x.ArrayVal
	}
	return nil
}

type isGenericValue_Val interface {
	isGenericValue_Val()
}

type GenericValue_BoolVal struct {
	BoolVal bool `protobuf:"varint,1,opt,name=bool_val,json=boolVal,proto3,oneof"`
}

type GenericValue_Int64Val struct {
	Int64Val int64 `protobuf:"varint,2,opt,name=int64_val,json=int64Val,proto3,oneof"`
}

type GenericValue_FloatVal struct {
	FloatVal float64 `protobuf:"fixed64,3,opt,name=float_val,json=floatVal,proto3,oneof"`
}

type GenericValue_StringVal struct {
	StringVal string `protobuf:"bytes,4,opt,name=string_val,json=stringVal,proto3,oneof"`
}

type GenericValue_ArrayVal struct {
	ArrayVal *Array `protobuf:"bytes,5,opt,name=array_val,json=arrayVal,proto3,oneof"`
}

func (*GenericValue_BoolVal) isGenericValue_Val() {}

func (*GenericValue_Int64Val) isGenericValue_Val() {}

func (*GenericValue_FloatVal) isGenericValue_Val() {}

func (*GenericValue_StringVal) isGenericValue_Val() {}

func (*GenericValue_ArrayVal) isGenericValue_Val() {}

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

	Array       []*GenericValue   `protobuf:"bytes,1,rep,name=array,proto3" json:"array,omitempty"`
	SameType    bool              `protobuf:"varint,2,opt,name=same_type,json=sameType,proto3" json:"same_type,omitempty"`
	ElementType schemapb.DataType `protobuf:"varint,3,opt,name=element_type,json=elementType,proto3,enum=milvus.proto.schema.DataType" json:"element_type,omitempty"`
}

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

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

func (*Array) ProtoMessage() {}

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

func (x *Array) GetArray() []*GenericValue {
	if x != nil {
		return x.Array
	}
	return nil
}

func (x *Array) GetSameType() bool {
	if x != nil {
		return x.SameType
	}
	return false
}

func (x *Array) GetElementType() schemapb.DataType {
	if x != nil {
		return x.ElementType
	}
	return schemapb.DataType(0)
}

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

	Token     string   `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	BatchSize uint32   `protobuf:"varint,2,opt,name=batch_size,json=batchSize,proto3" json:"batch_size,omitempty"`
	LastBound *float32 `protobuf:"fixed32,3,opt,name=last_bound,json=lastBound,proto3,oneof" json:"last_bound,omitempty"`
}

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

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

func (*SearchIteratorV2Info) ProtoMessage() {}

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

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

func (x *SearchIteratorV2Info) GetBatchSize() uint32 {
	if x != nil {
		return x.BatchSize
	}
	return 0
}

func (x *SearchIteratorV2Info) GetLastBound() float32 {
	if x != nil && x.LastBound != nil {
		return *x.LastBound
	}
	return 0
}

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

	Topk                     int64                 `protobuf:"varint,1,opt,name=topk,proto3" json:"topk,omitempty"`
	MetricType               string                `protobuf:"bytes,3,opt,name=metric_type,json=metricType,proto3" json:"metric_type,omitempty"`
	SearchParams             string                `protobuf:"bytes,4,opt,name=search_params,json=searchParams,proto3" json:"search_params,omitempty"`
	RoundDecimal             int64                 `protobuf:"varint,5,opt,name=round_decimal,json=roundDecimal,proto3" json:"round_decimal,omitempty"`
	GroupByFieldId           int64                 `protobuf:"varint,6,opt,name=group_by_field_id,json=groupByFieldId,proto3" json:"group_by_field_id,omitempty"`
	MaterializedViewInvolved bool                  `protobuf:"varint,7,opt,name=materialized_view_involved,json=materializedViewInvolved,proto3" json:"materialized_view_involved,omitempty"`
	GroupSize                int64                 `protobuf:"varint,8,opt,name=group_size,json=groupSize,proto3" json:"group_size,omitempty"`
	StrictGroupSize          bool                  `protobuf:"varint,9,opt,name=strict_group_size,json=strictGroupSize,proto3" json:"strict_group_size,omitempty"`
	Bm25Avgdl                float64               `protobuf:"fixed64,10,opt,name=bm25_avgdl,json=bm25Avgdl,proto3" json:"bm25_avgdl,omitempty"`
	QueryFieldId             int64                 `protobuf:"varint,11,opt,name=query_field_id,json=queryFieldId,proto3" json:"query_field_id,omitempty"`
	Hints                    string                `protobuf:"bytes,12,opt,name=hints,proto3" json:"hints,omitempty"`
	SearchIteratorV2Info     *SearchIteratorV2Info `protobuf:"bytes,13,opt,name=search_iterator_v2_info,json=searchIteratorV2Info,proto3,oneof" json:"search_iterator_v2_info,omitempty"`
	JsonPath                 string                `protobuf:"bytes,14,opt,name=json_path,json=jsonPath,proto3" json:"json_path,omitempty"`
	JsonType                 schemapb.DataType     `protobuf:"varint,15,opt,name=json_type,json=jsonType,proto3,enum=milvus.proto.schema.DataType" json:"json_type,omitempty"`
	StrictCast               bool                  `protobuf:"varint,16,opt,name=strict_cast,json=strictCast,proto3" json:"strict_cast,omitempty"`
}

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

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

func (*QueryInfo) ProtoMessage() {}

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

func (x *QueryInfo) GetTopk() int64 {
	if x != nil {
		return x.Topk
	}
	return 0
}

func (x *QueryInfo) GetMetricType() string {
	if x != nil {
		return x.MetricType
	}
	return ""
}

func (x *QueryInfo) GetSearchParams() string {
	if x != nil {
		return x.SearchParams
	}
	return ""
}

func (x *QueryInfo) GetRoundDecimal() int64 {
	if x != nil {
		return x.RoundDecimal
	}
	return 0
}

func (x *QueryInfo) GetGroupByFieldId() int64 {
	if x != nil {
		return x.GroupByFieldId
	}
	return 0
}

func (x *QueryInfo) GetMaterializedViewInvolved() bool {
	if x != nil {
		return x.MaterializedViewInvolved
	}
	return false
}

func (x *QueryInfo) GetGroupSize() int64 {
	if x != nil {
		return x.GroupSize
	}
	return 0
}

func (x *QueryInfo) GetStrictGroupSize() bool {
	if x != nil {
		return x.StrictGroupSize
	}
	return false
}

func (x *QueryInfo) GetBm25Avgdl() float64 {
	if x != nil {
		return x.Bm25Avgdl
	}
	return 0
}

func (x *QueryInfo) GetQueryFieldId() int64 {
	if x != nil {
		return x.QueryFieldId
	}
	return 0
}

func (x *QueryInfo) GetHints() string {
	if x != nil {
		return x.Hints
	}
	return ""
}

func (x *QueryInfo) GetSearchIteratorV2Info() *SearchIteratorV2Info {
	if x != nil {
		return x.SearchIteratorV2Info
	}
	return nil
}

func (x *QueryInfo) GetJsonPath() string {
	if x != nil {
		return x.JsonPath
	}
	return ""
}

func (x *QueryInfo) GetJsonType() schemapb.DataType {
	if x != nil {
		return x.JsonType
	}
	return schemapb.DataType(0)
}

func (x *QueryInfo) GetStrictCast() bool {
	if x != nil {
		return x.StrictCast
	}
	return false
}

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

	FieldId         int64             `protobuf:"varint,1,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
	DataType        schemapb.DataType `protobuf:"varint,2,opt,name=data_type,json=dataType,proto3,enum=milvus.proto.schema.DataType" json:"data_type,omitempty"`
	IsPrimaryKey    bool              `protobuf:"varint,3,opt,name=is_primary_key,json=isPrimaryKey,proto3" json:"is_primary_key,omitempty"`
	IsAutoID        bool              `protobuf:"varint,4,opt,name=is_autoID,json=isAutoID,proto3" json:"is_autoID,omitempty"`
	NestedPath      []string          `protobuf:"bytes,5,rep,name=nested_path,json=nestedPath,proto3" json:"nested_path,omitempty"`
	IsPartitionKey  bool              `protobuf:"varint,6,opt,name=is_partition_key,json=isPartitionKey,proto3" json:"is_partition_key,omitempty"`
	ElementType     schemapb.DataType `protobuf:"varint,7,opt,name=element_type,json=elementType,proto3,enum=milvus.proto.schema.DataType" json:"element_type,omitempty"`
	IsClusteringKey bool              `protobuf:"varint,8,opt,name=is_clustering_key,json=isClusteringKey,proto3" json:"is_clustering_key,omitempty"`
	Nullable        bool              `protobuf:"varint,9,opt,name=nullable,proto3" json:"nullable,omitempty"`
	IsElementLevel  bool              `protobuf:"varint,10,opt,name=is_element_level,json=isElementLevel,proto3" json:"is_element_level,omitempty"`
}

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

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

func (*ColumnInfo) ProtoMessage() {}

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

func (x *ColumnInfo) GetFieldId() int64 {
	if x != nil {
		return x.FieldId
	}
	return 0
}

func (x *ColumnInfo) GetDataType() schemapb.DataType {
	if x != nil {
		return x.DataType
	}
	return schemapb.DataType(0)
}

func (x *ColumnInfo) GetIsPrimaryKey() bool {
	if x != nil {
		return x.IsPrimaryKey
	}
	return false
}

func (x *ColumnInfo) GetIsAutoID() bool {
	if x != nil {
		return x.IsAutoID
	}
	return false
}

func (x *ColumnInfo) GetNestedPath() []string {
	if x != nil {
		return x.NestedPath
	}
	return nil
}

func (x *ColumnInfo) GetIsPartitionKey() bool {
	if x != nil {
		return x.IsPartitionKey
	}
	return false
}

func (x *ColumnInfo) GetElementType() schemapb.DataType {
	if x != nil {
		return x.ElementType
	}
	return schemapb.DataType(0)
}

func (x *ColumnInfo) GetIsClusteringKey() bool {
	if x != nil {
		return x.IsClusteringKey
	}
	return false
}

func (x *ColumnInfo) GetNullable() bool {
	if x != nil {
		return x.Nullable
	}
	return false
}

func (x *ColumnInfo) GetIsElementLevel() bool {
	if x != nil {
		return x.IsElementLevel
	}
	return false
}

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

	Info *ColumnInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
}

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

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

func (*ColumnExpr) ProtoMessage() {}

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

func (x *ColumnExpr) GetInfo() *ColumnInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

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

	Info *ColumnInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
}

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

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

func (*ExistsExpr) ProtoMessage() {}

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

func (x *ExistsExpr) GetInfo() *ColumnInfo {
	if x != nil {
		return x.Info
	}
	return nil
}

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

	Value                *GenericValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
	TemplateVariableName string        `protobuf:"bytes,2,opt,name=template_variable_name,json=templateVariableName,proto3" json:"template_variable_name,omitempty"`
}

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

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

func (*ValueExpr) ProtoMessage() {}

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

func (x *ValueExpr) GetValue() *GenericValue {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *ValueExpr) GetTemplateVariableName() string {
	if x != nil {
		return x.TemplateVariableName
	}
	return ""
}

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

	ColumnInfo           *ColumnInfo     `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	Op                   OpType          `protobuf:"varint,2,opt,name=op,proto3,enum=milvus.proto.plan.OpType" json:"op,omitempty"`
	Value                *GenericValue   `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
	TemplateVariableName string          `protobuf:"bytes,4,opt,name=template_variable_name,json=templateVariableName,proto3" json:"template_variable_name,omitempty"`
	ExtraValues          []*GenericValue `protobuf:"bytes,5,rep,name=extra_values,json=extraValues,proto3" json:"extra_values,omitempty"`
}

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

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

func (*UnaryRangeExpr) ProtoMessage() {}

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

func (x *UnaryRangeExpr) GetColumnInfo() *ColumnInfo {
	if x != nil {
		return x.ColumnInfo
	}
	return nil
}

func (x *UnaryRangeExpr) GetOp() OpType {
	if x != nil {
		return x.Op
	}
	return OpType_Invalid
}

func (x *UnaryRangeExpr) GetValue() *GenericValue {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *UnaryRangeExpr) GetTemplateVariableName() string {
	if x != nil {
		return x.TemplateVariableName
	}
	return ""
}

func (x *UnaryRangeExpr) GetExtraValues() []*GenericValue {
	if x != nil {
		return x.ExtraValues
	}
	return nil
}

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

	ColumnInfo                *ColumnInfo   `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	LowerInclusive            bool          `protobuf:"varint,2,opt,name=lower_inclusive,json=lowerInclusive,proto3" json:"lower_inclusive,omitempty"`
	UpperInclusive            bool          `protobuf:"varint,3,opt,name=upper_inclusive,json=upperInclusive,proto3" json:"upper_inclusive,omitempty"`
	LowerValue                *GenericValue `protobuf:"bytes,4,opt,name=lower_value,json=lowerValue,proto3" json:"lower_value,omitempty"`
	UpperValue                *GenericValue `protobuf:"bytes,5,opt,name=upper_value,json=upperValue,proto3" json:"upper_value,omitempty"`
	LowerTemplateVariableName string        `protobuf:"bytes,6,opt,name=lower_template_variable_name,json=lowerTemplateVariableName,proto3" json:"lower_template_variable_name,omitempty"`
	UpperTemplateVariableName string        `protobuf:"bytes,7,opt,name=upper_template_variable_name,json=upperTemplateVariableName,proto3" json:"upper_template_variable_name,omitempty"`
}

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

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

func (*BinaryRangeExpr) ProtoMessage() {}

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

func (x *BinaryRangeExpr) GetColumnInfo() *ColumnInfo {
	if x != nil {
		return x.ColumnInfo
	}
	return nil
}

func (x *BinaryRangeExpr) GetLowerInclusive() bool {
	if x != nil {
		return x.LowerInclusive
	}
	return false
}

func (x *BinaryRangeExpr) GetUpperInclusive() bool {
	if x != nil {
		return x.UpperInclusive
	}
	return false
}

func (x *BinaryRangeExpr) GetLowerValue() *GenericValue {
	if x != nil {
		return x.LowerValue
	}
	return nil
}

func (x *BinaryRangeExpr) GetUpperValue() *GenericValue {
	if x != nil {
		return x.UpperValue
	}
	return nil
}

func (x *BinaryRangeExpr) GetLowerTemplateVariableName() string {
	if x != nil {
		return x.LowerTemplateVariableName
	}
	return ""
}

func (x *BinaryRangeExpr) GetUpperTemplateVariableName() string {
	if x != nil {
		return x.UpperTemplateVariableName
	}
	return ""
}

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

	FunctionName       string  `protobuf:"bytes,1,opt,name=function_name,json=functionName,proto3" json:"function_name,omitempty"`
	FunctionParameters []*Expr `protobuf:"bytes,2,rep,name=function_parameters,json=functionParameters,proto3" json:"function_parameters,omitempty"`
}

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

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

func (*CallExpr) ProtoMessage() {}

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

func (x *CallExpr) GetFunctionName() string {
	if x != nil {
		return x.FunctionName
	}
	return ""
}

func (x *CallExpr) GetFunctionParameters() []*Expr {
	if x != nil {
		return x.FunctionParameters
	}
	return nil
}

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

	LeftColumnInfo  *ColumnInfo `protobuf:"bytes,1,opt,name=left_column_info,json=leftColumnInfo,proto3" json:"left_column_info,omitempty"`
	RightColumnInfo *ColumnInfo `protobuf:"bytes,2,opt,name=right_column_info,json=rightColumnInfo,proto3" json:"right_column_info,omitempty"`
	Op              OpType      `protobuf:"varint,3,opt,name=op,proto3,enum=milvus.proto.plan.OpType" json:"op,omitempty"`
}

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

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

func (*CompareExpr) ProtoMessage() {}

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

func (x *CompareExpr) GetLeftColumnInfo() *ColumnInfo {
	if x != nil {
		return x.LeftColumnInfo
	}
	return nil
}

func (x *CompareExpr) GetRightColumnInfo() *ColumnInfo {
	if x != nil {
		return x.RightColumnInfo
	}
	return nil
}

func (x *CompareExpr) GetOp() OpType {
	if x != nil {
		return x.Op
	}
	return OpType_Invalid
}

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

	ColumnInfo           *ColumnInfo     `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	Values               []*GenericValue `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
	IsInField            bool            `protobuf:"varint,3,opt,name=is_in_field,json=isInField,proto3" json:"is_in_field,omitempty"`
	TemplateVariableName string          `protobuf:"bytes,4,opt,name=template_variable_name,json=templateVariableName,proto3" json:"template_variable_name,omitempty"`
}

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

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

func (*TermExpr) ProtoMessage() {}

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

func (x *TermExpr) GetColumnInfo() *ColumnInfo {
	if x != nil {
		return x.ColumnInfo
	}
	return nil
}

func (x *TermExpr) GetValues() []*GenericValue {
	if x != nil {
		return x.Values
	}
	return nil
}

func (x *TermExpr) GetIsInField() bool {
	if x != nil {
		return x.IsInField
	}
	return false
}

func (x *TermExpr) GetTemplateVariableName() string {
	if x != nil {
		return x.TemplateVariableName
	}
	return ""
}

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

	ColumnInfo           *ColumnInfo             `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	Elements             []*GenericValue         `protobuf:"bytes,2,rep,name=elements,proto3" json:"elements,omitempty"`
	Op                   JSONContainsExpr_JSONOp `protobuf:"varint,3,opt,name=op,proto3,enum=milvus.proto.plan.JSONContainsExpr_JSONOp" json:"op,omitempty"`
	ElementsSameType     bool                    `protobuf:"varint,4,opt,name=elements_same_type,json=elementsSameType,proto3" json:"elements_same_type,omitempty"`
	TemplateVariableName string                  `protobuf:"bytes,5,opt,name=template_variable_name,json=templateVariableName,proto3" json:"template_variable_name,omitempty"`
}

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

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

func (*JSONContainsExpr) ProtoMessage() {}

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

func (x *JSONContainsExpr) GetColumnInfo() *ColumnInfo {
	if x != nil {
		return x.ColumnInfo
	}
	return nil
}

func (x *JSONContainsExpr) GetElements() []*GenericValue {
	if x != nil {
		return x.Elements
	}
	return nil
}

func (x *JSONContainsExpr) GetOp() JSONContainsExpr_JSONOp {
	if x != nil {
		return x.Op
	}
	return JSONContainsExpr_Invalid
}

func (x *JSONContainsExpr) GetElementsSameType() bool {
	if x != nil {
		return x.ElementsSameType
	}
	return false
}

func (x *JSONContainsExpr) GetTemplateVariableName() string {
	if x != nil {
		return x.TemplateVariableName
	}
	return ""
}

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

	ColumnInfo *ColumnInfo     `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	Op         NullExpr_NullOp `protobuf:"varint,2,opt,name=op,proto3,enum=milvus.proto.plan.NullExpr_NullOp" json:"op,omitempty"`
}

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

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

func (*NullExpr) ProtoMessage() {}

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

func (x *NullExpr) GetColumnInfo() *ColumnInfo {
	if x != nil {
		return x.ColumnInfo
	}
	return nil
}

func (x *NullExpr) GetOp() NullExpr_NullOp {
	if x != nil {
		return x.Op
	}
	return NullExpr_Invalid
}

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

	ColumnInfo *ColumnInfo                 `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	WktString  string                      `protobuf:"bytes,2,opt,name=wkt_string,json=wktString,proto3" json:"wkt_string,omitempty"`
	Op         GISFunctionFilterExpr_GISOp `protobuf:"varint,3,opt,name=op,proto3,enum=milvus.proto.plan.GISFunctionFilterExpr_GISOp" json:"op,omitempty"`
	Distance   float64                     `protobuf:"fixed64,4,opt,name=distance,proto3" json:"distance,omitempty"` // Distance parameter for DWithin
}

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

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

func (*GISFunctionFilterExpr) ProtoMessage() {}

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

func (x *GISFunctionFilterExpr) GetColumnInfo() *ColumnInfo {
	if x != nil {
		return x.ColumnInfo
	}
	return nil
}

func (x *GISFunctionFilterExpr) GetWktString() string {
	if x != nil {
		return x.WktString
	}
	return ""
}

func (x *GISFunctionFilterExpr) GetOp() GISFunctionFilterExpr_GISOp {
	if x != nil {
		return x.Op
	}
	return GISFunctionFilterExpr_Invalid
}

func (x *GISFunctionFilterExpr) GetDistance() float64 {
	if x != nil {
		return x.Distance
	}
	return 0
}

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

	Op    UnaryExpr_UnaryOp `protobuf:"varint,1,opt,name=op,proto3,enum=milvus.proto.plan.UnaryExpr_UnaryOp" json:"op,omitempty"`
	Child *Expr             `protobuf:"bytes,2,opt,name=child,proto3" json:"child,omitempty"`
}

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

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

func (*UnaryExpr) ProtoMessage() {}

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

func (x *UnaryExpr) GetOp() UnaryExpr_UnaryOp {
	if x != nil {
		return x.Op
	}
	return UnaryExpr_Invalid
}

func (x *UnaryExpr) GetChild() *Expr {
	if x != nil {
		return x.Child
	}
	return nil
}

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

	Op    BinaryExpr_BinaryOp `protobuf:"varint,1,opt,name=op,proto3,enum=milvus.proto.plan.BinaryExpr_BinaryOp" json:"op,omitempty"`
	Left  *Expr               `protobuf:"bytes,2,opt,name=left,proto3" json:"left,omitempty"`
	Right *Expr               `protobuf:"bytes,3,opt,name=right,proto3" json:"right,omitempty"`
}

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

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

func (*BinaryExpr) ProtoMessage() {}

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

func (x *BinaryExpr) GetOp() BinaryExpr_BinaryOp {
	if x != nil {
		return x.Op
	}
	return BinaryExpr_Invalid
}

func (x *BinaryExpr) GetLeft() *Expr {
	if x != nil {
		return x.Left
	}
	return nil
}

func (x *BinaryExpr) GetRight() *Expr {
	if x != nil {
		return x.Right
	}
	return nil
}

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

	ColumnInfo   *ColumnInfo   `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	ArithOp      ArithOpType   `protobuf:"varint,2,opt,name=arith_op,json=arithOp,proto3,enum=milvus.proto.plan.ArithOpType" json:"arith_op,omitempty"`
	RightOperand *GenericValue `protobuf:"bytes,3,opt,name=right_operand,json=rightOperand,proto3" json:"right_operand,omitempty"`
}

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

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

func (*BinaryArithOp) ProtoMessage() {}

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

func (x *BinaryArithOp) GetColumnInfo() *ColumnInfo {
	if x != nil {
		return x.ColumnInfo
	}
	return nil
}

func (x *BinaryArithOp) GetArithOp() ArithOpType {
	if x != nil {
		return x.ArithOp
	}
	return ArithOpType_Unknown
}

func (x *BinaryArithOp) GetRightOperand() *GenericValue {
	if x != nil {
		return x.RightOperand
	}
	return nil
}

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

	Left  *Expr       `protobuf:"bytes,1,opt,name=left,proto3" json:"left,omitempty"`
	Right *Expr       `protobuf:"bytes,2,opt,name=right,proto3" json:"right,omitempty"`
	Op    ArithOpType `protobuf:"varint,3,opt,name=op,proto3,enum=milvus.proto.plan.ArithOpType" json:"op,omitempty"`
}

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

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

func (*BinaryArithExpr) ProtoMessage() {}

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

func (x *BinaryArithExpr) GetLeft() *Expr {
	if x != nil {
		return x.Left
	}
	return nil
}

func (x *BinaryArithExpr) GetRight() *Expr {
	if x != nil {
		return x.Right
	}
	return nil
}

func (x *BinaryArithExpr) GetOp() ArithOpType {
	if x != nil {
		return x.Op
	}
	return ArithOpType_Unknown
}

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

	ColumnInfo                  *ColumnInfo   `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	ArithOp                     ArithOpType   `protobuf:"varint,2,opt,name=arith_op,json=arithOp,proto3,enum=milvus.proto.plan.ArithOpType" json:"arith_op,omitempty"`
	RightOperand                *GenericValue `protobuf:"bytes,3,opt,name=right_operand,json=rightOperand,proto3" json:"right_operand,omitempty"`
	Op                          OpType        `protobuf:"varint,4,opt,name=op,proto3,enum=milvus.proto.plan.OpType" json:"op,omitempty"`
	Value                       *GenericValue `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"`
	OperandTemplateVariableName string        `protobuf:"bytes,6,opt,name=operand_template_variable_name,json=operandTemplateVariableName,proto3" json:"operand_template_variable_name,omitempty"`
	ValueTemplateVariableName   string        `protobuf:"bytes,7,opt,name=value_template_variable_name,json=valueTemplateVariableName,proto3" json:"value_template_variable_name,omitempty"`
}

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

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

func (*BinaryArithOpEvalRangeExpr) ProtoMessage() {}

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

func (x *BinaryArithOpEvalRangeExpr) GetColumnInfo() *ColumnInfo {
	if x != nil {
		return x.ColumnInfo
	}
	return nil
}

func (x *BinaryArithOpEvalRangeExpr) GetArithOp() ArithOpType {
	if x != nil {
		return x.ArithOp
	}
	return ArithOpType_Unknown
}

func (x *BinaryArithOpEvalRangeExpr) GetRightOperand() *GenericValue {
	if x != nil {
		return x.RightOperand
	}
	return nil
}

func (x *BinaryArithOpEvalRangeExpr) GetOp() OpType {
	if x != nil {
		return x.Op
	}
	return OpType_Invalid
}

func (x *BinaryArithOpEvalRangeExpr) GetValue() *GenericValue {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *BinaryArithOpEvalRangeExpr) GetOperandTemplateVariableName() string {
	if x != nil {
		return x.OperandTemplateVariableName
	}
	return ""
}

func (x *BinaryArithOpEvalRangeExpr) GetValueTemplateVariableName() string {
	if x != nil {
		return x.ValueTemplateVariableName
	}
	return ""
}

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

	SampleFactor float32 `protobuf:"fixed32,1,opt,name=sample_factor,json=sampleFactor,proto3" json:"sample_factor,omitempty"`
	Predicate    *Expr   `protobuf:"bytes,2,opt,name=predicate,proto3" json:"predicate,omitempty"`
}

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

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

func (*RandomSampleExpr) ProtoMessage() {}

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

func (x *RandomSampleExpr) GetSampleFactor() float32 {
	if x != nil {
		return x.SampleFactor
	}
	return 0
}

func (x *RandomSampleExpr) GetPredicate() *Expr {
	if x != nil {
		return x.Predicate
	}
	return nil
}

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

	ElementExpr *Expr  `protobuf:"bytes,1,opt,name=element_expr,json=elementExpr,proto3" json:"element_expr,omitempty"`
	StructName  string `protobuf:"bytes,2,opt,name=struct_name,json=structName,proto3" json:"struct_name,omitempty"`
	Predicate   *Expr  `protobuf:"bytes,3,opt,name=predicate,proto3" json:"predicate,omitempty"`
}

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

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

func (*ElementFilterExpr) ProtoMessage() {}

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

func (x *ElementFilterExpr) GetElementExpr() *Expr {
	if x != nil {
		return x.ElementExpr
	}
	return nil
}

func (x *ElementFilterExpr) GetStructName() string {
	if x != nil {
		return x.StructName
	}
	return ""
}

func (x *ElementFilterExpr) GetPredicate() *Expr {
	if x != nil {
		return x.Predicate
	}
	return nil
}

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

	StructName string    `protobuf:"bytes,1,opt,name=struct_name,json=structName,proto3" json:"struct_name,omitempty"`                                // The struct array field name (e.g., struct_array)
	Predicate  *Expr     `protobuf:"bytes,2,opt,name=predicate,proto3" json:"predicate,omitempty"`                                                    // The condition expression using $[field] syntax (e.g., $[intField] == 1 && $[strField] == "aaa")
	MatchType  MatchType `protobuf:"varint,3,opt,name=match_type,json=matchType,proto3,enum=milvus.proto.plan.MatchType" json:"match_type,omitempty"` // Type of match operation
	Count      int64     `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"`                                                           // For MatchLeast/MatchMost: the count parameter (N)
}

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

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

func (*MatchExpr) ProtoMessage() {}

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

func (x *MatchExpr) GetStructName() string {
	if x != nil {
		return x.StructName
	}
	return ""
}

func (x *MatchExpr) GetPredicate() *Expr {
	if x != nil {
		return x.Predicate
	}
	return nil
}

func (x *MatchExpr) GetMatchType() MatchType {
	if x != nil {
		return x.MatchType
	}
	return MatchType_MatchAll
}

func (x *MatchExpr) GetCount() int64 {
	if x != nil {
		return x.Count
	}
	return 0
}

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

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

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

func (*AlwaysTrueExpr) ProtoMessage() {}

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

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

	Years   int64 `protobuf:"varint,1,opt,name=years,proto3" json:"years,omitempty"`
	Months  int64 `protobuf:"varint,2,opt,name=months,proto3" json:"months,omitempty"`
	Days    int64 `protobuf:"varint,3,opt,name=days,proto3" json:"days,omitempty"`
	Hours   int64 `protobuf:"varint,4,opt,name=hours,proto3" json:"hours,omitempty"`
	Minutes int64 `protobuf:"varint,5,opt,name=minutes,proto3" json:"minutes,omitempty"`
	Seconds int64 `protobuf:"varint,6,opt,name=seconds,proto3" json:"seconds,omitempty"`
}

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

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

func (*Interval) ProtoMessage() {}

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

func (x *Interval) GetYears() int64 {
	if x != nil {
		return x.Years
	}
	return 0
}

func (x *Interval) GetMonths() int64 {
	if x != nil {
		return x.Months
	}
	return 0
}

func (x *Interval) GetDays() int64 {
	if x != nil {
		return x.Days
	}
	return 0
}

func (x *Interval) GetHours() int64 {
	if x != nil {
		return x.Hours
	}
	return 0
}

func (x *Interval) GetMinutes() int64 {
	if x != nil {
		return x.Minutes
	}
	return 0
}

func (x *Interval) GetSeconds() int64 {
	if x != nil {
		return x.Seconds
	}
	return 0
}

// New expression type for the operation: (timestamp_col + interval) OP iso_string
type TimestamptzArithCompareExpr struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TimestamptzColumn *ColumnInfo   `protobuf:"bytes,1,opt,name=timestamptz_column,json=timestamptzColumn,proto3" json:"timestamptz_column,omitempty"`
	ArithOp           ArithOpType   `protobuf:"varint,2,opt,name=arith_op,json=arithOp,proto3,enum=milvus.proto.plan.ArithOpType" json:"arith_op,omitempty"` // ADD or SUB
	Interval          *Interval     `protobuf:"bytes,3,opt,name=interval,proto3" json:"interval,omitempty"`
	CompareOp         OpType        `protobuf:"varint,4,opt,name=compare_op,json=compareOp,proto3,enum=milvus.proto.plan.OpType" json:"compare_op,omitempty"`
	CompareValue      *GenericValue `protobuf:"bytes,5,opt,name=compare_value,json=compareValue,proto3" json:"compare_value,omitempty"`
}

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

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

func (*TimestamptzArithCompareExpr) ProtoMessage() {}

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

func (x *TimestamptzArithCompareExpr) GetTimestamptzColumn() *ColumnInfo {
	if x != nil {
		return x.TimestamptzColumn
	}
	return nil
}

func (x *TimestamptzArithCompareExpr) GetArithOp() ArithOpType {
	if x != nil {
		return x.ArithOp
	}
	return ArithOpType_Unknown
}

func (x *TimestamptzArithCompareExpr) GetInterval() *Interval {
	if x != nil {
		return x.Interval
	}
	return nil
}

func (x *TimestamptzArithCompareExpr) GetCompareOp() OpType {
	if x != nil {
		return x.CompareOp
	}
	return OpType_Invalid
}

func (x *TimestamptzArithCompareExpr) GetCompareValue() *GenericValue {
	if x != nil {
		return x.CompareValue
	}
	return nil
}

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

	// Types that are assignable to Expr:
	//
	//	*Expr_TermExpr
	//	*Expr_UnaryExpr
	//	*Expr_BinaryExpr
	//	*Expr_CompareExpr
	//	*Expr_UnaryRangeExpr
	//	*Expr_BinaryRangeExpr
	//	*Expr_BinaryArithOpEvalRangeExpr
	//	*Expr_BinaryArithExpr
	//	*Expr_ValueExpr
	//	*Expr_ColumnExpr
	//	*Expr_ExistsExpr
	//	*Expr_AlwaysTrueExpr
	//	*Expr_JsonContainsExpr
	//	*Expr_CallExpr
	//	*Expr_NullExpr
	//	*Expr_RandomSampleExpr
	//	*Expr_GisfunctionFilterExpr
	//	*Expr_TimestamptzArithCompareExpr
	//	*Expr_ElementFilterExpr
	//	*Expr_MatchExpr
	Expr       isExpr_Expr `protobuf_oneof:"expr"`
	IsTemplate bool        `protobuf:"varint,20,opt,name=is_template,json=isTemplate,proto3" json:"is_template,omitempty"`
}

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

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

func (*Expr) ProtoMessage() {}

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

func (m *Expr) GetExpr() isExpr_Expr {
	if m != nil {
		return m.Expr
	}
	return nil
}

func (x *Expr) GetTermExpr() *TermExpr {
	if x, ok := x.GetExpr().(*Expr_TermExpr); ok {
		return x.TermExpr
	}
	return nil
}

func (x *Expr) GetUnaryExpr() *UnaryExpr {
	if x, ok := x.GetExpr().(*Expr_UnaryExpr); ok {
		return x.UnaryExpr
	}
	return nil
}

func (x *Expr) GetBinaryExpr() *BinaryExpr {
	if x, ok := x.GetExpr().(*Expr_BinaryExpr); ok {
		return x.BinaryExpr
	}
	return nil
}

func (x *Expr) GetCompareExpr() *CompareExpr {
	if x, ok := x.GetExpr().(*Expr_CompareExpr); ok {
		return x.CompareExpr
	}
	return nil
}

func (x *Expr) GetUnaryRangeExpr() *UnaryRangeExpr {
	if x, ok := x.GetExpr().(*Expr_UnaryRangeExpr); ok {
		return x.UnaryRangeExpr
	}
	return nil
}

func (x *Expr) GetBinaryRangeExpr() *BinaryRangeExpr {
	if x, ok := x.GetExpr().(*Expr_BinaryRangeExpr); ok {
		return x.BinaryRangeExpr
	}
	return nil
}

func (x *Expr) GetBinaryArithOpEvalRangeExpr() *BinaryArithOpEvalRangeExpr {
	if x, ok := x.GetExpr().(*Expr_BinaryArithOpEvalRangeExpr); ok {
		return x.BinaryArithOpEvalRangeExpr
	}
	return nil
}

func (x *Expr) GetBinaryArithExpr() *BinaryArithExpr {
	if x, ok := x.GetExpr().(*Expr_BinaryArithExpr); ok {
		return x.BinaryArithExpr
	}
	return nil
}

func (x *Expr) GetValueExpr() *ValueExpr {
	if x, ok := x.GetExpr().(*Expr_ValueExpr); ok {
		return x.ValueExpr
	}
	return nil
}

func (x *Expr) GetColumnExpr() *ColumnExpr {
	if x, ok := x.GetExpr().(*Expr_ColumnExpr); ok {
		return x.ColumnExpr
	}
	return nil
}

func (x *Expr) GetExistsExpr() *ExistsExpr {
	if x, ok := x.GetExpr().(*Expr_ExistsExpr); ok {
		return x.ExistsExpr
	}
	return nil
}

func (x *Expr) GetAlwaysTrueExpr() *AlwaysTrueExpr {
	if x, ok := x.GetExpr().(*Expr_AlwaysTrueExpr); ok {
		return x.AlwaysTrueExpr
	}
	return nil
}

func (x *Expr) GetJsonContainsExpr() *JSONContainsExpr {
	if x, ok := x.GetExpr().(*Expr_JsonContainsExpr); ok {
		return x.JsonContainsExpr
	}
	return nil
}

func (x *Expr) GetCallExpr() *CallExpr {
	if x, ok := x.GetExpr().(*Expr_CallExpr); ok {
		return x.CallExpr
	}
	return nil
}

func (x *Expr) GetNullExpr() *NullExpr {
	if x, ok := x.GetExpr().(*Expr_NullExpr); ok {
		return x.NullExpr
	}
	return nil
}

func (x *Expr) GetRandomSampleExpr() *RandomSampleExpr {
	if x, ok := x.GetExpr().(*Expr_RandomSampleExpr); ok {
		return x.RandomSampleExpr
	}
	return nil
}

func (x *Expr) GetGisfunctionFilterExpr() *GISFunctionFilterExpr {
	if x, ok := x.GetExpr().(*Expr_GisfunctionFilterExpr); ok {
		return x.GisfunctionFilterExpr
	}
	return nil
}

func (x *Expr) GetTimestamptzArithCompareExpr() *TimestamptzArithCompareExpr {
	if x, ok := x.GetExpr().(*Expr_TimestamptzArithCompareExpr); ok {
		return x.TimestamptzArithCompareExpr
	}
	return nil
}

func (x *Expr) GetElementFilterExpr() *ElementFilterExpr {
	if x, ok := x.GetExpr().(*Expr_ElementFilterExpr); ok {
		return x.ElementFilterExpr
	}
	return nil
}

func (x *Expr) GetMatchExpr() *MatchExpr {
	if x, ok := x.GetExpr().(*Expr_MatchExpr); ok {
		return x.MatchExpr
	}
	return nil
}

func (x *Expr) GetIsTemplate() bool {
	if x != nil {
		return x.IsTemplate
	}
	return false
}

type isExpr_Expr interface {
	isExpr_Expr()
}

type Expr_TermExpr struct {
	TermExpr *TermExpr `protobuf:"bytes,1,opt,name=term_expr,json=termExpr,proto3,oneof"`
}

type Expr_UnaryExpr struct {
	UnaryExpr *UnaryExpr `protobuf:"bytes,2,opt,name=unary_expr,json=unaryExpr,proto3,oneof"`
}

type Expr_BinaryExpr struct {
	BinaryExpr *BinaryExpr `protobuf:"bytes,3,opt,name=binary_expr,json=binaryExpr,proto3,oneof"`
}

type Expr_CompareExpr struct {
	CompareExpr *CompareExpr `protobuf:"bytes,4,opt,name=compare_expr,json=compareExpr,proto3,oneof"`
}

type Expr_UnaryRangeExpr struct {
	UnaryRangeExpr *UnaryRangeExpr `protobuf:"bytes,5,opt,name=unary_range_expr,json=unaryRangeExpr,proto3,oneof"`
}

type Expr_BinaryRangeExpr struct {
	BinaryRangeExpr *BinaryRangeExpr `protobuf:"bytes,6,opt,name=binary_range_expr,json=binaryRangeExpr,proto3,oneof"`
}

type Expr_BinaryArithOpEvalRangeExpr struct {
	BinaryArithOpEvalRangeExpr *BinaryArithOpEvalRangeExpr `protobuf:"bytes,7,opt,name=binary_arith_op_eval_range_expr,json=binaryArithOpEvalRangeExpr,proto3,oneof"`
}

type Expr_BinaryArithExpr struct {
	BinaryArithExpr *BinaryArithExpr `protobuf:"bytes,8,opt,name=binary_arith_expr,json=binaryArithExpr,proto3,oneof"`
}

type Expr_ValueExpr struct {
	ValueExpr *ValueExpr `protobuf:"bytes,9,opt,name=value_expr,json=valueExpr,proto3,oneof"`
}

type Expr_ColumnExpr struct {
	ColumnExpr *ColumnExpr `protobuf:"bytes,10,opt,name=column_expr,json=columnExpr,proto3,oneof"`
}

type Expr_ExistsExpr struct {
	ExistsExpr *ExistsExpr `protobuf:"bytes,11,opt,name=exists_expr,json=existsExpr,proto3,oneof"`
}

type Expr_AlwaysTrueExpr struct {
	AlwaysTrueExpr *AlwaysTrueExpr `protobuf:"bytes,12,opt,name=always_true_expr,json=alwaysTrueExpr,proto3,oneof"`
}

type Expr_JsonContainsExpr struct {
	JsonContainsExpr *JSONContainsExpr `protobuf:"bytes,13,opt,name=json_contains_expr,json=jsonContainsExpr,proto3,oneof"`
}

type Expr_CallExpr struct {
	CallExpr *CallExpr `protobuf:"bytes,14,opt,name=call_expr,json=callExpr,proto3,oneof"`
}

type Expr_NullExpr struct {
	NullExpr *NullExpr `protobuf:"bytes,15,opt,name=null_expr,json=nullExpr,proto3,oneof"`
}

type Expr_RandomSampleExpr struct {
	RandomSampleExpr *RandomSampleExpr `protobuf:"bytes,16,opt,name=random_sample_expr,json=randomSampleExpr,proto3,oneof"`
}

type Expr_GisfunctionFilterExpr struct {
	GisfunctionFilterExpr *GISFunctionFilterExpr `protobuf:"bytes,17,opt,name=gisfunction_filter_expr,json=gisfunctionFilterExpr,proto3,oneof"`
}

type Expr_TimestamptzArithCompareExpr struct {
	TimestamptzArithCompareExpr *TimestamptzArithCompareExpr `protobuf:"bytes,18,opt,name=timestamptz_arith_compare_expr,json=timestamptzArithCompareExpr,proto3,oneof"`
}

type Expr_ElementFilterExpr struct {
	ElementFilterExpr *ElementFilterExpr `protobuf:"bytes,19,opt,name=element_filter_expr,json=elementFilterExpr,proto3,oneof"`
}

type Expr_MatchExpr struct {
	MatchExpr *MatchExpr `protobuf:"bytes,21,opt,name=match_expr,json=matchExpr,proto3,oneof"`
}

func (*Expr_TermExpr) isExpr_Expr() {}

func (*Expr_UnaryExpr) isExpr_Expr() {}

func (*Expr_BinaryExpr) isExpr_Expr() {}

func (*Expr_CompareExpr) isExpr_Expr() {}

func (*Expr_UnaryRangeExpr) isExpr_Expr() {}

func (*Expr_BinaryRangeExpr) isExpr_Expr() {}

func (*Expr_BinaryArithOpEvalRangeExpr) isExpr_Expr() {}

func (*Expr_BinaryArithExpr) isExpr_Expr() {}

func (*Expr_ValueExpr) isExpr_Expr() {}

func (*Expr_ColumnExpr) isExpr_Expr() {}

func (*Expr_ExistsExpr) isExpr_Expr() {}

func (*Expr_AlwaysTrueExpr) isExpr_Expr() {}

func (*Expr_JsonContainsExpr) isExpr_Expr() {}

func (*Expr_CallExpr) isExpr_Expr() {}

func (*Expr_NullExpr) isExpr_Expr() {}

func (*Expr_RandomSampleExpr) isExpr_Expr() {}

func (*Expr_GisfunctionFilterExpr) isExpr_Expr() {}

func (*Expr_TimestamptzArithCompareExpr) isExpr_Expr() {}

func (*Expr_ElementFilterExpr) isExpr_Expr() {}

func (*Expr_MatchExpr) isExpr_Expr() {}

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

	VectorType     VectorType `protobuf:"varint,1,opt,name=vector_type,json=vectorType,proto3,enum=milvus.proto.plan.VectorType" json:"vector_type,omitempty"`
	FieldId        int64      `protobuf:"varint,2,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
	Predicates     *Expr      `protobuf:"bytes,3,opt,name=predicates,proto3" json:"predicates,omitempty"`
	QueryInfo      *QueryInfo `protobuf:"bytes,4,opt,name=query_info,json=queryInfo,proto3" json:"query_info,omitempty"`
	PlaceholderTag string     `protobuf:"bytes,5,opt,name=placeholder_tag,json=placeholderTag,proto3" json:"placeholder_tag,omitempty"` // always be "$0"
}

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

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

func (*VectorANNS) ProtoMessage() {}

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

func (x *VectorANNS) GetVectorType() VectorType {
	if x != nil {
		return x.VectorType
	}
	return VectorType_BinaryVector
}

func (x *VectorANNS) GetFieldId() int64 {
	if x != nil {
		return x.FieldId
	}
	return 0
}

func (x *VectorANNS) GetPredicates() *Expr {
	if x != nil {
		return x.Predicates
	}
	return nil
}

func (x *VectorANNS) GetQueryInfo() *QueryInfo {
	if x != nil {
		return x.QueryInfo
	}
	return nil
}

func (x *VectorANNS) GetPlaceholderTag() string {
	if x != nil {
		return x.PlaceholderTag
	}
	return ""
}

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

	Op      AggregateOp `protobuf:"varint,1,opt,name=op,proto3,enum=milvus.proto.plan.AggregateOp" json:"op,omitempty"`
	FieldId int64       `protobuf:"varint,2,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
}

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

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

func (*Aggregate) ProtoMessage() {}

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

func (x *Aggregate) GetOp() AggregateOp {
	if x != nil {
		return x.Op
	}
	return AggregateOp_sum
}

func (x *Aggregate) GetFieldId() int64 {
	if x != nil {
		return x.FieldId
	}
	return 0
}

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

	Predicates      *Expr        `protobuf:"bytes,1,opt,name=predicates,proto3" json:"predicates,omitempty"`
	IsCount         bool         `protobuf:"varint,2,opt,name=is_count,json=isCount,proto3" json:"is_count,omitempty"`
	Limit           int64        `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"`
	GroupByFieldIds []int64      `protobuf:"varint,4,rep,packed,name=group_by_field_ids,json=groupByFieldIds,proto3" json:"group_by_field_ids,omitempty"`
	Aggregates      []*Aggregate `protobuf:"bytes,5,rep,name=aggregates,proto3" json:"aggregates,omitempty"`
}

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

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

func (*QueryPlanNode) ProtoMessage() {}

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

func (x *QueryPlanNode) GetPredicates() *Expr {
	if x != nil {
		return x.Predicates
	}
	return nil
}

func (x *QueryPlanNode) GetIsCount() bool {
	if x != nil {
		return x.IsCount
	}
	return false
}

func (x *QueryPlanNode) GetLimit() int64 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *QueryPlanNode) GetGroupByFieldIds() []int64 {
	if x != nil {
		return x.GroupByFieldIds
	}
	return nil
}

func (x *QueryPlanNode) GetAggregates() []*Aggregate {
	if x != nil {
		return x.Aggregates
	}
	return nil
}

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

	Filter *Expr                    `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	Weight float32                  `protobuf:"fixed32,2,opt,name=weight,proto3" json:"weight,omitempty"`
	Type   FunctionType             `protobuf:"varint,3,opt,name=type,proto3,enum=milvus.proto.plan.FunctionType" json:"type,omitempty"`
	Params []*commonpb.KeyValuePair `protobuf:"bytes,4,rep,name=params,proto3" json:"params,omitempty"`
}

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

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

func (*ScoreFunction) ProtoMessage() {}

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

func (x *ScoreFunction) GetFilter() *Expr {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (x *ScoreFunction) GetWeight() float32 {
	if x != nil {
		return x.Weight
	}
	return 0
}

func (x *ScoreFunction) GetType() FunctionType {
	if x != nil {
		return x.Type
	}
	return FunctionType_FunctionTypeWeight
}

func (x *ScoreFunction) GetParams() []*commonpb.KeyValuePair {
	if x != nil {
		return x.Params
	}
	return nil
}

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

	BoostMode    BoostMode    `protobuf:"varint,1,opt,name=boost_mode,json=boostMode,proto3,enum=milvus.proto.plan.BoostMode" json:"boost_mode,omitempty"`
	FunctionMode FunctionMode `protobuf:"varint,2,opt,name=function_mode,json=functionMode,proto3,enum=milvus.proto.plan.FunctionMode" json:"function_mode,omitempty"`
}

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

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

func (*ScoreOption) ProtoMessage() {}

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

func (x *ScoreOption) GetBoostMode() BoostMode {
	if x != nil {
		return x.BoostMode
	}
	return BoostMode_BoostModeMultiply
}

func (x *ScoreOption) GetFunctionMode() FunctionMode {
	if x != nil {
		return x.FunctionMode
	}
	return FunctionMode_FunctionModeMultiply
}

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

	ExprUseJsonStats bool `protobuf:"varint,1,opt,name=expr_use_json_stats,json=exprUseJsonStats,proto3" json:"expr_use_json_stats,omitempty"`
}

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

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

func (*PlanOption) ProtoMessage() {}

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

func (x *PlanOption) GetExprUseJsonStats() bool {
	if x != nil {
		return x.ExprUseJsonStats
	}
	return false
}

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

	// Types that are assignable to Node:
	//
	//	*PlanNode_VectorAnns
	//	*PlanNode_Predicates
	//	*PlanNode_Query
	Node           isPlanNode_Node  `protobuf_oneof:"node"`
	OutputFieldIds []int64          `protobuf:"varint,3,rep,packed,name=output_field_ids,json=outputFieldIds,proto3" json:"output_field_ids,omitempty"`
	DynamicFields  []string         `protobuf:"bytes,5,rep,name=dynamic_fields,json=dynamicFields,proto3" json:"dynamic_fields,omitempty"`
	Scorers        []*ScoreFunction `protobuf:"bytes,6,rep,name=scorers,proto3" json:"scorers,omitempty"`
	PlanOptions    *PlanOption      `protobuf:"bytes,7,opt,name=plan_options,json=planOptions,proto3" json:"plan_options,omitempty"`
	ScoreOption    *ScoreOption     `protobuf:"bytes,8,opt,name=score_option,json=scoreOption,proto3" json:"score_option,omitempty"`
	Namespace      *string          `protobuf:"bytes,9,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"`
}

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

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

func (*PlanNode) ProtoMessage() {}

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

func (m *PlanNode) GetNode() isPlanNode_Node {
	if m != nil {
		return m.Node
	}
	return nil
}

func (x *PlanNode) GetVectorAnns() *VectorANNS {
	if x, ok := x.GetNode().(*PlanNode_VectorAnns); ok {
		return x.VectorAnns
	}
	return nil
}

func (x *PlanNode) GetPredicates() *Expr {
	if x, ok := x.GetNode().(*PlanNode_Predicates); ok {
		return x.Predicates
	}
	return nil
}

func (x *PlanNode) GetQuery() *QueryPlanNode {
	if x, ok := x.GetNode().(*PlanNode_Query); ok {
		return x.Query
	}
	return nil
}

func (x *PlanNode) GetOutputFieldIds() []int64 {
	if x != nil {
		return x.OutputFieldIds
	}
	return nil
}

func (x *PlanNode) GetDynamicFields() []string {
	if x != nil {
		return x.DynamicFields
	}
	return nil
}

func (x *PlanNode) GetScorers() []*ScoreFunction {
	if x != nil {
		return x.Scorers
	}
	return nil
}

func (x *PlanNode) GetPlanOptions() *PlanOption {
	if x != nil {
		return x.PlanOptions
	}
	return nil
}

func (x *PlanNode) GetScoreOption() *ScoreOption {
	if x != nil {
		return x.ScoreOption
	}
	return nil
}

func (x *PlanNode) GetNamespace() string {
	if x != nil && x.Namespace != nil {
		return *x.Namespace
	}
	return ""
}

type isPlanNode_Node interface {
	isPlanNode_Node()
}

type PlanNode_VectorAnns struct {
	VectorAnns *VectorANNS `protobuf:"bytes,1,opt,name=vector_anns,json=vectorAnns,proto3,oneof"`
}

type PlanNode_Predicates struct {
	Predicates *Expr `protobuf:"bytes,2,opt,name=predicates,proto3,oneof"` // deprecated, use query instead.
}

type PlanNode_Query struct {
	Query *QueryPlanNode `protobuf:"bytes,4,opt,name=query,proto3,oneof"`
}

func (*PlanNode_VectorAnns) isPlanNode_Node() {}

func (*PlanNode_Predicates) isPlanNode_Node() {}

func (*PlanNode_Query) isPlanNode_Node() {}

var File_plan_proto protoreflect.FileDescriptor

var file_plan_proto_rawDesc = []byte{
	0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x1a,
	0x0c, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x63,
	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xca, 0x01, 0x0a, 0x0c,
	0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x08,
	0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00,
	0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74,
	0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08,
	0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x61,
	0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x08, 0x66,
	0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x6e,
	0x67, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x73,
	0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x12, 0x37, 0x0a, 0x09, 0x61, 0x72, 0x72, 0x61,
	0x79, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
	0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x08, 0x61, 0x72, 0x72, 0x61, 0x79, 0x56, 0x61,
	0x6c, 0x42, 0x05, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x9d, 0x01, 0x0a, 0x05, 0x41, 0x72, 0x72,
	0x61, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x52, 0x05, 0x61, 0x72, 0x72, 0x61, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x61, 0x6d,
	0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x61,
	0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65,
	0x6d, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x65, 0x6c, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x7e, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72,
	0x63, 0x68, 0x49, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f,
	0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63,
	0x68, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6f,
	0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x61, 0x73,
	0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x61,
	0x73, 0x74, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x94, 0x05, 0x0a, 0x09, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6f, 0x70, 0x6b, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x6f, 0x70, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65,
	0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73,
	0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
	0x12, 0x23, 0x0a, 0x0d, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61,
	0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x65,
	0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x29, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62,
	0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64,
	0x12, 0x3c, 0x0a, 0x1a, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64,
	0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a,
	0x65, 0x64, 0x56, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x76, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x12, 0x1d,
	0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a,
	0x11, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x73, 0x69,
	0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6d, 0x32,
	0x35, 0x5f, 0x61, 0x76, 0x67, 0x64, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x62,
	0x6d, 0x32, 0x35, 0x41, 0x76, 0x67, 0x64, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72,
	0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x14,
	0x0a, 0x05, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68,
	0x69, 0x6e, 0x74, 0x73, 0x12, 0x63, 0x0a, 0x17, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x69,
	0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x32, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
	0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
	0x49, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00,
	0x52, 0x14, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
	0x56, 0x32, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f,
	0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73,
	0x6f, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x3a, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e,
	0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x63, 0x61, 0x73,
	0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x43,
	0x61, 0x73, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x69,
	0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x32, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22,
	0xa5, 0x03, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19,
	0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x61, 0x74,
	0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65,
	0x6d, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74,
	0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6d,
	0x61, 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69,
	0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x69,
	0x73, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
	0x69, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74,
	0x65, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e,
	0x65, 0x73, 0x74, 0x65, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x4b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e,
	0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x63, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x0f, 0x69, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x4b, 0x65,
	0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a,
	0x10, 0x69, 0x73, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x65,
	0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x45, 0x6c, 0x65, 0x6d, 0x65,
	0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x3f, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x75, 0x6d,
	0x6e, 0x45, 0x78, 0x70, 0x72, 0x12, 0x31, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x3f, 0x0a, 0x0a, 0x45, 0x78, 0x69, 0x73,
	0x74, 0x73, 0x45, 0x78, 0x70, 0x72, 0x12, 0x31, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49,
	0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x78, 0x0a, 0x09, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69,
	0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a,
	0x16, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62,
	0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x74,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4e,
	0x61, 0x6d, 0x65, 0x22, 0xac, 0x02, 0x0a, 0x0e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x61, 0x6e,
	0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
	0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
	0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x75,
	0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x02, 0x6f,
	0x70, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
	0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42,
	0x0a, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x05,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x72, 0x61, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x73, 0x22, 0xa9, 0x03, 0x0a, 0x0f, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x61, 0x6e,
	0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e,
	0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
	0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x75,
	0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f,
	0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0e, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x12,
	0x27, 0x0a, 0x0f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69,
	0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x70, 0x70, 0x65, 0x72, 0x49,
	0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x65,
	0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61,
	0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a,
	0x6c, 0x6f, 0x77, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70,
	0x70, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
	0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x1c,
	0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76,
	0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x19, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a,
	0x1c, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f,
	0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x19, 0x75, 0x70, 0x70, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
	0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x79,
	0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x75,
	0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12,
	0x48, 0x0a, 0x13, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61,
	0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
	0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x12, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xcc, 0x01, 0x0a, 0x0b, 0x43, 0x6f,
	0x6d, 0x70, 0x61, 0x72, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x47, 0x0a, 0x10, 0x6c, 0x65, 0x66,
	0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e,
	0x66, 0x6f, 0x52, 0x0e, 0x6c, 0x65, 0x66, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e,
	0x66, 0x6f, 0x12, 0x49, 0x0a, 0x11, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x75,
	0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61,
	0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x72, 0x69,
	0x67, 0x68, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a,
	0x02, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4f, 0x70,
	0x54, 0x79, 0x70, 0x65, 0x52, 0x02, 0x6f, 0x70, 0x22, 0xd9, 0x01, 0x0a, 0x08, 0x54, 0x65, 0x72,
	0x6d, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f,
	0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43,
	0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x75, 0x6d,
	0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69,
	0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x1e,
	0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x49, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x34,
	0x0a, 0x16, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61,
	0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14,
	0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65,
	0x4e, 0x61, 0x6d, 0x65, 0x22, 0xf6, 0x02, 0x0a, 0x10, 0x4a, 0x53, 0x4f, 0x4e, 0x43, 0x6f, 0x6e,
	0x74, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6c,
	0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c,
	0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63,
	0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x08, 0x65, 0x6c, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e,
	0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x65, 0x6c,
	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x43, 0x6f, 0x6e, 0x74, 0x61,
	0x69, 0x6e, 0x73, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x4f, 0x70, 0x52, 0x02,
	0x6f, 0x70, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x73,
	0x61, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10,
	0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x34, 0x0a, 0x16, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x72,
	0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x14, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62,
	0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x45, 0x0a, 0x06, 0x4a, 0x53, 0x4f, 0x4e, 0x4f, 0x70,
	0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a,
	0x08, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x43,
	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x41, 0x6c, 0x6c, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b,
	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x41, 0x6e, 0x79, 0x10, 0x03, 0x22, 0xb0, 0x01,
	0x0a, 0x08, 0x4e, 0x75, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f,
	0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
	0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a,
	0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x02, 0x6f, 0x70,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x45,
	0x78, 0x70, 0x72, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x4f, 0x70, 0x52, 0x02, 0x6f, 0x70, 0x22, 0x30,
	0x0a, 0x06, 0x4e, 0x75, 0x6c, 0x6c, 0x4f, 0x70, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x10,
	0x01, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x73, 0x4e, 0x6f, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x02,
	0x22, 0xe3, 0x02, 0x0a, 0x15, 0x47, 0x49, 0x53, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f,
	0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
	0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a,
	0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x6b,
	0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
	0x77, 0x6b, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x02, 0x6f, 0x70, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x49, 0x53, 0x46, 0x75, 0x6e,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x2e,
	0x47, 0x49, 0x53, 0x4f, 0x70, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x64, 0x69, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x05, 0x47, 0x49, 0x53, 0x4f, 0x70, 0x12,
	0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06,
	0x45, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x6f, 0x75, 0x63,
	0x68, 0x65, 0x73, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70,
	0x73, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x73, 0x10, 0x04,
	0x12, 0x0c, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x10, 0x05, 0x12, 0x0e,
	0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x73, 0x10, 0x06, 0x12, 0x0a,
	0x0a, 0x06, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x57,
	0x69, 0x74, 0x68, 0x69, 0x6e, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x49, 0x73, 0x56,
	0x61, 0x6c, 0x69, 0x64, 0x10, 0x09, 0x22, 0x91, 0x01, 0x0a, 0x09, 0x55, 0x6e, 0x61, 0x72, 0x79,
	0x45, 0x78, 0x70, 0x72, 0x12, 0x34, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x55,
	0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x2d, 0x0a, 0x05, 0x63, 0x68,
	0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x78,
	0x70, 0x72, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x22, 0x1f, 0x0a, 0x07, 0x55, 0x6e, 0x61,
	0x72, 0x79, 0x4f, 0x70, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10,
	0x00, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x6f, 0x74, 0x10, 0x01, 0x22, 0xd8, 0x01, 0x0a, 0x0a, 0x42,
	0x69, 0x6e, 0x61, 0x72, 0x79, 0x45, 0x78, 0x70, 0x72, 0x12, 0x36, 0x0a, 0x02, 0x6f, 0x70, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79,
	0x45, 0x78, 0x70, 0x72, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x52, 0x02, 0x6f,
	0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x17, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
	0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x2d,
	0x0a, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61,
	0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x36, 0x0a,
	0x08, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61,
	0x6c, 0x41, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61,
	0x6c, 0x4f, 0x72, 0x10, 0x02, 0x22, 0xd0, 0x01, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79,
	0x41, 0x72, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d,
	0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
	0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6f, 0x6c,
	0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x08, 0x61, 0x72, 0x69, 0x74, 0x68,
	0x5f, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x41, 0x72,
	0x69, 0x74, 0x68, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x61, 0x72, 0x69, 0x74, 0x68,
	0x4f, 0x70, 0x12, 0x44, 0x0a, 0x0d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72,
	0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65,
	0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x72, 0x69, 0x67, 0x68,
	0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x0f, 0x42, 0x69, 0x6e,
	0x61, 0x72, 0x79, 0x41, 0x72, 0x69, 0x74, 0x68, 0x45, 0x78, 0x70, 0x72, 0x12, 0x2b, 0x0a, 0x04,
	0x6c, 0x65, 0x66, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45,
	0x78, 0x70, 0x72, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x69, 0x67,
	0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x78, 0x70,
	0x72, 0x52, 0x05, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2e, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x41, 0x72, 0x69, 0x74, 0x68, 0x4f, 0x70,
	0x54, 0x79, 0x70, 0x65, 0x52, 0x02, 0x6f, 0x70, 0x22, 0xc5, 0x03, 0x0a, 0x1a, 0x42, 0x69, 0x6e,
	0x61, 0x72, 0x79, 0x41, 0x72, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x45, 0x76, 0x61, 0x6c, 0x52, 0x61,
	0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d,
	0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
	0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6f, 0x6c,
	0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x08, 0x61, 0x72, 0x69, 0x74, 0x68,
	0x5f, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x41, 0x72,
	0x69, 0x74, 0x68, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x61, 0x72, 0x69, 0x74, 0x68,
	0x4f, 0x70, 0x12, 0x44, 0x0a, 0x0d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72,
	0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65,
	0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x72, 0x69, 0x67, 0x68,
	0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x02, 0x6f, 0x70, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x1e, 0x6f, 0x70,
	0x65, 0x72, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76,
	0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x1b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12,
	0x3f, 0x0a, 0x1c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65,
	0x22, 0x6e, 0x0a, 0x10, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65,
	0x45, 0x78, 0x70, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x66,
	0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x73, 0x61, 0x6d,
	0x70, 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x72, 0x65,
	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
	0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x22, 0xa7, 0x01, 0x0a, 0x11, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74,
	0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3a, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
	0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x0b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x78,
	0x70, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4e,
	0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52,
	0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x09, 0x4d,
	0x61, 0x74, 0x63, 0x68, 0x45, 0x78, 0x70, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x75,
	0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73,
	0x74, 0x72, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x72, 0x65,
	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
	0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x12, 0x3b, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79,
	0x70, 0x65, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a,
	0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x41, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x54, 0x72, 0x75,
	0x65, 0x45, 0x78, 0x70, 0x72, 0x22, 0x96, 0x01, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76,
	0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x79, 0x65, 0x61, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x05, 0x79, 0x65, 0x61, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x6e, 0x74,
	0x68, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x73,
	0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04,
	0x64, 0x61, 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x05, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69,
	0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x69, 0x6e,
	0x75, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xdf,
	0x02, 0x0a, 0x1b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x74, 0x7a, 0x41, 0x72,
	0x69, 0x74, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x4c,
	0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x74, 0x7a, 0x5f, 0x63, 0x6f,
	0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43,
	0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x74, 0x7a, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x39, 0x0a, 0x08,
	0x61, 0x72, 0x69, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c,
	0x61, 0x6e, 0x2e, 0x41, 0x72, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07,
	0x61, 0x72, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x12, 0x37, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72,
	0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x49, 0x6e,
	0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
	0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x6f, 0x70, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x09, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x4f, 0x70, 0x12, 0x44, 0x0a, 0x0d, 0x63, 0x6f,
	0x6d, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x22, 0xc0, 0x0c, 0x0a, 0x04, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x65, 0x72,
	0x6d, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
	0x2e, 0x54, 0x65, 0x72, 0x6d, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x08, 0x74, 0x65, 0x72,
	0x6d, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3d, 0x0a, 0x0a, 0x75, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x65,
	0x78, 0x70, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x55, 0x6e,
	0x61, 0x72, 0x79, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x09, 0x75, 0x6e, 0x61, 0x72, 0x79,
	0x45, 0x78, 0x70, 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x65,
	0x78, 0x70, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x42, 0x69,
	0x6e, 0x61, 0x72, 0x79, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x69, 0x6e, 0x61,
	0x72, 0x79, 0x45, 0x78, 0x70, 0x72, 0x12, 0x43, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72,
	0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
	0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0b,
	0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x4d, 0x0a, 0x10, 0x75,
	0x6e, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x55, 0x6e, 0x61, 0x72, 0x79, 0x52,
	0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x61, 0x72,
	0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x50, 0x0a, 0x11, 0x62, 0x69,
	0x6e, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79,
	0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x62, 0x69, 0x6e,
	0x61, 0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x74, 0x0a, 0x1f,
	0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x61, 0x72, 0x69, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x5f,
	0x65, 0x76, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79,
	0x41, 0x72, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x45, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65,
	0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x1a, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x41, 0x72,
	0x69, 0x74, 0x68, 0x4f, 0x70, 0x45, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78,
	0x70, 0x72, 0x12, 0x50, 0x0a, 0x11, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x61, 0x72, 0x69,
	0x74, 0x68, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61,
	0x6e, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x41, 0x72, 0x69, 0x74, 0x68, 0x45, 0x78, 0x70,
	0x72, 0x48, 0x00, 0x52, 0x0f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x41, 0x72, 0x69, 0x74, 0x68,
	0x45, 0x78, 0x70, 0x72, 0x12, 0x3d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x65, 0x78,
	0x70, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x45,
	0x78, 0x70, 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x65, 0x78,
	0x70, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6c,
	0x75, 0x6d, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x75, 0x6d,
	0x6e, 0x45, 0x78, 0x70, 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x5f,
	0x65, 0x78, 0x70, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45,
	0x78, 0x69, 0x73, 0x74, 0x73, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x69,
	0x73, 0x74, 0x73, 0x45, 0x78, 0x70, 0x72, 0x12, 0x4d, 0x0a, 0x10, 0x61, 0x6c, 0x77, 0x61, 0x79,
	0x73, 0x5f, 0x74, 0x72, 0x75, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x41, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x54, 0x72, 0x75, 0x65,
	0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x54, 0x72,
	0x75, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x53, 0x0a, 0x12, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63,
	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x0d, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4a, 0x53, 0x4f, 0x4e, 0x43, 0x6f, 0x6e, 0x74, 0x61,
	0x69, 0x6e, 0x73, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x10, 0x6a, 0x73, 0x6f, 0x6e, 0x43,
	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3a, 0x0a, 0x09, 0x63,
	0x61, 0x6c, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
	0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c,
	0x61, 0x6e, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x08, 0x63,
	0x61, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3a, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x5f,
	0x65, 0x78, 0x70, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x4e,
	0x75, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x45,
	0x78, 0x70, 0x72, 0x12, 0x53, 0x0a, 0x12, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, 0x73, 0x61,
	0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x23, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
	0x6c, 0x61, 0x6e, 0x2e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65,
	0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x61,
	0x6d, 0x70, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x72, 0x12, 0x62, 0x0a, 0x17, 0x67, 0x69, 0x73, 0x66,
	0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x65,
	0x78, 0x70, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x47, 0x49,
	0x53, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45,
	0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x15, 0x67, 0x69, 0x73, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x12, 0x75, 0x0a, 0x1e,
	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x74, 0x7a, 0x5f, 0x61, 0x72, 0x69, 0x74,
	0x68, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x12,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x74, 0x7a, 0x41, 0x72, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65,
	0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x1b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x74, 0x7a, 0x41, 0x72, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x45,
	0x78, 0x70, 0x72, 0x12, 0x56, 0x0a, 0x13, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x66,
	0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74,
	0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x11, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3d, 0x0a, 0x0a, 0x6d,
	0x61, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
	0x6c, 0x61, 0x6e, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52,
	0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x78, 0x70, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73,
	0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0a, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x65,
	0x78, 0x70, 0x72, 0x22, 0x86, 0x02, 0x0a, 0x0a, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x4e,
	0x4e, 0x53, 0x12, 0x3e, 0x0a, 0x0b, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x56, 0x65, 0x63, 0x74,
	0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x37, 0x0a,
	0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64,
	0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f,
	0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x51,
	0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49,
	0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64,
	0x65, 0x72, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x6c,
	0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x54, 0x61, 0x67, 0x22, 0x56, 0x0a, 0x09,
	0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x02, 0x6f, 0x70, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67,
	0x61, 0x74, 0x65, 0x4f, 0x70, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x69, 0x65,
	0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65,
	0x6c, 0x64, 0x49, 0x64, 0x22, 0xe4, 0x01, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c,
	0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63,
	0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45,
	0x78, 0x70, 0x72, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12,
	0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x07, 0x69, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69,
	0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74,
	0x12, 0x2b, 0x0a, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x5f, 0x66, 0x69, 0x65,
	0x6c, 0x64, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x42, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x73, 0x12, 0x3c, 0x0a,
	0x0a, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52,
	0x0a, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x73, 0x22, 0xc8, 0x01, 0x0a, 0x0d,
	0x53, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a,
	0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61,
	0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x16,
	0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06,
	0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x70,
	0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69,
	0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
	0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x06,
	0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x0b, 0x53, 0x63, 0x6f, 0x72, 0x65,
	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x5f,
	0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x42,
	0x6f, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x4d,
	0x6f, 0x64, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
	0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x46,
	0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x66, 0x75, 0x6e,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3b, 0x0a, 0x0a, 0x50, 0x6c, 0x61,
	0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x78, 0x70, 0x72, 0x5f,
	0x75, 0x73, 0x65, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x70, 0x72, 0x55, 0x73, 0x65, 0x4a, 0x73, 0x6f,
	0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x8c, 0x04, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x6e, 0x4e,
	0x6f, 0x64, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x6e,
	0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x56, 0x65, 0x63,
	0x74, 0x6f, 0x72, 0x41, 0x4e, 0x4e, 0x53, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f,
	0x72, 0x41, 0x6e, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x45, 0x78,
	0x70, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73,
	0x12, 0x38, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x20, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
	0x6c, 0x61, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64,
	0x65, 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x75,
	0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x65, 0x6c,
	0x64, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f,
	0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x79,
	0x6e, 0x61, 0x6d, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x73,
	0x63, 0x6f, 0x72, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d,
	0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61, 0x6e,
	0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07,
	0x73, 0x63, 0x6f, 0x72, 0x65, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x6e, 0x5f,
	0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
	0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x6c, 0x61,
	0x6e, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x6c,
	0x61, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x73, 0x63, 0x6f,
	0x72, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1e, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
	0x6c, 0x61, 0x6e, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x0b, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x09,
	0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48,
	0x01, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42,
	0x06, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
	0x73, 0x70, 0x61, 0x63, 0x65, 0x2a, 0xea, 0x01, 0x0a, 0x06, 0x4f, 0x70, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x0f, 0x0a,
	0x0b, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x54, 0x68, 0x61, 0x6e, 0x10, 0x01, 0x12, 0x10,
	0x0a, 0x0c, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x10, 0x02,
	0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x65, 0x73, 0x73, 0x54, 0x68, 0x61, 0x6e, 0x10, 0x03, 0x12, 0x0d,
	0x0a, 0x09, 0x4c, 0x65, 0x73, 0x73, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x10, 0x04, 0x12, 0x09, 0x0a,
	0x05, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x45,
	0x71, 0x75, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78,
	0x4d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x74, 0x66,
	0x69, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x61, 0x74,
	0x63, 0x68, 0x10, 0x09, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x0a, 0x12,
	0x06, 0x0a, 0x02, 0x49, 0x6e, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x49, 0x6e,
	0x10, 0x0c, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x10,
	0x0d, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68,
	0x10, 0x0e, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68,
	0x10, 0x0f, 0x2a, 0x58, 0x0a, 0x0b, 0x41, 0x72, 0x69, 0x74, 0x68, 0x4f, 0x70, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x07,
	0x0a, 0x03, 0x41, 0x64, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x75, 0x62, 0x10, 0x02,
	0x12, 0x07, 0x0a, 0x03, 0x4d, 0x75, 0x6c, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x69, 0x76,
	0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x6f, 0x64, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x41,
	0x72, 0x72, 0x61, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x10, 0x06, 0x2a, 0xfa, 0x01, 0x0a,
	0x0a, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x42,
	0x69, 0x6e, 0x61, 0x72, 0x79, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x0f, 0x0a,
	0x0b, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x11,
	0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x31, 0x36, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10,
	0x02, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x31, 0x36, 0x56, 0x65, 0x63,
	0x74, 0x6f, 0x72, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x70, 0x61, 0x72, 0x73, 0x65, 0x46,
	0x6c, 0x6f, 0x61, 0x74, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a,
	0x49, 0x6e, 0x74, 0x38, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12,
	0x45, 0x6d, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x65, 0x63, 0x74,
	0x6f, 0x72, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x6d, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x46,
	0x6c, 0x6f, 0x61, 0x74, 0x31, 0x36, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x07, 0x12, 0x19,
	0x0a, 0x15, 0x45, 0x6d, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x31,
	0x36, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x6d, 0x62,
	0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x38, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x09,
	0x12, 0x17, 0x0a, 0x13, 0x45, 0x6d, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x69, 0x6e, 0x61, 0x72,
	0x79, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x0a, 0x2a, 0x56, 0x0a, 0x09, 0x4d, 0x61, 0x74,
	0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41,
	0x6c, 0x6c, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x79,
	0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4c, 0x65, 0x61, 0x73, 0x74,
	0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x6f, 0x73, 0x74, 0x10,
	0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x45, 0x78, 0x61, 0x63, 0x74, 0x10,
	0x04, 0x2a, 0x3c, 0x0a, 0x0b, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x4f, 0x70,
	0x12, 0x07, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x76, 0x67, 0x10, 0x02, 0x12, 0x07, 0x0a,
	0x03, 0x6d, 0x69, 0x6e, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x10, 0x04, 0x2a,
	0x3e, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x16, 0x0a, 0x12, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x57,
	0x65, 0x69, 0x67, 0x68, 0x74, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x75, 0x6e, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x01, 0x2a,
	0x3d, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12,
	0x18, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x4d,
	0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x79, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x75, 0x6e,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x75, 0x6d, 0x10, 0x01, 0x2a, 0x34,
	0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x42,
	0x6f, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x79,
	0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x53,
	0x75, 0x6d, 0x10, 0x01, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
	0x6f, 0x6d, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2d, 0x69, 0x6f, 0x2f, 0x6d, 0x69, 0x6c,
	0x76, 0x75, 0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2f, 0x70, 0x6c, 0x61, 0x6e, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_plan_proto_rawDescOnce sync.Once
	file_plan_proto_rawDescData = file_plan_proto_rawDesc
)

func file_plan_proto_rawDescGZIP() []byte {
	file_plan_proto_rawDescOnce.Do(func() {
		file_plan_proto_rawDescData = protoimpl.X.CompressGZIP(file_plan_proto_rawDescData)
	})
	return file_plan_proto_rawDescData
}

var file_plan_proto_enumTypes = make([]protoimpl.EnumInfo, 13)
var file_plan_proto_msgTypes = make([]protoimpl.MessageInfo, 35)
var file_plan_proto_goTypes = []interface{}{
	(OpType)(0),                         // 0: milvus.proto.plan.OpType
	(ArithOpType)(0),                    // 1: milvus.proto.plan.ArithOpType
	(VectorType)(0),                     // 2: milvus.proto.plan.VectorType
	(MatchType)(0),                      // 3: milvus.proto.plan.MatchType
	(AggregateOp)(0),                    // 4: milvus.proto.plan.AggregateOp
	(FunctionType)(0),                   // 5: milvus.proto.plan.FunctionType
	(FunctionMode)(0),                   // 6: milvus.proto.plan.FunctionMode
	(BoostMode)(0),                      // 7: milvus.proto.plan.BoostMode
	(JSONContainsExpr_JSONOp)(0),        // 8: milvus.proto.plan.JSONContainsExpr.JSONOp
	(NullExpr_NullOp)(0),                // 9: milvus.proto.plan.NullExpr.NullOp
	(GISFunctionFilterExpr_GISOp)(0),    // 10: milvus.proto.plan.GISFunctionFilterExpr.GISOp
	(UnaryExpr_UnaryOp)(0),              // 11: milvus.proto.plan.UnaryExpr.UnaryOp
	(BinaryExpr_BinaryOp)(0),            // 12: milvus.proto.plan.BinaryExpr.BinaryOp
	(*GenericValue)(nil),                // 13: milvus.proto.plan.GenericValue
	(*Array)(nil),                       // 14: milvus.proto.plan.Array
	(*SearchIteratorV2Info)(nil),        // 15: milvus.proto.plan.SearchIteratorV2Info
	(*QueryInfo)(nil),                   // 16: milvus.proto.plan.QueryInfo
	(*ColumnInfo)(nil),                  // 17: milvus.proto.plan.ColumnInfo
	(*ColumnExpr)(nil),                  // 18: milvus.proto.plan.ColumnExpr
	(*ExistsExpr)(nil),                  // 19: milvus.proto.plan.ExistsExpr
	(*ValueExpr)(nil),                   // 20: milvus.proto.plan.ValueExpr
	(*UnaryRangeExpr)(nil),              // 21: milvus.proto.plan.UnaryRangeExpr
	(*BinaryRangeExpr)(nil),             // 22: milvus.proto.plan.BinaryRangeExpr
	(*CallExpr)(nil),                    // 23: milvus.proto.plan.CallExpr
	(*CompareExpr)(nil),                 // 24: milvus.proto.plan.CompareExpr
	(*TermExpr)(nil),                    // 25: milvus.proto.plan.TermExpr
	(*JSONContainsExpr)(nil),            // 26: milvus.proto.plan.JSONContainsExpr
	(*NullExpr)(nil),                    // 27: milvus.proto.plan.NullExpr
	(*GISFunctionFilterExpr)(nil),       // 28: milvus.proto.plan.GISFunctionFilterExpr
	(*UnaryExpr)(nil),                   // 29: milvus.proto.plan.UnaryExpr
	(*BinaryExpr)(nil),                  // 30: milvus.proto.plan.BinaryExpr
	(*BinaryArithOp)(nil),               // 31: milvus.proto.plan.BinaryArithOp
	(*BinaryArithExpr)(nil),             // 32: milvus.proto.plan.BinaryArithExpr
	(*BinaryArithOpEvalRangeExpr)(nil),  // 33: milvus.proto.plan.BinaryArithOpEvalRangeExpr
	(*RandomSampleExpr)(nil),            // 34: milvus.proto.plan.RandomSampleExpr
	(*ElementFilterExpr)(nil),           // 35: milvus.proto.plan.ElementFilterExpr
	(*MatchExpr)(nil),                   // 36: milvus.proto.plan.MatchExpr
	(*AlwaysTrueExpr)(nil),              // 37: milvus.proto.plan.AlwaysTrueExpr
	(*Interval)(nil),                    // 38: milvus.proto.plan.Interval
	(*TimestamptzArithCompareExpr)(nil), // 39: milvus.proto.plan.TimestamptzArithCompareExpr
	(*Expr)(nil),                        // 40: milvus.proto.plan.Expr
	(*VectorANNS)(nil),                  // 41: milvus.proto.plan.VectorANNS
	(*Aggregate)(nil),                   // 42: milvus.proto.plan.Aggregate
	(*QueryPlanNode)(nil),               // 43: milvus.proto.plan.QueryPlanNode
	(*ScoreFunction)(nil),               // 44: milvus.proto.plan.ScoreFunction
	(*ScoreOption)(nil),                 // 45: milvus.proto.plan.ScoreOption
	(*PlanOption)(nil),                  // 46: milvus.proto.plan.PlanOption
	(*PlanNode)(nil),                    // 47: milvus.proto.plan.PlanNode
	(schemapb.DataType)(0),              // 48: milvus.proto.schema.DataType
	(*commonpb.KeyValuePair)(nil),       // 49: milvus.proto.common.KeyValuePair
}
var file_plan_proto_depIdxs = []int32{
	14, // 0: milvus.proto.plan.GenericValue.array_val:type_name -> milvus.proto.plan.Array
	13, // 1: milvus.proto.plan.Array.array:type_name -> milvus.proto.plan.GenericValue
	48, // 2: milvus.proto.plan.Array.element_type:type_name -> milvus.proto.schema.DataType
	15, // 3: milvus.proto.plan.QueryInfo.search_iterator_v2_info:type_name -> milvus.proto.plan.SearchIteratorV2Info
	48, // 4: milvus.proto.plan.QueryInfo.json_type:type_name -> milvus.proto.schema.DataType
	48, // 5: milvus.proto.plan.ColumnInfo.data_type:type_name -> milvus.proto.schema.DataType
	48, // 6: milvus.proto.plan.ColumnInfo.element_type:type_name -> milvus.proto.schema.DataType
	17, // 7: milvus.proto.plan.ColumnExpr.info:type_name -> milvus.proto.plan.ColumnInfo
	17, // 8: milvus.proto.plan.ExistsExpr.info:type_name -> milvus.proto.plan.ColumnInfo
	13, // 9: milvus.proto.plan.ValueExpr.value:type_name -> milvus.proto.plan.GenericValue
	17, // 10: milvus.proto.plan.UnaryRangeExpr.column_info:type_name -> milvus.proto.plan.ColumnInfo
	0,  // 11: milvus.proto.plan.UnaryRangeExpr.op:type_name -> milvus.proto.plan.OpType
	13, // 12: milvus.proto.plan.UnaryRangeExpr.value:type_name -> milvus.proto.plan.GenericValue
	13, // 13: milvus.proto.plan.UnaryRangeExpr.extra_values:type_name -> milvus.proto.plan.GenericValue
	17, // 14: milvus.proto.plan.BinaryRangeExpr.column_info:type_name -> milvus.proto.plan.ColumnInfo
	13, // 15: milvus.proto.plan.BinaryRangeExpr.lower_value:type_name -> milvus.proto.plan.GenericValue
	13, // 16: milvus.proto.plan.BinaryRangeExpr.upper_value:type_name -> milvus.proto.plan.GenericValue
	40, // 17: milvus.proto.plan.CallExpr.function_parameters:type_name -> milvus.proto.plan.Expr
	17, // 18: milvus.proto.plan.CompareExpr.left_column_info:type_name -> milvus.proto.plan.ColumnInfo
	17, // 19: milvus.proto.plan.CompareExpr.right_column_info:type_name -> milvus.proto.plan.ColumnInfo
	0,  // 20: milvus.proto.plan.CompareExpr.op:type_name -> milvus.proto.plan.OpType
	17, // 21: milvus.proto.plan.TermExpr.column_info:type_name -> milvus.proto.plan.ColumnInfo
	13, // 22: milvus.proto.plan.TermExpr.values:type_name -> milvus.proto.plan.GenericValue
	17, // 23: milvus.proto.plan.JSONContainsExpr.column_info:type_name -> milvus.proto.plan.ColumnInfo
	13, // 24: milvus.proto.plan.JSONContainsExpr.elements:type_name -> milvus.proto.plan.GenericValue
	8,  // 25: milvus.proto.plan.JSONContainsExpr.op:type_name -> milvus.proto.plan.JSONContainsExpr.JSONOp
	17, // 26: milvus.proto.plan.NullExpr.column_info:type_name -> milvus.proto.plan.ColumnInfo
	9,  // 27: milvus.proto.plan.NullExpr.op:type_name -> milvus.proto.plan.NullExpr.NullOp
	17, // 28: milvus.proto.plan.GISFunctionFilterExpr.column_info:type_name -> milvus.proto.plan.ColumnInfo
	10, // 29: milvus.proto.plan.GISFunctionFilterExpr.op:type_name -> milvus.proto.plan.GISFunctionFilterExpr.GISOp
	11, // 30: milvus.proto.plan.UnaryExpr.op:type_name -> milvus.proto.plan.UnaryExpr.UnaryOp
	40, // 31: milvus.proto.plan.UnaryExpr.child:type_name -> milvus.proto.plan.Expr
	12, // 32: milvus.proto.plan.BinaryExpr.op:type_name -> milvus.proto.plan.BinaryExpr.BinaryOp
	40, // 33: milvus.proto.plan.BinaryExpr.left:type_name -> milvus.proto.plan.Expr
	40, // 34: milvus.proto.plan.BinaryExpr.right:type_name -> milvus.proto.plan.Expr
	17, // 35: milvus.proto.plan.BinaryArithOp.column_info:type_name -> milvus.proto.plan.ColumnInfo
	1,  // 36: milvus.proto.plan.BinaryArithOp.arith_op:type_name -> milvus.proto.plan.ArithOpType
	13, // 37: milvus.proto.plan.BinaryArithOp.right_operand:type_name -> milvus.proto.plan.GenericValue
	40, // 38: milvus.proto.plan.BinaryArithExpr.left:type_name -> milvus.proto.plan.Expr
	40, // 39: milvus.proto.plan.BinaryArithExpr.right:type_name -> milvus.proto.plan.Expr
	1,  // 40: milvus.proto.plan.BinaryArithExpr.op:type_name -> milvus.proto.plan.ArithOpType
	17, // 41: milvus.proto.plan.BinaryArithOpEvalRangeExpr.column_info:type_name -> milvus.proto.plan.ColumnInfo
	1,  // 42: milvus.proto.plan.BinaryArithOpEvalRangeExpr.arith_op:type_name -> milvus.proto.plan.ArithOpType
	13, // 43: milvus.proto.plan.BinaryArithOpEvalRangeExpr.right_operand:type_name -> milvus.proto.plan.GenericValue
	0,  // 44: milvus.proto.plan.BinaryArithOpEvalRangeExpr.op:type_name -> milvus.proto.plan.OpType
	13, // 45: milvus.proto.plan.BinaryArithOpEvalRangeExpr.value:type_name -> milvus.proto.plan.GenericValue
	40, // 46: milvus.proto.plan.RandomSampleExpr.predicate:type_name -> milvus.proto.plan.Expr
	40, // 47: milvus.proto.plan.ElementFilterExpr.element_expr:type_name -> milvus.proto.plan.Expr
	40, // 48: milvus.proto.plan.ElementFilterExpr.predicate:type_name -> milvus.proto.plan.Expr
	40, // 49: milvus.proto.plan.MatchExpr.predicate:type_name -> milvus.proto.plan.Expr
	3,  // 50: milvus.proto.plan.MatchExpr.match_type:type_name -> milvus.proto.plan.MatchType
	17, // 51: milvus.proto.plan.TimestamptzArithCompareExpr.timestamptz_column:type_name -> milvus.proto.plan.ColumnInfo
	1,  // 52: milvus.proto.plan.TimestamptzArithCompareExpr.arith_op:type_name -> milvus.proto.plan.ArithOpType
	38, // 53: milvus.proto.plan.TimestamptzArithCompareExpr.interval:type_name -> milvus.proto.plan.Interval
	0,  // 54: milvus.proto.plan.TimestamptzArithCompareExpr.compare_op:type_name -> milvus.proto.plan.OpType
	13, // 55: milvus.proto.plan.TimestamptzArithCompareExpr.compare_value:type_name -> milvus.proto.plan.GenericValue
	25, // 56: milvus.proto.plan.Expr.term_expr:type_name -> milvus.proto.plan.TermExpr
	29, // 57: milvus.proto.plan.Expr.unary_expr:type_name -> milvus.proto.plan.UnaryExpr
	30, // 58: milvus.proto.plan.Expr.binary_expr:type_name -> milvus.proto.plan.BinaryExpr
	24, // 59: milvus.proto.plan.Expr.compare_expr:type_name -> milvus.proto.plan.CompareExpr
	21, // 60: milvus.proto.plan.Expr.unary_range_expr:type_name -> milvus.proto.plan.UnaryRangeExpr
	22, // 61: milvus.proto.plan.Expr.binary_range_expr:type_name -> milvus.proto.plan.BinaryRangeExpr
	33, // 62: milvus.proto.plan.Expr.binary_arith_op_eval_range_expr:type_name -> milvus.proto.plan.BinaryArithOpEvalRangeExpr
	32, // 63: milvus.proto.plan.Expr.binary_arith_expr:type_name -> milvus.proto.plan.BinaryArithExpr
	20, // 64: milvus.proto.plan.Expr.value_expr:type_name -> milvus.proto.plan.ValueExpr
	18, // 65: milvus.proto.plan.Expr.column_expr:type_name -> milvus.proto.plan.ColumnExpr
	19, // 66: milvus.proto.plan.Expr.exists_expr:type_name -> milvus.proto.plan.ExistsExpr
	37, // 67: milvus.proto.plan.Expr.always_true_expr:type_name -> milvus.proto.plan.AlwaysTrueExpr
	26, // 68: milvus.proto.plan.Expr.json_contains_expr:type_name -> milvus.proto.plan.JSONContainsExpr
	23, // 69: milvus.proto.plan.Expr.call_expr:type_name -> milvus.proto.plan.CallExpr
	27, // 70: milvus.proto.plan.Expr.null_expr:type_name -> milvus.proto.plan.NullExpr
	34, // 71: milvus.proto.plan.Expr.random_sample_expr:type_name -> milvus.proto.plan.RandomSampleExpr
	28, // 72: milvus.proto.plan.Expr.gisfunction_filter_expr:type_name -> milvus.proto.plan.GISFunctionFilterExpr
	39, // 73: milvus.proto.plan.Expr.timestamptz_arith_compare_expr:type_name -> milvus.proto.plan.TimestamptzArithCompareExpr
	35, // 74: milvus.proto.plan.Expr.element_filter_expr:type_name -> milvus.proto.plan.ElementFilterExpr
	36, // 75: milvus.proto.plan.Expr.match_expr:type_name -> milvus.proto.plan.MatchExpr
	2,  // 76: milvus.proto.plan.VectorANNS.vector_type:type_name -> milvus.proto.plan.VectorType
	40, // 77: milvus.proto.plan.VectorANNS.predicates:type_name -> milvus.proto.plan.Expr
	16, // 78: milvus.proto.plan.VectorANNS.query_info:type_name -> milvus.proto.plan.QueryInfo
	4,  // 79: milvus.proto.plan.Aggregate.op:type_name -> milvus.proto.plan.AggregateOp
	40, // 80: milvus.proto.plan.QueryPlanNode.predicates:type_name -> milvus.proto.plan.Expr
	42, // 81: milvus.proto.plan.QueryPlanNode.aggregates:type_name -> milvus.proto.plan.Aggregate
	40, // 82: milvus.proto.plan.ScoreFunction.filter:type_name -> milvus.proto.plan.Expr
	5,  // 83: milvus.proto.plan.ScoreFunction.type:type_name -> milvus.proto.plan.FunctionType
	49, // 84: milvus.proto.plan.ScoreFunction.params:type_name -> milvus.proto.common.KeyValuePair
	7,  // 85: milvus.proto.plan.ScoreOption.boost_mode:type_name -> milvus.proto.plan.BoostMode
	6,  // 86: milvus.proto.plan.ScoreOption.function_mode:type_name -> milvus.proto.plan.FunctionMode
	41, // 87: milvus.proto.plan.PlanNode.vector_anns:type_name -> milvus.proto.plan.VectorANNS
	40, // 88: milvus.proto.plan.PlanNode.predicates:type_name -> milvus.proto.plan.Expr
	43, // 89: milvus.proto.plan.PlanNode.query:type_name -> milvus.proto.plan.QueryPlanNode
	44, // 90: milvus.proto.plan.PlanNode.scorers:type_name -> milvus.proto.plan.ScoreFunction
	46, // 91: milvus.proto.plan.PlanNode.plan_options:type_name -> milvus.proto.plan.PlanOption
	45, // 92: milvus.proto.plan.PlanNode.score_option:type_name -> milvus.proto.plan.ScoreOption
	93, // [93:93] is the sub-list for method output_type
	93, // [93:93] is the sub-list for method input_type
	93, // [93:93] is the sub-list for extension type_name
	93, // [93:93] is the sub-list for extension extendee
	0,  // [0:93] is the sub-list for field type_name
}

func init() { file_plan_proto_init() }
func file_plan_proto_init() {
	if File_plan_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_plan_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GenericValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Array); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SearchIteratorV2Info); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ColumnInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ColumnExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExistsExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ValueExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UnaryRangeExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BinaryRangeExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CallExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CompareExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TermExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*JSONContainsExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NullExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GISFunctionFilterExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UnaryExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BinaryExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BinaryArithOp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BinaryArithExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BinaryArithOpEvalRangeExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RandomSampleExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ElementFilterExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MatchExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AlwaysTrueExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Interval); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TimestamptzArithCompareExpr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Expr); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VectorANNS); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Aggregate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryPlanNode); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ScoreFunction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ScoreOption); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PlanOption); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_plan_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PlanNode); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_plan_proto_msgTypes[0].OneofWrappers = []interface{}{
		(*GenericValue_BoolVal)(nil),
		(*GenericValue_Int64Val)(nil),
		(*GenericValue_FloatVal)(nil),
		(*GenericValue_StringVal)(nil),
		(*GenericValue_ArrayVal)(nil),
	}
	file_plan_proto_msgTypes[2].OneofWrappers = []interface{}{}
	file_plan_proto_msgTypes[3].OneofWrappers = []interface{}{}
	file_plan_proto_msgTypes[27].OneofWrappers = []interface{}{
		(*Expr_TermExpr)(nil),
		(*Expr_UnaryExpr)(nil),
		(*Expr_BinaryExpr)(nil),
		(*Expr_CompareExpr)(nil),
		(*Expr_UnaryRangeExpr)(nil),
		(*Expr_BinaryRangeExpr)(nil),
		(*Expr_BinaryArithOpEvalRangeExpr)(nil),
		(*Expr_BinaryArithExpr)(nil),
		(*Expr_ValueExpr)(nil),
		(*Expr_ColumnExpr)(nil),
		(*Expr_ExistsExpr)(nil),
		(*Expr_AlwaysTrueExpr)(nil),
		(*Expr_JsonContainsExpr)(nil),
		(*Expr_CallExpr)(nil),
		(*Expr_NullExpr)(nil),
		(*Expr_RandomSampleExpr)(nil),
		(*Expr_GisfunctionFilterExpr)(nil),
		(*Expr_TimestamptzArithCompareExpr)(nil),
		(*Expr_ElementFilterExpr)(nil),
		(*Expr_MatchExpr)(nil),
	}
	file_plan_proto_msgTypes[34].OneofWrappers = []interface{}{
		(*PlanNode_VectorAnns)(nil),
		(*PlanNode_Predicates)(nil),
		(*PlanNode_Query)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_plan_proto_rawDesc,
			NumEnums:      13,
			NumMessages:   35,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_plan_proto_goTypes,
		DependencyIndexes: file_plan_proto_depIdxs,
		EnumInfos:         file_plan_proto_enumTypes,
		MessageInfos:      file_plan_proto_msgTypes,
	}.Build()
	File_plan_proto = out.File
	file_plan_proto_rawDesc = nil
	file_plan_proto_goTypes = nil
	file_plan_proto_depIdxs = nil
}
